2
$\begingroup$

As mentioned in the slide below (full slides located here, starting at PDF page 29), the apparent noise floor on a DFT plot depends on the number of sample points $N$ used to calculate the DFT. The next slide mentions one way of "correcting" for this on a given DFT plot, which is to normalize to the noise power per 1-Hz bandwidth to convert to noise PSD.

How would this be done? (Specifically asking about option 3 on the second slide, the noise PSD option, not the first two options listed.) One can calculate the bin width as $df=f_s/N$ ($f_s$ is sampling frequency), and then divide all the noise bins by $df$, presumably leaving the signal bin alone since it's meant to come from a pure sinusoid (usually). This would lower the apparent noise floor even more.

Is this how that would be done? In practice I think I would just do one of the first two options (mention how many DFT points were used or shift the noise floor by $10\log N/2$), but I just want to conceptually understand that other option.

DFT plot

DFT annotation

$\endgroup$

1 Answer 1

2
$\begingroup$

This type of plot is kind of tricky.

The problem here is that DFT is a metric of spectral density. If you have a signal with a total energy of $E$, the spectral density is

$$\frac{\partial E}{\partial \omega} \approx \frac{\Delta E}{\Delta \omega}$$

If you sample with sample rate $F_s$ and use an DFT with length $N$ we have

$$\Delta \omega = \frac{2\pi F_s}{N} $$

So it depends on the DFT length N.

Let's define the DFT with symmetric scaling, i.e.

$$X[k] = \frac{1}{\sqrt{N}} \sum_{n=0}^{N-1} x[n] e^{-j2\pi\frac{kn}{N}} \leftrightarrow x[n] = \frac{1}{\sqrt{N}} \sum_{k=0}^{N-1} X[k] e^{j2\pi\frac{nk}{N}} $$

which has the nice side effect the Parseval's theorem hold, i.e.

$$ E = \sum |x[n]|^2 = \sum |X[k]|^2$$

For white noise, the energy is distributed equally over all frequencies, so the energy in each frequency bin will be $$|X_{noise}[k]|^2 \approx \frac{E}{N}. $$ However for a sine wave ALL the energy falls into a single bin (since a sine wave as technically infinite spectral density, also ignoring any spectral leakage). For a sine wave of frequency $\omega_0 = k_0\frac{2\pi F_s}{N}$ the spectrum becomes

$$|X_{sine}[k]|^2 = \begin{cases} \frac{E}{2} & k = \pm k_0 \\ 0 & \text{otherwise} \end{cases}$$

So the ratio $R$ of the energy of the noise bins to that of the sine wave will always be

$$R = \frac{|X_{noise}[k]|^2}{|X_{sine}[k_0]|^2} \approx \frac{E/N}{E/2} = \frac{N}{2} $$

If you normalize for the sine wave to be at 0 dB, the "visible" noise floor will decrease increasing the FFT size and if you normalize the noise floor, the sine wave will increase with the FFT size.

$\endgroup$
2
  • $\begingroup$ Thanks for the answer - something I might be misunderstanding is that I thought that as $N$ increases, the DFT should "approach" the DTFT (be closer to continuous in frequency). It looks like as $N$ approaches infinity the noise per bin approaches 0, which on the one hand seems to make sense since the bin width approaches 0 (and # of bins goes to infinity, total noise energy is the same). But it doesn't seem to make sense for the DTFT to be 0 for all frequencies other than the signal frequency, I thought it should approach some constant value (for white noise). Am I missing something here? $\endgroup$
    – Halleff
    Jan 3 at 21:13
  • $\begingroup$ All this depends a bit on the scaling that you use. For the energy conserving scaling DFT scaling used in my answer, the noise level does NOT depend on the FFT length. If you double the FFT length you indeed half the bin size but you also double to total energy so these two things compensate each other. However halving the bin size doubles the energy in the sine bin, so the ratio of the two changes. If you keep doing this, the sine bin will eventually go to infinity which exactly what happens with the DTFT too, $\endgroup$
    – Hilmar
    Jan 4 at 13:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.