Scaling FFT output by number of points in FFT

The 1/N scaling factor is almost arbitrary placed. An unscaled FFT followed by an unscaled IFFT using exactly the same complex exponential twiddle factors multiplies the input vector by scaler N. In order to get back the original waveform after an IFFT(FFT())round trip (thus making them inverse functions), some FFT/IFFT implementation pairs scale the FFT by 1/N, some scale the IFFT by 1/N, some scale both by 1/sqrt(N).


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.

Tags:

Fourier