How to find the periodicity in data?

Michael picture Michael · Nov 21, 2010 · Viewed 14.3k times · Source

I have a dataset (an array) and I need to find the periodicity in it. How should I proceed? Somebody said I can use FFT but I am not sure how will it give me the periodicity. Your help is appreciated!

Answer

tom10 picture tom10 · Nov 22, 2010

For this task it's best to use the autocorrelation.

The FFT is the wrong tool to use for finding the periodicity.

Consider, for example, a case where your waveform is made by adding together two simple sine waves, one with a period of 2 seconds (0.5 Hz), and the other with 3 seconds (0.333 Hz). This waveform will have a periodicity of 6 seconds (i.e., 2*3), but the Fourier spectrum will only show two peaks at .5 Hz, and .333 Hz.