Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Improving adc resolution by averaging

Not open for further replies.

Toru Fujinami

Newbie level 3
Jun 23, 2015
Reaction score
Trophy points
Activity points
I am using 12 bit ADC with ENOB of 11.2bits to measure DC voltage. On firmware, I am taking 16 averages. Assuming additive white Gaussian noise, the ENOB improves by approximately 2 bits.

My claim is that the resolution of the ADC now become 14bits with accuracy of 13.2bits. So I believe that this ADC can measure smaller voltages than the ADC before averaging.

Am I correct??
If this method can be used to improve resolution, there is no need to buy higher resolution ADC; we can just use fast 12bit ADC and take large number of averages.

Thank you

For Gaussian Noise, accuracy improves by sq rt of number of samples averaged. So yes root 16=4=2 bits.

Resolution is the same.

Analyze the noise source, with various source impedance and short circuit of the pre-amplifier may help to see if noise is within normal range or caused by supply or crosstalk from logic lack of isolated Analog. digital ground currents or induced by other sources by adding shielding or ground planes with ferrite CM chokes on input.

Perhaps it may go down.

The calculation with "gaussian noise" is only true if noise is a lot larger (in voltage) than one LSB resolution.
With 12 bit ADC and a reference voltage of 4.096V the LSB is 1mV.

So depending on signal source it may be likely that the noise is below 1 LSB. Then you may see stable ADC readings.
(Yes, i know the LSB may toggle, but this is not enough to
But with stable readings you can not gain sub-LSB information.

with accuracy of 13.2bits
With averaging you gain resolution and precision (= repeatability), but you do not gain accuracy. Offset error, gain error, DNL and INL stay the same.

there is no need to buy higher resolution ADC
Some is answered above.
Additionally averaging acts like a lowpass filter, so if you do this with audio data, then you loose the higher frequencies.

Using a voltage divider to 50 Ohms and coax feed to Spectrum Analyzer on analog preamp out may help isolate noise by viewing spectral density. Examine noise above f/2 sampling rate also.

- - - Updated - - -

I recall designing something with 12 bit ADC using Burr Brown Hybrid in 70's and had no difficulty getting the noise input below LSB but I had some serious problems with dead spots at intermediate logic transition levels like xxxxxx001111 to 010000. Since it was inside the chip, I surmised it was due to logic level shifting the analog ground Vref inside. I changed the chip from an Xray inspected 883B type to Industrial Type and the problem mysteriously went away. This lack of monoticity can be a common issue with logic currents sharing analog ground. , but unrelated to noise. FWIW.

If you have a 12 bit DAC, my best test was to use scope and take Output-Input vs Input in XY mode and discover the lack of monoticity and modulation of noise due to hysteresis effects of positive feedback to Vref from logic state current.

I suggest you do the same to discover all sources of error.

If Vref is noisy, or A_gnd , you can get similar noise problems from lack of filtering here.

YOu can also inject noise externally by making assumptions where you think noise is getting in to see if it gets worse, then fix it.


transition levels like xxxxxx001111 to 010000
This is DNL error. And it may result in missing codes.
I observed this with an ADS8320 with the standard circuit like in datasheet. A 1uF ceramics capacitor at VREF (instead of 100nF like datasheet says) was the solution.
With 1uF I had stable conversions with no missing codes.


Sorry for delayed reply. I did not notice the update on your post.
Since step size of ADC is so small, I was wondering what would be the best way to check ADC.
The method you mentioned (scope in XY method) sounds great way to do it. And I will try it:)

Thank you!

Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to