Increasing ADC Measurement Resolution with Oversampling
Share
In this Anabit tutorial we look at how the technique known as oversampling can increase an analog to digital converter's (ADC) measurement resolution and understand tradeoffs when using oversampling with your ADC circuit. Oversampling is a digital signal processing technique that can effectively increase your ADC’s resolution without changing hardware. The core idea is simple: by sampling faster than necessary and averaging multiple readings, you can reduce random noise and reveal finer detail into your signal. When used in the right conditions, oversampling can boost the effective resolution of your ADC measurements by 1, 2, or even more bits, depending on your noise level and oversampling ratio.
The Theory Behind Oversampling
Quantization error arises in ADC because they can only return a finite digital code when measuring an analog signal that could have an infinite number of values (click here to access our tutorial on Quantization Error). Quantization error can be defined as the rounding difference between the analog signal and the nearest digital code. If you have an ideal ADC and you use it to measure a stable constant signal with no noise on it, your measurement would have a fixed value of quantization error. But if your ADC or signal or both have some random noise, the quantization error becomes uncorrelated from sample to sample. This leads to your measured signal value jumping between bits. By averaging ADC samples together you can eliminate the affects of this random noise and increase your measurement resolution.
Noise Reduction Factor = √N -> where N is the number of samples averaged together
To gain 1 extra bit of resolution, you must reduce noise by a factor of 2 -> N = 4
| Extra Bits Desired | Samples to Average (Oversampling Ratio) |
|---|---|
| +1 bit | 4× |
| +2 bits | 16× |
| +3 bits | 64× |
| +4 bits | 256× |
| +5 bits | 1024× |
Important tradeoffs you make from oversampling is by averaging readings together you are effectively reducing your measurement sample rate. That means when measuring DC signals you are increasing measurement latency. When measuring AC signals you are reducing the ADC's measurement bandwidth.
Example: From 12 to 14 Bits
Let's look at an example of using oversampling to increase resolution with the tradeoff of losing measurement bandwidth. Suppose you have a 12-bit ADC (4096 codes) with a voltage reference of 4.096V and want to use oversampling to get an effective measurement resolution of 14-bits (16,384 codes).
12 bit ADC LSB size: 4.096V / (4096 - 1) = 1mV
+2 bits added LSB size: 4.096V / (16384 - 1) = 250uV
For 2 bits of resolution, each added bit requires 4× more samples: 4^2 = 16 samples
If your ADC runs at 200 kilo samples per sec (kSPS): 200,000 ÷ 16 = 12,500 effective SPS
Loss of bandwidth:
At a sample rate of 200 kSPS the Nyquist frequency is: 200 kSPS / 2 = 100 kHz
At a sample rate 12.5 kSPS the Nyquist frequency is: 12.5 kSPS / 2 = 6.25 kHz
That means we gain 2 bits of resolution, going from 12 bits to 14 bits, but we loss significant measurement bandwidth (both by a factor of 16). With this in mind, if you are using oversampling you may need an adjustable anti-aliasing since changing your effective sample rate changes your Nyquist frequency.
What Errors Oversampling Can Reduce
Oversampling primarily helps when your system is limited by random, zero-mean, or noise-like error sources like the examples listed below. It is important to keep in mind the effectiveness of oversampling is dependent on your ADC circuit and the signal you are measuring. If you have a circuit with a high resolution ADC, a low noise circuit design around it, and a low noise signal that you are measuring you may not see much increased benefit from oversampling. On the other hand if you have a noisy circuit that is measuring a noisy signal you most likely will see increases in resolution from oversampling. But if the error caused by the noise was so bad it could make the full specified resolution of the ADC not useful. In that case oversampling may not get you extra bits of resolution, but instead reduce the measurement noise so you get the actual specified resolution of the ADC.
Quantization Noise: This is the main target. Each conversion introduces a rounding error of ±½ LSB. Averaging multiple noisy readings averages out that randomness, improving precision.
Thermal and Johnson Noise: Any analog front-end resistor or amplifier contributes small Gaussian noise. If uncorrelated between samples, this noise acts as natural dither—helping you extract sub-LSB information.
Shot and Flicker Noise (at high sampling ratios): If your front-end or sensor introduces uncorrelated noise components, oversampling filters them out in the digital domain, increasing effective SNR.
Power-supply or reference noise (if random): Random micro-volt-level variations in reference or ground potential can appear as uncorrelated noise. Oversampling attenuates these provided they are not periodic.
ADC’s internal conversion noise: Some ADCs (e.g., SAR or delta-sigma types) exhibit intrinsic random noise between samples. Oversampling averages these fluctuations to yield more stable readings.
What Oversampling Cannot Fix
Oversampling does not correct deterministic or correlated errors—these are errors that repeat exactly the same way every sample. Also, as mentioned in the last section, oversampling averages out random noise. Once the noise in your measurement is effectively averaged out further increases in oversampling will not yield any additional benefits.
Offset Error: A constant bias (e.g., +5 mV shift) appears in all samples and averages to the same offset. It must be removed via two-point or offset calibration.
Gain Error: Scale errors due to resistor tolerances or reference drift cause readings to differ proportionally with input. Averaging won’t correct them; only gain calibration can.
Integral and Differential Nonlinearity (INL/DNL): If the ADC’s step sizes are uneven, the resulting nonlinearity remains. Oversampling averages within each code but cannot linearize the transfer curve.
Temperature Drift: If temperature affects amplifier offset, reference voltage, or ADC characteristics slowly over time, oversampling doesn’t track or cancel it.
Aliasing and Bandwidth Errors: If the input contains high-frequency components above Nyquist, oversampling without proper analog filtering just averages distorted data. Always include an anti-alias filter before your ADC.
Correlated Noise or Ripple: Periodic noise (e.g., 50/60 Hz hum, switching converter ripple) is not random; averaging may partially reduce it but not eliminate it unless its period is asynchronous to your sampling.
Conclusion and Note on Dithering
In this tutorial we looked at the concept of oversampling with an ADC. Oversampling is a digital signal processing technique that can be done in software to increase an ADC's measurement resolution in the face of random error. Although oversampling is an easy way to increase ADC measurement resolution it does have the drawbacks of increasing measurement latency and reducing the effective measurement bandwidth of the ADC. This in turn could add complexity to the ADC's anti-aliasing filter design.
There is a technique known as "Dithering" that can increase the effectiveness of oversampling. Dithering is the act of adding noise to the signal you are measuring, which actually increases the impact of oversampling since it makes other error sources, like quantization noise, more random. For more information on Dithering check out the reference below entitled "Achieving Higher ADC Resolution Using Oversampling."
Here are some detailed references to learn more about oversampling with an ADC
- Tutorial by Walt Kester from Analog Devices: MT-022 ADC Architectures III: Sigma-Delta ADC Basics
- Tutorial by Jayanth Murthy Madapura from Microchip Technology Inc: Achieving Higher ADC Resolution Using Oversampling