Fast Fourier Transform (FFT) in IDL

Introduction:

When processing a time series of data, one of the main analysis consists of finding whether the series presents some periodic behaviour. One way to analyze the periodicity is to do a spectral analysis. In this work, I try to understand some of the features presented by the IDL FFT routine and give some tentative notes on its use.

IDL provides a build-in function called FFT to be used as

result = FFT(series)

Data:

A time series result of a sum of various sinusoidal functions of different frequencies is generated. "generate_sin_data.pro" is a simple IDL routine which generates a long time series with sampling every half an hour (30 min). The series is made of 4 sinusoidal frequencies at 0.5, 1, 10, and 36 day period (2, 1, 0.1, and 0.0278 cycle per day).

Series of 120 days and of 360 days are studied in this work.

Analysis:

The 120-day series as well as its corresponding power spectrum are illustrated in Figure 1. In this case, both spectrum with and without Hanning windowing are shown.
Figure 1.
Clear narrow peaks corresponding to 2 frequencies (2 and 1 cycles per day) are observed. Another frequency 0.1 cycle per day is also present but with a certain degree of spread. Those three frequencies correspond to 12, 24, and 240 hour (0.5, 1, and 10 day) period. Finally, there is the very spread peak at 0.025 frequency (or 40 day period).

As we can see, the first 2 frequencies are well defined and set to the right original frequencies, the third is also defined at the right original frequency; however, it starts showing some leakage phenomenon. The last one is defined with more leakage than the previous spike, its period is actually shifted by 4 days.

From this data, we can see that a series of 120 days allows to clearly extract periods of less than few days. At 10 day period, the spectrum starts to show leakage. The period which corresponds to 1/3rd of the length of the series are there but not well defined anymore.

When processing a series of 360 days of data, the corresponding power spectrum graph is given in Figure 2. One can see that some noises show up at high frequencies. In addition, the low frequency peak now shows up at 0.0278 cycle per day (~ 35.98 days closer to the real frequency). The way this frequency is spread is the same as in Fig. 1 for frequency at 10 days.
Figure 2.

My Conclusion:

The following conclusion is drawn by looking at the result. A furher and more in-depth investigation might be necessary to confirm it.

We are tempted to conclude that for a series of data, periods above 1/12 of the length of the data will start to show up with some sort of leakage (illustrated as spreading in the power spectrum graph).

The noises at high frequencies can be an artifact of the IDL FFT routine. Even by low-pass filtering the data, we still have almost the same power spectrum graph.

Notes:

The following IDL routines were written and used to carry out the above study:
  • generate_sin_data.pro
  • compute_fft.pro

    Useful links:

    http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/
    http://www.davidpace.com/physics/graduate-school/idl-butterworth.htm