Digital Signal Processing Reference
In-Depth Information
A16.6
Machen Sie sich mit dem Programmbeispiel 16-2 zur Simulation einer Quantisie-
rung im Zweierkomplementformat vertraut.
Programmbeispiel 16-2
Quantisierung im Zweierkomplementformat
function [xq] = quant2c(x,w,TMode)
% Tow's complement quantizer with range [-1,1[ (saturation)
% function [xq] = quant2c(x,w,TMode)
% x : input signal
% w : word length (# of bits)
% TMode : truncation mode
% 't' - truncation (rounding towards minus infinity)
% 'r' - rounding to nearest quantization level
% xq : quantized signal
% quant2c.m * mw * 02Apr2011
LSB = 2^(-w+1);
%
least significant bit
xq = max(-1,min(1-LSB,x));
%
clipping (saturation)
%
Quantizer
if TMode ==
't'
, xq = floor(xq/LSB)*LSB;
elseif TMode ==
'r'
, xq = round(xq/LSB)*LSB;
else error(
'quant2c - invalid mode'
)
end
16.3.5
Versuchsdurchführung
M16.3
Bestimmen Sie die kleinste von eins verschiedene Maschinenzahl mit Ihrem vor-
bereiteten Programm.
M16.4
Bestimmen Sie die MATLAB-Variablen
eps
,
realmax
und
realmin
und ma-
chen Sie sich deren Bedeutung klar. Vergleichen Sie die Werte mit den entsprechen-
den Werten aus Ihrer Vorbereitung.
eps =
realmin =
realmax =
M16.5
Nehmen Sie die Quantisierungskennlinien zum Zweierkomplementformat mit der
Wortlänge von drei Bits für Abschneiden und für Runden auf. Stellen Sie auch die
Quantisierungsfehler grafisch dar.
Hinweis:
Verwenden Sie das Programm
dsplab16_3
in Programmbeispiel 16-3
mit der Funktion
quant2c.m
Programmbeispiel 16-3
Testprogramm für die Quantisierung im Zweierkomplementformat mit
Runden mit dem Programm
quant2c
% Test of tow's complement quantizer function quant2c
% dsplab16_3.m * mw * 02Apr2011
n = -1:.001:1; x = n;
%
input signal
xq = quant2c(x,3,
'r'
);
%
quantization with rounding