For length N input sequence x, the DFT is a length N vector, X.
ifft implement the relationships
|Note Since the first element of a MATLAB vector has an index 1, the summations in the equations above are from 1 to N. These produce identical results as traditional Fourier equations with summations from 0 to N-1.|
If x(n) is real, we can rewrite the above equation in terms of a summation of sine and cosine functions with real coefficients
Finding an FFT
The FFT of a column vector
is found with
which results in
Notice that although the sequence
x is real,
y is complex. The first component of the transformed data is the constant contribution and the fifth element corresponds to the Nyquist frequency. The last three values of
y correspond to negative frequencies and, for the real sequence
x, they are complex conjugates of three components in the first half of
Example: Using FFT to Calculate Sunspot Periodicity
Suppose, we want to analyze the variations in sunspot activity over the last 300 years. You are probably aware that sunspot activity is cyclical, reaching a maximum about every 11 years. Let's confirm that.
Astronomers have tabulated a quantity called the Wolfer number for almost 300 years. This quantity measures both number and size of sunspots.
Load and plot the sunspot data.
Now take the FFT of the sunspot data.
The result of this transform is the complex vector,
Y. The magnitude of
Y squared is called the power and a plot of power versus frequency is a "periodogram." Remove the first component of
Y, which is simply the sum of the data, and plot the results.
The scale in cycles/year is somewhat inconvenient. Let's plot in years/cycle and estimate what one cycle is. For convenience, plot the power versus period (where
period = 1./freq) from 0 to 40 years/cycle.
In order to determine the cycle more precisely,
|Function Summary||Magnitude and Phase of Transformed Data|