Digitization noise, also called quantization noise, is an artifact caused by the rounding or truncation of numbers to a fixed number of figures. It can originate in the analog-to-digital converter that converts an analog signal to a digital one, or in the circuitry or software involved in transmitting the digital signal to a computer, or even in the process of transferring the data from one program to another, as in copying and pasting data to and from a spreadsheet. The result is a series of non-random steps of equal height. The frequency distribution is white, because of the sharpness of the steps, as you can see by observing the power spectrum.
The
figure on the left, top panel, shows the effect of integer
digitization on a sine wave with an amplitude of +/- 10.
Ensemble averaging, which is usually the most effective of
noise reduction techniques, does not reduce this type of noise
(bottom panel) because it is non-random.
Interestingly,
if additional random noise is present in the signal, then
ensemble averaging becomes effective in reducing both the random noise and the digitization
noise. In essence, the added noise randomizes the
digitization, allowing it to be reduced by ensemble averaging.
Moreover, if there is insufficient random noise already in the
signal, it can be beneficial to add additional noise
artificially! The script RoundingError.m illustrates this
effect, as shown the animation on the right, which shows the
digitized sine wave with gradually increasing amounts of added
random noise in line 8 (generated by the
randn.m function) followed by ensemble averaging of 100
repeats
(in lines 17-20). Look closely at the
waveform in this animation as it changes in response to the
random noise addition shown in the title. You can clearly see
how the noise starts out mostly quantization noise but then
quickly decreases as small but increasing amounts of random
noise are added before the ensemble averaging step, then
eventually increases as too much noise is added. The optimum
standard deviation of random noise is about 0.36 times the
quantization size, as you can demonstrate by adding lesser or
greater amounts via the variable Noise in line 6 of this
script. Note that this works only for ensemble averaged
signals where the noise is added before the quantification.
An audible example of this
idea is illustrated by the Matlab/Octave script DigitizedSpeech.m,
which starts with an audio recording of the spoken phrase
"Testing, one, two, three", previously recorded at 44000 Hz
and saved in WAV format (TestingOneTwoThree.wav) and in
.mat format (testing123.mat),
rounds off the amplitude data progressively to 8 bits (256
steps; sound link),
shown on the left, 4 bits (16 steps; sound link), and 1 bit (2 steps;
sound link), and
then the 2-step case again with random
white noise added before the rounding (2 steps + noise; sound link), plots the waveforms
and plays the resulting sounds, demonstrating both the
degrading effect of rounding and the remarkable improvement
caused by adding noise. (Click on these sound links to hear
the sounds on your computer). Although the computer program in this
case does not perform an explicit ensemble averaging operation as does RoundingError.m,
it's likely that the neurons of the hearing center of your
brain provide that function by virtue of their response time
and memory effect.
This page is part of "A Pragmatic Introduction to Signal
Processing", created and maintained by Prof. Tom O'Haver ,
Department of Chemistry and Biochemistry, The University of
Maryland at College Park. Comments, suggestions and questions
should be directed to Prof. O'Haver at toh@umd.edu. Updated July, 2022.