App note: Enhancing ADC resolution by oversampling

Posted on Saturday, March 17th, 2012 in app notes by DP

Atmel describes how to enhance ADC resolution by oversampling the signal and averaging the extra data. This has a side effect of increasing the signal to noise ratio, and reducing the quantization error.

When the ADC samples a signal, it quantizes the signal in  discrete steps. This introduces some error, often referred to as  quantization error. Normal averaging will only even out signal fluctuations, while Decimation will increase the resolution. In a  4- times-oversampled signal, four adjacent data points are averaged to produce a new data point. Which frequency to oversample the signal with, can be calculated by equation 3-1.

Adding these extra samples and right-shifting the result by a factor n, yields a result with resolution increased by n bits. Averaging four ADC results to get a new ADC result is the same as if the ADC sampled at ¼ of the rate, but also has the effect of averaging the quantization noise, which improves SNR. This will increase the ENOB and reduce the quantization error. With the availability of faster ADCs and with low memory cost, the advantages of oversampling are cost effective and desirable

This entry was posted on Saturday, March 17th, 2012 at 9:00 pm and is filed under app notes. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

7 Responses to “App note: Enhancing ADC resolution by oversampling”

  1. philip says:

    If the ADC’s speed [samples per second] is fixed then we would sacrifice the bandwidth right?

  2. JBeale says:

    You can trade less time resolution for more voltage resolution only if the noise level is about 1 LSB or more. If the noise is < 1 LSB, then oversampling does not help much; you get additional information only near the edge of a bit transition. That is the case with a MCP3424 18-bit ADC, for example, if your underlying signal is clean enough.

  3. ultrasounder says:

    @Philip, the Arcs bsndwidhth also referred to ad the 3dB point is always fixed and has nothing to do with the number of bits. That bandwidth is fixed by the bandwidth of the internal sample and hold amplifiers GainBandwidthProduct.


  4. Kyle says:

    It’s funny that the example they give is a brewer measuring temperature. It’s the exact same reason this interested me in the first place.

  5. Alexandre Verri says:

    So, in theory, it’s possible to increase Arduino ADC resolution. I’ll take a look at Arduino code.

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Recent Comments

  • Joe Desbonnet: Ya, I can recommend the low melting point solder. I used brand 'ChipQuik' and it's amazingly easy to use.
  • Jerome: I need a new BusPirate for the Fablab ;) Many thanks!
  • Max: Seems like an unexpectedly violent way to remove the chip indeed. A hot air station should of course do the job just fine, but in...
  • jose: Part removal described here is pure butchery, the cheapest hot air station will do a fast and clean job removing the QFP, heat air to...
  • Cody: Yes please