Oversampling is the practice of sampling or processing a signal at a rate significantly higher than the Nyquist rate (at least twice the signal bandwidth), then applying digital filtering and decimation to achieve a desired effective resolution or bandwidth. It trades increased sample rate for improved signal quality, reduced analog filter complexity, or both.
In practice
In ADC applications, oversampling is used to improve effective resolution beyond what the hardware converter alone provides. Under ideal conditions (white, uncorrelated quantization noise and proper filtering), every factor-of-four increase in the oversampling ratio (OSR) yields approximately one additional bit of resolution after averaging and decimation -- a result of spreading quantization noise across a wider frequency band and then filtering most of it away. A 12-bit SAR ADC oversampled by 16x and decimated can approach 14-bit effective resolution in low-bandwidth applications under favorable noise and linearity conditions, which is a common technique on STM32, SAM, and other MCUs with mid-grade ADC peripherals.
In DAC applications, oversampling shifts the image frequencies -- spectral copies of the baseband signal -- far enough above the signal band that a simple, low-order analog reconstruction filter can suppress them adequately. Without oversampling, a steep analog anti-imaging filter is required right at the edge of the signal band, which is difficult and expensive to build with tight phase response. "How Discrete Signal Interpolation Improves D/A Conversion" covers this interpolation approach in detail. Many audio DAC pipelines interpolate to 128x or 256x the base sample rate before the analog stage.
Sigma-delta (also written delta-sigma) converters rely on oversampling as a foundational mechanism. They deliberately push quantization noise to high frequencies through noise shaping, then use a decimation filter to remove that noise and deliver high-resolution output words at a lower output data rate. The ADS1115 (16-bit, I2C), the CS4270 audio codec, and the AD7124 are representative parts that operate this way.
A practical pitfall is confusing oversampling ratio with actual signal quality improvement in the presence of correlated noise. Oversampling averages out uncorrelated quantization noise effectively, but correlated noise sources -- power supply ripple coupling into the analog input, for example -- are not suppressed by averaging and can dominate the noise floor regardless of OSR. Decoupling, layout, and reference quality matter as much as the oversampling ratio. "The Sampling Theorem - An Intuitive Approach" provides useful background on why bandwidth and sampling rate interact the way they do.
Learn this in DSP Foundations
Discussed on DSPRelated
Frequently asked
How much does oversampling actually improve ADC resolution?
For uncorrelated (white) quantization noise, resolution improves by 0.5 bits per doubling of the oversampling ratio. To gain N additional bits, you need to oversample by 4^N. Gaining 2 extra bits requires 16x oversampling; gaining 4 extra bits requires 256x. This assumes the noise is truly uncorrelated across samples, which requires either dithering or that the input signal exercises enough of the
ADC's LSBs naturally. If the input is nearly DC and quiet, successive samples are highly correlated and averaging provides little benefit.
What is the difference between oversampling and sigma-delta conversion?
Oversampling is the broader concept of sampling above the
Nyquist rate. Sigma-delta conversion is a specific architecture that combines oversampling with noise shaping -- an internal feedback loop that pushes quantization noise energy toward high frequencies. Plain oversampling with averaging gives 0.5 bits per octave of OSR; noise shaping in a first-order sigma-delta modulator improves this to 1.5 bits per octave, and higher-order modulators do better still. All sigma-delta converters oversample, but not all oversampling systems use
sigma-delta modulation.
Do I need to apply a decimation filter after oversampling, or can I just average the samples?
Simple averaging (a boxcar/rectangular
FIR filter) is the minimum viable
decimation filter and works adequately in many embedded applications. Its
frequency response is a sinc function, which has relatively poor stopband rejection and does not have a flat passband across the full output
Nyquist band. For demanding applications -- audio, precision instrumentation -- a proper low-pass decimation filter (
CIC, cascaded CIC plus FIR, or a direct FIR) gives better alias rejection and flatter passband response. Many sigma-delta
ADC parts include the decimation filter on-chip.
Can oversampling help with anti-aliasing on the input side as well?
Yes. When the
ADC samples at a much higher rate than the signal
bandwidth, the analog anti-aliasing filter only needs to attenuate signals above the oversampled
Nyquist frequency, which is far above the signal band. This relaxes the filter's roll-off requirements significantly, often allowing a lower-order analog filter than would otherwise be needed -- though the exact order still depends on the signal bandwidth, OSR, and interference environment. The digital
decimation filter then handles the sharper band-limiting. This is one of the main motivations for oversampling in audio ADC front ends.
Is oversampling useful on microcontrollers without hardware support?
Yes. Many MCUs -- including STM32, MSP430, AVR, and others -- can implement software oversampling by running the
ADC at its maximum
sample rate, accumulating multiple results, and right-shifting the sum to decimate. On some parts this is purely a software technique with no dedicated hardware or HAL feature, while others (such as certain STM32 variants) do document it explicitly in application notes. The main cost is CPU time or DMA
bandwidth spent collecting the extra samples and the latency introduced by accumulating them. At high OSRs this can become significant on slower cores or in low-power applications where the ADC and CPU cannot be duty-cycled aggressively.
Differentiators vs similar concepts
Oversampling is often conflated with
upsampling (interpolation). Upsampling refers specifically to increasing the
sample rate of an already-discrete signal by inserting zeros and filtering, as done in
DAC pipelines and multirate DSP chains. Oversampling refers to the original acquisition or processing rate being higher than the
Nyquist minimum, with the intent of later decimating. The two concepts overlap in DAC chains -- where a signal is upsampled before output -- but are distinct in intent and context. Oversampling is also distinct from supersampling, a term used in graphics rendering that does not apply to embedded signal processing.