Skip to content
Prev 347801 / 398500 Next

FFT Normalization Documentation

Dear Elke; Jeff,


Re:
Maybe I didn't use the proper terminology, but what I called 'folding' is a modification of the input signal used only to present the amplitude spectrum in a convenient way. The FFT ("butterfly algorithm") yields a complex array where the highest frequencies (pos and neg) are in the middle, the lowest (and DC and fNyq) are at the ends. To display this same array with the DC value in the middle, the neg frequencies increasing to the left and the pos frequencies to the right, the trick with the +1/-1 mask is performed. This mask function is in fact a "square wave" at the Nyquist frequency.
In Matlab, it is in a routine called "fftshift", see here:
This is from the MathWorks web site:     http://nl.mathworks.com/help/matlab/ref/fftshift.html.

In addition, in my example I forgot to scale the amplitude. This must indeed be divided by n (the number of data points).
So, change my line YY <- fft(yy) into YY <- fft(yy)/n. Now the amplitudes of the spectral line are numerically the same as given in the composition of y.
These values must indeed be regarded with caution, since with real-world signals the energy will most often be spread among several spectral "lines".
Windowing (Hann, Hanning, Blackman etc.) then improves the spectrum, but that's a different story.

Best wishes,


Frank
---




Franklin Bretschneider
Dept of Biology
Utrecht University
bretschr at xs4all.nl