June 17, 2024


The Internet Generation

What Is Quantization Noise and How to Use It to Calculate the SNR of a Digital Representation?

What is Quantization Noise?

When an ADC converts a continuous signal into a discrete digital representation, the transfer function is like 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 between 0 and V_ref.

The difference between input and output is called 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, but where is it concentrated or spread in the frequency domain? The quantization error creates harmonics in the signal that extend well above the Nyquist frequency. Due to the sampling step of an ADC, these harmonics get folded to the Nyquist band, pushing the total noise power into the Nyquist band and with an approximately white spectrum (equally spread across all frequencies in the band). Some converters work specifically in oversampling (sampling well above the Nyquist frequency) to spread the noise over a wider band and then filter it digitally. That way, noise power can be reduced.

How does the Signal-Noise Ratio (SNR) relates to the number of bits in the digital representation?

Assuming an input sinusoidal with peak-to-peak amplitude V_ref, where 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 calculate 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)

Replacing equations (2) and (3) into (4) will lead to

SNR = 6.02N + 1.76 (dB)

In fact, the term:

SNR = 6.02N + 1.76 (dB)

generalizes to any system using a digital representation. So, a microprocessor representing values with N bits will have a SNR defined by the above formula.

For a detailed explanation of this topic, with figures and good-looking formulas, click here.