FFT real/imaginary/abs parts interpretation FFT real/imaginary/abs parts interpretation numpy numpy

FFT real/imaginary/abs parts interpretation


For each frequency bin, the magnitude sqrt(re^2 + im^2) tells you the amplitude of the component at the corresponding frequency. The phase atan2(im, re) tells you the relative phase of that component. The real and imaginary parts, on their own, are not particularly useful, unless you are interested in symmetry properties around the data window's center (even vs. odd).


With respect to some reference point, say the center of a fixed time window, a sine wave and a cosine wave of the same frequency will look different (have different starting phases with respect to any fixed time reference point). They will also be mathematically orthogonal over any integer periodic width, so can represent independent basis vector components of a transform.

The real portion of an FFT result is how much each frequency component resembles a cosine wave, the imaginary component, how much each component resembles a sine wave. Various ratios of sine and cosine components together allow one to construct a sinusoid of any arbitrary or desired phase, thus allowing the FFT result to be complete.

Magnitude alone can't tell the difference between a sine and cosine wave. An IFFT(imag(FFT)) would screw up the reconstruction of any signal with a different phase than pure cosines. Same with IFFT(re(FFT)) and pure sine waves (with respect to the FFT aperture window).


You can convert the signal 1, which consists of a product of three cos functions to a sum of four cos functions. This makes the difference to function 2 which is a sum of four sine functions.

A cos function is an even function cos(-x) == cos(x). The Fourier Transformation of an even function is pure real. That is the reason why the plot of the imaginary part of the fft of function 1 contains only values close to zero (1e-15).

A sine function is an odd function sin(-x) == -sin(x). The Fourier Transformation of an odd function is pure imaginary. That is the reason why the plot of the real part of the fft of function 2 contains only values close to zero (1e-15).

If you want to understand FFT and DFT in more detail read a textbook of signal analysis for electrical engineering.