▲ Electronics |
Note: the following probably only applies to ADCs based on a successive approximation register (SAR). Other ADC topologies (e.g. Delta-Sigma) won't behave like this, or at least behave differently.
Suppose you have an analog signal and you're trying to digitise it using an analog-to-digital converter (ADC). If there is no noise present in the analog signal, a purely theoretical situation, then, no matter how many averages you take of the ADC output, the achievable resolution will remain the same. However, if a small amount of noise is added (or is present naturally), then taking averages of the ADC output can improve the resolution obtained. This trick is nothing new, but I couldn't find a simple demonstration of it, so wrote a wee program to show the effect. Program source and executable are available in this ZIP file (Visual Basic 6).
For the sake of argument, let's consider a 3-bit ADC. This will have 8 different possible output values. The screenshots of the program below show a graph of the averaged ADC output (if any averages are taken) versus the analog input. Both are in the range 0-1. When noise is added, it has a Gaussian distribution (generated with the Box-Muller transform) and its magnitude is defined by the standard deviation.
As expected, the output has 8 discrete steps.
With 0.02 standard deviation of noise added, there are now noisy transitions around the boundaries between each output level.
If we now take 20 averages of the noisy signal, note how a smoother slope has started to appear in between the main "steps" in the ADC output. More averages won't help to remove the remaining steps in the output.
If yet more noise is added, the steps smooth out entirely into a linear slope.
Increasing the averages helps to reduce the noise in the line.
Comparing the first and last images, you can clearly see how adding a small amount of noise and taking averages has hugely increased the achievable resolution of the ADC. Obviously, if too much noise is added, the benefit is reduced because you have to take more averages to get a smooth signal. It appears that the best amount of noise is a few LSBs of the original ADC output.
▲ Electronics |