What is Quantization Noise and how to use it to calculate the Signal-Noise Ratio (SNR) of a digital representation?
What is Quantization Noise?
When an Analog-Digital Converter (ADC) converts a continuous signal into a discrete digital representation, the transfer function is sort of a staircase. For each output code, there is a range of input values that produces the same output. That range is called quantum (Q) and is equivalent to the Least Significant Bit (LSB). Q can be calculated by dividing the range of the ADC by the number of steps in the staircase.
(1) Q = V_ref / 2^N.
In the above equation, N is the number of bits of the ADC and the input range can be somewhere between 0 and V_ref.
The difference between input and output is named the quantization error. Therefore, the quantization error can be between -1/2Q and +1/2Q.
This error can be considered a quantization noise with RMS:
(2) v_qn = Q/sqrt(12)
What is the frequency spectrum of the quantization noise?
We know the quantization noise power is v_qn^2, now where will it be concentrated or stretched in the frequency domain? The quantization error causes harmonics in the signal that go well above the Nyquist frequency. Through the sampling aspect of an ADC, those harmonics are folded to the Nyquist band, forcing the whole noise power into the Nyquist band and with an approximately white spectrum (similarly dispersed across all frequencies in the band). Particular converters work explicitly in oversampling (sampling much above the Nyquist frequency) to widen the noise over a wider band and then filter it digitally. Therefore, noise power can be lowered.
How can the Signal-Noise Ratio (SNR) refer to the amount of bits in the digital representation?
Taking an input sinusoidal with peak-to-peak amplitude V_ref, at which V_ref is the reference voltage of an N-bit ADC (therefore, occupying the full-scale of the ADC), its RMS value is
(3) V_rms = 2^N Q / (2*sqrt(2))
To determine the Signal-Noise Ratio, we divide the RMS of the input signal V_rms by the RMS of the quantization noise v_qn:
(4) SNR = 20log(V_rms / v_qn)
Modifying equations (2) and (3) into (4) will lead to
SNR = 6.02N + 1.76 (dB)
For that matter, the formula:
SNR = 6.02N + 1.76 (dB)
generalizes to any other system with a digital representation. Hence, a microprocessor which represents values with N bits would have a SNR defined by the above formula.
More info
- On My Ph.D.
This is where I explain what I learned in my Ph.D. in electronics and signal processing