6
$\begingroup$

I'm working on estimating the FFT noise floor for a data acquisition system my colleagues and I are designing. I've read MT-001 several times.

In general, I think I get it. However I'm a little stuck on the units of the FFT noise floor section. Particularly, it seems like there's a jump from Power Spectrum to Power Spectral Density that I'm not grasping. To show my understanding faltering, I'll walk through an example. Let's say I have a 16-bit ADC, with input bandwidth equal to Nyquist, and an $8192$-pt FFT.

  1. The ratio of the average power of a full-scale sine-wave to average power of quantization noise is the $\texttt{SNR} = 6.02N + 1.76$, where $N$ is the number of bits in the ADC. This has units of decibel full scale, is equivalent to $$10\log10\left(\frac{V_{sig}^2}{V_{noise}^2}\right)$$ and is a "Power Spectrum".
  2. Each bin of a DFT represents a bandpass filter, so the DFT is effectively oversampling the input signal and adds to the $\texttt{SNR}$ an additional $$10\log10\left(\frac{M}{2}\right)$$ where $M$ is the number of points in the FFT. I understand this oversampling term to be a "Power Spectral Density" with units of $\tfrac{V^2}{\texttt{Hz}}$
  3. The source I shared suggests adding 1 and 2 together: $$\texttt{Noise Floor} = 6.02N + 1.76 + 10\log10\left(\frac{M}{2}\right)$$ to estimate the FFT noise floor.

Having built the system in question, I get a Power Spectral Density ($\tfrac{V^2}{\texttt{Hz}}$) noise floor slightly above the theoretical value I'd obtain based on above. However, the Power Spectrum ($V^2$), obtained by taking the FFT and not normalizing by ENBW, is quite different than the number I get from 3. Also, PSD doesn't change with respect to sample rate, whereas power spectrum does. The formula in step 3, says nothing for sample rate.

Can anyone provide some clarification on what is the unit of $\texttt{Noise Floor}$ between Power Spectrum ($V^2$) and Power Spectral Density ($\tfrac{V^2}{\texttt{Hz}}$)?

Thanks!

$\endgroup$

3 Answers 3

4
$\begingroup$

Ok I figured it out so I'm posting for others.

The SNR is that ratio of the average power in a fulls-scale sine wave to the average power in the quantization noise. The average power for both is the average power of each signal from DC to Nyquist. However each FFT bin actually only sees a small fraction of this, the fraction being the ratio of the FFT bin width to the Nyquist bandwidth. So we can write

$$10\log_{10}\left(\left(\dfrac{V_s}{V_n}\right)^2\cdot \dfrac{F_s/2}{F_s/M}\right)$$which equals

$$20\log_{10}\left(\frac{V_s}{V_n}\right) + 10\log_{10}\left(\frac{M}{2}\right)$$ The former is the SNR formula, equal to $6.02N + 1.76$ under certain assumptions, and the latter is the process gain term. Both have units of Power Spectrum (FS or Volts). Were we to put the noise in the denominator and omit $V_s$ as the numerator, I think we could say we would be calculating the AC noise floor in Volts.

$\endgroup$
0
1
$\begingroup$

Please review this prior answer first which details how the DFT (the FFT is an algorithm to compute the DFT efficiently) is a filter bank. For the simplest case of an unwindowed FFT, each bin has an equivalent noise bandwidth that is one bin wide.

For an M-point DFT, the DFT noise floor is either

$$0 \text{ dBFs} -6.02 \text{ dB/bit} - 1.76 \text{ dB} - 10 Log_{10} (M) \text{ dB}$$

in dB relative to a full scale sine wave (dBFS) for a two-sided spectrum OR

$$0 \text{ dBFs}-6.02 \text{ dB/bit} - 1.76 \text{ dB} - 10 Log_{10} (M/2) \text{ dB}$$

in dB relative to a full scale sine wave (dBFS) for a one-sided spectrum.

Expressed as a power spectral density in dBFS/Hz, it would be:

$$0 \text{ dBFs/Hz}-6.02 \text{ dB/bit} - 1.76 \text{ dB} - 10 Log_{10} (f_s) \text{ dB} \space\space\space\space\space\space\text{ (Two-Sided PSD)}$$

$$0 \text{ dBFs/Hz}-6.02 \text{ dB/bit} - 1.76 \text{ dB} - 10 Log_{10} (f_s/2) \text{ dB} \space\space\space\space\space\space\text{ (One-Sided PSD)}$$

Note how the power spectral density is independent of the FFT size. This makes sense as the FFT does not reduce the density of the noise floor, it just modifies its resolution bandwidth so that the total noise through the FFT bin would change, given the same noise floor as a density.

For example the two-sided power spectral density for a perfect 12-bit converter sampled at 1 MHz sampling rate is:

$$-(6.02 \cdot 12 + 1.76) - 10log_{10}(1E6) = -74 -60 = -134 \text{ dBFS/Hz}$$

See this graphic below showing an example of a two-sided spectrum, with more details below:

FFT Noise Floor

More details:

Quantization noise is well approximated as a uniform white noise, from which we derive the equation for the total power due to quantization noise relative to the power of a full-scale sine wave (so the reference level is 0 dBFS, as in dB relative to full scale) is given as:

0 dBFS - (6.02 dB/bit + 1.76 dB)

See post 40259 for a full derivation of this relationship as well as other considerations. We need to be careful about specifying two-sided noise power spectral densities or one-sided noise power spectral densities. The accepted answer is assuming a one-sided density (extending only from DC to $f_s/2$) which is fine for the case of real signals. More generally a two-sided density includes positive and negative frequencies, and for white noise the same level would be 3 dB lower since half of that power is in the negative frequency and half in the positive.

The power due to quantization noise extends evenly over the first Nyquist zone from $-f_s/2$ to $+fs/2$ for a two-sided density, or $0$ to $+fs/2$ for a one-sided density. The total power is the same in both cases, but since the one-sided density has half of the total bandwidth, the density expressed as dBFS/Hz would be 3 dB higher.

$\endgroup$
-4
$\begingroup$

I should apology for the mistake. The 6.02N+1.76 is calculated based on quantization noise vs the signal amplitude, it's in dB or V or V^2.

quantization noise std deviation is $q/sqrt(12)$, the q is the LSB of ADC/DAC. The $q/sqrt(12)$ is calculated based on the variance of the uniform distribution, its mean in this case is 0.

The full scale ADC sampling signal is $2^N*q=2*V_{sinusoidal}$

the sinusoidal rms is $V_{RMSsinusoidal}=V_{sinusoidal}/\sqrt(2)=(2^{N-1}*q)/(\sqrt(2))$

your $SNR=20*log(V_{RMSsinusoidal}/V_{quantization})$, this goes out to be

$SNR=6.02N+1.76$ in unit of dB.

When you say it's noise floor calculation. It's assumed the signal amplitude is 1V (0dB) or -3dB for rms=0.707V. So the quantization noise is 0-(6.02N+1,76) dB or -3-(6.02N+1.76) dB.

There is nothing related with Hz in the calculation.

The process gain is to figure out the lower noise floor below the quantization noise. It looks like in the unit of Hz but it's not.

The whole calculation process doesn't have BW involved, so there is no unit Hz. The only place has a bandwidth is it's assumed fsample/2 of the ADC, which is corresponding to the $M/2=(fs/2)/BW_{bin}$.

To have V^2/Hz involved, the calculation should start with $thermal noise=4KTR (V^2/Hz)$ across the whole frequency band and calculate the noise in analog signal domain before the ADC/FFT stage.

In a nutshell, I think the original documents referred is not right and hence the question itself is problematic. They should all refer to dB or 20log(V) or 10log(V2^2). There is no Bandwidth or unit Hz involved at all. I see the poster has realized this issue.

======earlier reply ====

In my understanding, $20 \log_{10} \left( \frac{V_{s}}{V_{n}} \right)$ has the unit of $\frac{V^{2}}{Hz}$, while the $10 \log_{10} \left( \frac{M}{2} \right)$ is actually the bandwidth, which is in $Hz$. As a result, the overall term has units of $V^{2} = \frac{V^{2}}{Hz} \cdot Hz$. In log, addition is equal to multiplication without the log.

$\endgroup$
5
  • $\begingroup$ $20 \log_{10} \left( \frac{V_{s}}{V_{n}} \right)$ and $10 \log_{10} \left( \frac{M}{2} \right)$ are dimensionless quantities and have no dimensional units. dB is a dimensionless unit sorta like degrees of arc is a dimensionless unit (radian is really dimensionless and unitless). $\endgroup$ Oct 5, 2023 at 14:06
  • $\begingroup$ I cannot agree with you. it's dB/Hz for 20*log10(Vs/Vn) and 10*log10(M/2) is Hz. degree of arc has unit of degree, radian is the unit as well. $\endgroup$
    – cnMuggle
    Oct 5, 2023 at 19:34
  • $\begingroup$ I dunno if you know how to do dimensional analysis, but the ratio of like-dimensioned quantities is dimensionless. And while the $\log(\cdot)$ is a little ambiguous (because you can separate the units that are "multiplied" with the numerical quantity), normally we insist that the arguments to transcendental functions are dimensionless numbers. This all really is mathematics, engineering mathematics (of which Dimensional Analysis is a part), and just being very careful about the meaning of a numerical quantity attached to a unit. $\endgroup$ Oct 5, 2023 at 20:09
  • $\begingroup$ I actually don't understand what you said matters at all. I admit that I make a mistake in the expression, but what's the hell that you said about dimensional analysis matters here? There is no ambiguous in log(). It's dB=10*log(V^2)=20*log(V). $\endgroup$
    – cnMuggle
    Oct 7, 2023 at 5:59
  • $\begingroup$ I believe it has everything to do with Hz in the calculation (referring to comments otherwise in the answer)— that computation of noise based on 6 dB/but etc is the total noise base on a noise density spread evenly (white noise) across Nyquist, and so with that we can also get a noise density in terms of power/Hz. Thus processing gain is simply a result of filtering out noise that is not within the bandwidth of one DFT bin: the noise density doesn’t change but the total noise as measured is reduced. $\endgroup$ Oct 13, 2023 at 15:39

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.