Find frequency spectrum of function with unknown period

1.4k Views Asked by At

How can I determine the frequency spectrum and phase of a continuous function, if the period is unknown? If I have a function $f(x)$ with period $T$, the Fourier series $a_n=\frac{2}{T}\int\limits_{-T}^{T} f(x) cos(\frac{2\pi n x}{T})dx$ and $b_n=\frac{2}{T}\int\limits_{-T}^{T} f(x) sin(\frac{2\pi n x}{T})dx$. But if $T$ is unknown, how can be the formulas above applied?

1

There are 1 best solutions below

1
On

You already described the Fourier series, which is useful for periodic signals for which you know the period length $T$ (respectively the fundamental frequency $\frac{1}{T}$). Roughly speaking, the Fourier series projects your function on a countable infinite set of basis functions $\sin\left(\frac{2\pi nx}{T}\right)$ and $\cos\left(\frac{2\pi nx}{T}\right)$, with frequencies $\frac{n}{T}$ being integer multiples of a fundamental frequency $\frac{1}{T}$. Alternatively, you could use the basis functions $e^{i\frac{2\pi nx}{T}}$, (Note: $\sin(x)=Im(e^{ix})$, $\cos(x)=Re(e^{ix})$). The latter is important since it eases the transition from the Fourier series to the Fourier transform.

If you don't know the fundamental frequency, or if you are not even sure if one exists, then the trick is to go from discrete coefficients ($a_n$, $b_n$) to continuous coefficients $a(f)$, $b(f)$ ($f$ represents the frequency), respectively to an uncountable infinite number of basis functions.This is then called the Fourier transform: https://en.wikipedia.org/wiki/Fourier_transform

You typically do this with the basis functions $e^{2\pi if x}$, and you directly see the relationship to the Fourier series. For details I refer to the wikipedia article. Given that you have transformed your system, you can then e.g. use the Power Spectrum (https://en.wikipedia.org/wiki/Spectral_density#Power_spectral_density), or similar, to find dominant frequencies of your signal. By the way: if you don't have the complete description of your function $f(x)$, but only sample a function, you might consider using the Fast Fourier Transform (FFT): https://en.wikipedia.org/wiki/Fast_Fourier_transform