Digital Signal Processing Reference
In-Depth Information
Point Toolbox . Weil für den Versuch dieses Werkzeug nicht vorausgesetzt wer-
den soll und es didaktisch sinnvoller erscheint, wird in den Beispielprogrammen die
Zweierkomplementarithmetik mit elementaren MATLAB-Befehlen nachgebildet.
Tabelle 18-3
Beispiel für kleine Grenzzyklen in einem System 2. Ordnung mit Runden
der Multiplikationsergebnisse auf eine Wortlänge von 16 Bits bei Impulser-
regung mit kleiner Amplitude 16*LSB . Angegeben sind die kleinsten und
größten Werte y min bzw. y max und die Periode der Grenzzyklen
y min / LSB
y max / LSB
Periode
Polphase
:
30°
12
12
12
60°
90°
Wiederholen Sie die Untersuchungen des Systems 2. Ordnung für die Arithmetik
mit Betragsabschneiden und Sättigung, siehe Programm filt2_ts . Können kleine
Grenzzyklen beobachtet werden?
Programmbeispiel 18-1 Untersuchung von Grenzzyklen in einem System 2. Ordnung
% Limit cycles due to round-off in 2nd order block with quantized
% coefficients and fixed-point arithmetic
% used functions: filt2_rc.m, filt2_ts.m
%% dsplab18_1.m * mw * 16Apr2011
N = 100;
% number of simulation cycles
w = 16; LSB = 2^(-w+1);
% word length and LSB
MODE = 'rc' ;
% rounding, two's-complement overflow
rho = 0.95; phi = 30*pi/180;
% pole magnitude and phase
% Filter parameters
b = [.9375 0 0]; % numerator coefficients
a = [1 -2*rho*cos(phi) rho^2]; % denominator coefficients
bq = LSB*round(b/LSB); % quantized coefficients
aq = [1 2*LSB*round((a(2)/2)/LSB) LSB*round(a(3)/LSB)];
% Input signal - impulse sequence - quantized
xq = [16*LSB zeros(1,N-1)];
% Referenz system : 2nd order block with MATLAB default arithmetic
si = [0; 0]; % initial values for state space variables
[yref,zref] = filter(bq,aq,xq,si);
% 2nd order block with fixed-point arithmetic
switch MODE
case 'rc' % rounding, two's-complement overflow
[y,s,OC] = filt2_rc(bq,aq,xq,si,w);
case 'ts' % truncation, two's-complement overflow
[y,s,OC] = filt2_ts(bq,aq,xq,si,w);
otherwise
disp( 'Unknow method: MODE' )
end
Search WWH ::




Custom Search