Saturday 11 July 2015

fourier - Scaling FFT output by number of points in FFT


When computing the N-point FFT of some signal, the result is always divided by N. I can understand why this is the case for a summation over the N points, but often the result of the FFT operation is a vector of length N rather than a summation. Why then is the length-N vector that is the output of the FFT scaled by the number of points (N) used to compute the FFT? Thanks.



Answer



The difference is that the digital Fourier transform (and FFT as well) gives a vector of size N (or M in some cases) that contains sums of N samples.


So, basically, each point of the FFT transform is the result of a sum over a certain time interval of the time-based samples. That's why you divide by N.


You can consider it this way: you take an interval of N samples of your signal; then, you basically sum all the samples N times, but each time multiplying them for a different function, that allows to extract the information for a specific frequency (or frequency range, to be more accurate).



At the end, in summary, instead of having N samples, each one associated to a time interval, you have N samples (as before) but each of them related to the whole interval and describing the component of the signal for a specific frequency range.


Just for completeness, there are four cases of Fourier transform:




  1. Continuous Fourier transform, for continuous signals in time, over a finite interval, that gives a continuous frequency response;




  2. Fourier series, taking a continuous and periodic signal and giving the discrete series of harmonics, so with discrete frequencial components;





  3. Time discrete Fourier transform, the reciprocal of (2), in which from a discrete-in-time signal gives a periodic function in the frequency domain;




  4. Digital Fourier Transform, that takes a discrete and periodic signal to give a discrete and periodic spectrum.




So transforming a periodic signal gives a discrete spectrum and vice versa.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...