1
$\begingroup$

For a periodic ( and not so periodic) function, it is always possible to use fourier series to find out the frequencies contained in the function.

But what about function that cannot be expressed in mathematical terms? For example, this graph ( accelerogram):

alt text

Is there anyway to apply a sort of fourier series, in order to find out the frequencies contained in it?

  • 0
    What makes you think this function can't be expressed in mathematical terms?2010-09-02
  • 2
    @Qiaochu: this "acceleration history" would have to be sampled to yield a discrete approximation to what was recorded. Different sampling methods would yield different approximations and also be accompanied by measurement error. Thus it represents an approximation of one realization of a random process which itself can be identified only up to some statistical error. Coming up with a "mathematical" description, such as an interpolating polynomial or finite trigonometric series, misses these important statistical points. I imagine that's the spirit in which "cannot be expressed" was said.2010-09-02
  • 1
    Shorter version of whuber's comment: Trying to construct a *justifiable* functional form out of noisy data isn't that easy.2010-09-02

4 Answers 4

5

In short - yes. You can apply a discrete FFT and that should return the complex valued spectrum of your real data. Typically you can then plot out the magnitude of the value of each point in the spectrum (a.k.a. absolute value).

If you're going to take an FFT numerically (i.e. fftw routines, etc) it's also helpful to apply a window function (i.e. hamming). Your data doesn't look particularly periodic, so windowing it will help in removing the noise associated with that.

  • 0
    I'd have recommended Dolph-Chebyshev myself for windowing purposes, but Hamming's okay.2010-09-02
3

What you are after is known in statistics as spectral analysis. There is a whole literature on extracting frequency components from noisy data. See Shumway and Stoffer (2006, chapter 4) for example.

2

Er... that's what FFT is for. FFT your data, and take the absolute value of the result. If you want, take their phases too.

  • 0
    You may want to also want to try a short-time Fourier transform http://en.wikipedia.org/wiki/Short-time_Fourier_transform#Discrete-time_STFT2010-09-02
2

Quinn and Hannan's The estimation and tracking of frequency is dedicated to this topic. I can highly recommend it.