Fundamental Assumptions in finite-precision error analysis
Quantization is a highly nonlinear process and is very
difficult to analyze precisely. Approximations and assumptions are made
to make analysis tractable.
Assumption #1
The roundoff or truncation errors at any point in a system
at each time are random,
stationary, and statistically
independent (white and independent of all other
quantizers in a system).
That is, the error autocorrelation function is
r
e
k = E
e
n
e
n
+
k
=
σ
q
2 δ k
r
e
k
e
n
e
n
+
k
σ
q
2
δ
k
.
Intuitively, and confirmed experimentally in some (but not
all!) cases, one expects the quantization error to have a
uniform distribution over the interval
- Δ 2 Δ 2
Δ
2
Δ
2
for rounding, or
- Δ 0
Δ
0
for truncation.
In this case, rounding has zero mean and variance
E Q
x
n
-
x
n
= 0
Q
x
n
x
n
0
σ
Q
2 = E
e
n
2 =
Δ
B
2 12
σ
Q
2
e
n
2
Δ
B
2
12
and truncation has the statistics
E Q
x
n
-
x
n
= - Δ 2
Q
x
n
x
n
Δ
2
σ
Q
2 =
Δ
B
2 12
σ
Q
2
Δ
B
2
12
Please note that the independence assumption may be very
bad (for example, when quantizing a sinusoid with an integer
period N N ). There is another
quantizing scheme called dithering, in which
the values are randomly assigned to nearby quantization
levels. This can be (and often is) implemented by adding a
small (one- or two-bit) random input to the signal before a
truncation or rounding quantizer.
This is used extensively in practice. Altough the overall
error is somewhat higher, it is spread evenly over all
frequencies, rather than being concentrated in spectral
lines. This is very important when quantizing sinusoidal or
other periodic signals, for example.
![]() Figure 1 |
Assumption #2
Pretend that the quantization error is really additive
Gaussian noise with the same mean and
variance as the uniform quantizer. That is, model
This model is a linear system,
which our standard theory can handle easily. We model the noise as
Gaussian because it remains Gaussian after passing through
filters, so analysis in a system context is tractable.
![]() Subfigure 2.1 as ![]() Subfigure 2.2 Figure 2 |


