Quantizing a real signal to bits of precision can be modeled as a linear system that adds normally distributed noise with a standard deviation of [1,2].
Compute the theoretical quantization noise standard deviation with bits of precision using the
p = 14; theoreticalQuantizationNoiseStandardDeviation = fixed.realQuantizationNoiseStandardDeviation(p);
The returned value is .
Create a real signal with samples.
rng('default'); n = 1e6; x = rand(1,n);
Quantize the signal with bits of precision.
wordLength = 16; x_quantized = quantizenumeric(x,1,wordLength,p);
Compute the quantization noise by taking the difference between the quantized signal and the original signal.
quantizationNoise = x_quantized - x;
Compute the measured quantization noise standard deviation.
measuredQuantizationNoiseStandardDeviation = std(quantizationNoise)
measuredQuantizationNoiseStandardDeviation = 1.7607e-05
Compare the actual quantization noise standard deviation to the theoretical and see that they are close for large values of .
theoreticalQuantizationNoiseStandardDeviation = 1.7619e-05
Bernard Widrow. “A Study of Rough Amplitude Quantization by Means of Nyquist Sampling Theory”. In: IRE Transactions on Circuit Theory 3.4 (Dec. 1956), pp. 266–276.
Bernard Widrow and István Kollár. Quantization Noise – Roundoff Error in Digital Computation, Signal Processing, Control, and Communications. Cambridge, UK: Cambridge University Press, 2008.