# Proof for the energy correction factor of DFT

I am looking for a mathematical proof for the energy correction factor in conteext of windowed discrete fourier transform.

In Spectrum and spectral density estimation by the Discrete Fourier transform (DFT), including a comprehensive list of window functions and some new flat-top windows., the author defines (page 12) 2 factors, namely the sum and sum of square of the window : $$S_1 = \sum_{i=0}^{N-1} w[i]$$ $$S_2 = \sum_{i=0}^{N-1} w[i]^2$$ Further, page 14, they define the Normalized Equivalent Noise BandWidth (NENBW) and Equivalent Noise BandWidth (ENBW) as : $$\text{NENBW} = N \frac{S_2}{S_1^2}$$ $$\text{ENBW} = f_s \frac{S_2}{S_1^2}$$ where $$f_s$$ is the sampling frequency. Then they mention

This equivalent noise bandwidth is required when the resulting spectrum is to be expressed as spectral density (such as for noise measurements). It can be understood by considering white noise as input to our algorithm. Due to the width of the window in the frequency domain, each frequency bin collects not only the noise in that frequency bin, but also from adjacent bins. Dividing the result by the effective noise bandwidth corrects for this phenomenon.

I tried to derive this result with the following : For a discrete signal $$x[n]$$ of lenght N, a discrete window $$w[n]$$ of the same lenght, we have :

• the N-points DFT of the signal x : $$X[k]=\sum_{n}x[n]e^{-2i\pi \frac{kn}{N}}$$
• the N-points DFT of the windowed signal x, $$x_w = x\cdot w$$ : $$X_w[k]=\sum_{n}x[n]w[n]e^{-2i\pi \frac{kn}{N}}$$

Since we multiply the signals in time-domain, the spectrum would be convoluted, hence : $$X_w[k] = \sum_{k'=0}^{N-1} X[k]W[k'-k]$$

If I consider a white noise spectrum, I'd expect its DFT to have a constant module and random phase : $$X[k] = |X|e^{-i\phi[k]}$$ with $$\phi$$ being a random phase and $$|X|$$ the amplitude of the noise.

Hence we can simplify the spectrum of the windowed signal : $$X_w[k] = \sum_{k'=0}^{N-1} |X|e^{-i\phi[k]}W[k'-k] = |X|\sum_{k'=0}^{N-1} e^{-i\phi[k]}W[k'-k]$$

From there, how can I derive the correction factor ? Especially the ratio $$\frac{S_2}{S_1^2}$$, I don't really care for the $$N$$ or $$f_s$$ coefficient

Please refer to this classis paper by fred harris. It took me a long time to develop an intuition and understand the derivation of equivalent noise bandwidth, which I shall explain in this post as a companion to fred's great paper. If you're interested, grab a coffee and read on with me as we go through this step by step:

Overview Summary

This overview is a quick summary to bottom-line the main points, and for those really interested in why I go on with further background after the overview.

To derive (and understand) equivalent noise bandwidth from windowing, we can start with "Windowing Loss", which is the decrease in signal-to-noise ratio (SNR) of a DFT output sample due to the window process. This is also referred to as "Processing Gain" for a window and will always be negative for all but the rectangular window when expressed in dB (0 dB for a rectangular window):

$$PG = 20\log_{10}\bigg(\frac{G_c}{G_{nc}}\bigg)$$

Where $$G_c$$ is the normalized coherent gain and $$G_{nc}$$ is the normalized non-coherent gain for the window.

The normalized coherent gain is the mean of the window:

$$G_c=\frac{\sum w[n]}{N}$$

Where $$n$$ is the window index and $$N$$ is the total length of the window.

The normalized non-coherent gain is the root-mean-square of the window:

$$G_{nc} = \sqrt{\frac{\sum (w[n])^2}{N}}$$

The equivalent noise bandwidth (ENBW) is the equivalent bandwidth of a brickwall filter that would result in the same amount noise power given the total integration of the Kernel of the window (The Kernel is window in the frequency domain, as the DTFT or frequency response of the window). Doing this integration, we would confirm that the ENBW is simply processing gain as a reciprocal power quantity (converting the PG from dB to it's power quantity and inverting):

$$ENBW = \frac{1}{10^{PG/10}} = 10^{-PG/10}$$

From the desription of the normalized coherent gain and normalized non-coherent gain given above we find an alternate description for the ENBW is the square of the rms divided by the mean for the window:

$$ENBW = \bigg(\frac{rms}{mean}\bigg)^2$$

From all this we get:

$$ENBW = N\frac{\sum(w[n]^2)}{(\sum w[n])^2}$$

Where $$ENBW$$ is the equivalent noise bandwidth in units of DFT bins.

FURTHER DETAILS, INTUITION AND EXAMPLES

Coherent Gain

The coherent gain refers to the change in DFT output level of coherent samples due to the window function. For a rectangular window this is simply $$N$$. Any signal that has a spectral occupancy completely in the bandwidth of one DFT bin is considered coherent. A simple example is the how the DFT of a sinusoid with an integer number of cycles (frequency on bin center) grows by $$N$$. The DFT is a summation of $$N$$ samples, if the $$N$$ samples are coherent, the output grows at the rate $$N$$, as a direct summation. For a normalized coherent gain, we would divide the result by $$N$$, and thus becomes simply an average of the window weights (for the rectangular window $$G_c=1$$), repeating what was presented in the overview:

$$G_c=\frac{\sum w[n]}{N}$$

where $$n$$ refers to the sample index in the window and $$N$$ is the total number of samples in the window.

For example from Table 1 in the referenced paper, the coherent gain for the Blackman Window is listed as 0.42, and $$20\log_{10}(0.42) = -7.54$$ dB. That table refers to what the coherent gain for the Blackman window would approach as $$N$$ approaches $$\infty$$, and reasonably close for any very large $$N$$. I computed myself for a smaller window of 30 samples using the formula above and got a gain of 0.406, and you can too in Matlab/Octave as:

sum(blackman(30))/30


Converting this to dB is -7.83 dB. This was confirmed using the Kernel of the window (the Kernel is the DTFT or frequency response of the window) as I show in the plot below (the "Dirichlet Kernel" is the Kernel for a rectangular window which would have a normalized coherent gain of 1), and I went on to show how this coherent gain changes with $$N$$ (the reason for this is frequency domain aliasing of the sidelobes of the window):  Non-Coherent Gain

Signals that have a spectral occupancy that span several frequency bins in a DFT (such as noise, and modulated waveforms) are non-coherent. An extreme example of this is random "white noise" where each sample in time is independent of all other samples, so there is no coherence from sample to sample. The spectrum of such a random signal has a power spectral density (frequency domain) that is constant, and thus in this case such a waveform would span all the frequency bins. When we sum non-coherent samples, the resulting magnitude grows at the square root of $$N$$: Independent noise samples sum in power, so grow at rate $$\sqrt{N}$$ while coherent samples sum at rate $$N$$ as detailed previously.

The normalized non-coherent gain refers to the change in the DFT output level of non-coherent samples (such as white noise) due to the window function. Consistent with this, the normalized non-coherent gain is the rms value of the window weights:

$$G_{nc} = \sqrt{\frac{\sum (w[n])^2}{N}}$$

The processing gain is intuitively explained by the ENBW with reference to the plot I gave above for the Kernels of a rectangular window and the Blackman window. If it isn't clear how the DFT is indeed a "bank of filters", please read this other post first (this one is also helpful) and then come back to this next point. Each bin in the DFT is the result of a filter with the frequency response given by the Kernel of the window used centered on that bin, thus reporting the total power within that give frequency response (very much how spectrum analyzers work as well for those familiar with that test equipment and what Resolution Bandwidth or RBW is on a spectrum analyzer). We see this in the plot above comparing the Kernel for the rectangular window (which has an ENBW of 1 DFT bin) to the Kernel for the Blackman window. This plot is the frequency response for those windows and we see in that graphic how the bandwidth of the Blackman window is much wider. We have the coherent loss of -7.83 dB, but then each bin is reporting the power in its own bin plus some or all of the adjacent bins (when we window the Kernel widens and thus we have a wider ENBW). Thus in the case of noise where all bins are at or close to the same power level, when you sum all the bins in power you will over-report that actual power since adjacent bins are getting double counted. For Blackman the processing gain is -2.37 dB, where the power increased relative to the -7.83 dB that was lost from the coherent gain of the window due to this "double-counting". The equivalent noise bandwidth for this case is therefore:

$$ENBW = 10^{-PG/10} = 10^{2.37/10} = 1.73 \text{ bins}$$

Looking at the graphic I provided comparing the Kernels of the windows, we can rationalize that the ENBW for the rectangular window could be 1 bin (it is) and for the Blackman window it is 1.73 bins... For a filter's frequency response, the equivalent bandwidth to a brickwall filter is close to it -3 dB cutoff (depending on which specific filter), so don't be confused by comparing the null-null bandwidth of the main lobes for the two examples, but compare where the -3dB points approximately are.

How do I know this? I teach courses on DSP and Python related to wireless comm through dsprelated.com and the ieee with new courses running soon! The examples given here are covered in detail in the "DSP for Wireless Communications" course where further insight is provided in using windows for filter design.