Inside ADC we have a quantizer, when the sampled signal is passed through it, the signal values get discretized. The number of discrete levels in which the signal is discretized is called the resolution of the quantizer. I read that if we oversample the input signal and then pass it through the quantizer and pass the output again through a low pass filter called decimation filter the signal to quantization noise (SQNR) of the quantizer improves resulting in better resolution of the quantizer.
How is this possible? True that the SQNR improves but how does that affect the resolution of the Quantizer? Isn't the number of levels inside the quantizer fixed by its hardware and thus resolution of the quantizer i.e., the number of dicrete levels in which it breaks the input fixed?

  • $\begingroup$ The digital decimation filter is driven by high rate, low resolution data. The filter averages that data to provide higher resolution, lower rate data at its output. $\endgroup$
    – John
    Commented Sep 18, 2014 at 19:06

2 Answers 2


There are two aspects to how this works. First, since the signal is oversampled there is a great deal of correlation between samples that we can take advantage of via the low-pass filter. The noise, on the other hand, has no correlation (assuming it is white noise), and thus will often destructively interfere with itself.

Your question seems to be more about how the actual bit growth happens though. If we have, for example, a 12-bit ADC, how can the number of bits grow to, say, 16-bits? It is actually very simple. FIR filters (and the same basic argument applies to IIR filters as well) essentially do a lot of multiplying and adding. When you multiply two 12-bit values you get a 24-bit value. When you add two of those 24-bit values together you get a 25-bit value. The non-scaled bit width of a FIR filter is: $$ (bw_i * 2) + log_2(numTaps) $$ where $bw_i$ is the bit width of the input and $numTaps$ is the number of taps in the filter. As you can see, if we have 12-bit inputs and we want 16-bit outputs there is no trouble getting the 16-bits. You usually have to scale down the filter outputs, in fact, to restrict them to the bit widths that you want.

  • $\begingroup$ Recently I'm trying to simulate an oversampled quantizer (+noise shaping). I first create an oversampled signal to simulate the continuous input, then quantize it to N bits, say N=3, now I have a digital signal with 8 distinct levels. Now comes the LPF! LPF coefficients are 64 bit floating point values (using MATLAB's native data type) so the convolution physically produces a 64 bit output. But I try to find the entropy of filter output from which I'ld deduce the equivalent bit-size (before and after decimation)... It doesn't work? It says 12 bps, the truth being 8? any helps? $\endgroup$
    – Fat32
    Commented Jun 18, 2017 at 16:57
  • $\begingroup$ The problem is, I want to actually compute the SNRQE at the final stage (after the decimation) but to do that I've to re-quantize the output of the decimator. And in doing so am I artifically introducing entropy changes? For example if I'ld re-quantize it to N-bits again then no gain happens. I've to requantize to a higher number of bits, but how do I find (measure) that value, instead of relying on the theoretically calculated number of saved bits? I try to use the actuall error in finding that, but then sample syncronization problem happens due to filtering? $\endgroup$
    – Fat32
    Commented Jun 18, 2017 at 17:04
  • $\begingroup$ Another problem is on the decision of "at which resolution shall we allow the artihmetic operations of filtering", furthermore when there is noise feedback for spectral shaping, at which resolution shall I simulate those operations as well? In numerical simulation of an oversampled ADC one has to be careful about distinguishing between the entropy based information caried by the digital signal at N bits and the number of phsyical bits that represent the quantized values of the sampels being involved... any helps on the strategy? $\endgroup$
    – Fat32
    Commented Jun 18, 2017 at 17:17
  • $\begingroup$ @Fat32 How much does your LPF decimate? I am not an expert on this, but I believe that for every decimation by a factor of 2 should theoretically garner you up to a bit of resolution. I suggest starting your own question to get help with the problem. $\endgroup$
    – Jim Clay
    Commented Jun 18, 2017 at 20:08
  • $\begingroup$ I'm setting it to anything from M=2 to M=256. (LPF impulse response gets extremely long for high M) The problem can be solidified like this: given an analog signal $x_a(t)$ pass it through an ADC with 4 bits and then apply DAC conversion to produce analog $y_a(t)$, now resample this $y_a(t)$ by 16 bits ADC. So your ADC is physically outputting 16 bit quantization, but the samples do not (cannot) carry such an Entropy. As their entropy was constrained to be 4 bits before. Therefore the entropic information limits should be carefully investigated for a reliable simulation of an ADC $\endgroup$
    – Fat32
    Commented Jun 18, 2017 at 20:20

Here is a very simple example demonstrating how we can get increased precision by taking more samples and then filtering (averaging):

Consider "truth" to be a constant 8.2, we quantize by rounding to the closest integer, and we oversample and average (filter) in an attempt to improve the precision of the result. If there was no noise, the result of the quantization would be:

8 8 8 8 8 8 8 8 8 ...

Clearly, no matter how much we oversample, once we average we will still get 8. No improvement in precision!

Now imagine the same with some zero-mean noise added with a uniform distribution of +/-.5; now prior to sampling the signal will vary from 8.2-.5 = 7.7 to 8.2+.5 = 8.7. Now we get 8's and 9's, with 8's occurring much more frequently

8 8 8 8 9 8 8 8 8 8 8 9 8 8 ...

The higher the oversampling rate, the more consecutive samples we can average, and the closer we can get to "truth".

This also exposed a very important criteria for allowing this to occur in sampling a DC signal specifically; you must have noise present that surpasses the smallest quantization level. When using a waveform that is changing with time, there is usually sufficient variation in where the waveform crosses a bit sampling decision boundary (as evidenced by the quantization noise that results in being white and uniformly distributed). With sufficient levels of quantization and a high sampling rate compared to the waveform's frequency content, this is a reasonable approximation.

This gives a very high level view to give you an intuitive feel for how we can add bits by oversampling, and why systems may add "dither" to help achieve better dynamic range.

Specifically for "normal" data converters with a white noise process (meaning excluding "noise-shaping" converters such as Delta-Sigma modulators) , you expect to get a 3dB improvement (1/2 bit) every time you double in sampling frequency. Data converter analog effects such as differential and integral non-linearity will limit how far you can take this improvement through oversampling.


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.