Digital Signal Processing Reference
In-Depth Information
M18.4
Inneres Rauschen eines Cauer-Tiefpasses 6. Ordnung
Die Filterkoeffizienten eines Cauer-Tiefpasses 6. Ordnung in Kaskadenform sind in
Tabelle 18-7 zusammengestellt. Messen Sie die Leistung des inneren Geräusches
des Cauer-Tiefpasses, siehe auch Tabelle 17-5.
Tabelle 18-7 Koeffizienten des Cauer-Tiefpasses 6. Ordnung
SOSq = 0.3203 -0.0391 0.3203 1.0000 -1.1875
0.7109
0.4844 0.6797 0.4844 1.0000 -1.3281
0.5000
0.9141
0.0469 -0.0313 0.0469 1.0000 -1.1094
Wiederholen Sie Messung für alle möglichen Reihenfolgen der Blöcke und tragen
Sie die Ergebnisse in Tabelle 18-8 ein.
Tabelle 18-8
Leistung des inneren Rauschens N i eines Cauer-Tiefpasses 6. Ordnung in
Kaskadenform mit quantisierter Arithmetik bei der Wortlänge von 16 Bits
Reihenfolge 1
1
2
3
1
3
2
2
1
3
2
3
1
3
1
2
3
2
1
N i in dB
82.1
1 Die Reihenfolge 1
3 entspricht der Reihenfolge in Tabelle 18-7 mit den Blöcken 2. Ord-
nung entsprechend den Zeilen von SOS.
2
Programmbeispiel 18-4
Untersuchung des inneren Rauschens eines Cauer-Tiefpasses
% Roundoff noise in elliptic IIR filters of 6th order in
% cascade form of 2nd order blocks with quantized coefficients
% and fixed-point arithmetic, see filt2_rc
% dsplab18_3.m * mw * 16Apr2011
w = 16; LSB = 2^(-w+1); % word length and least significant bit
N = 1e5; % number of simulation cycles
c = 2^(-w+12); % noise scaling factor
% Quantized filter coefficients of block 1,2 and 3 of elliptic lowpass
SOS = [0.3203 -0.0391 0.3203 1.0000 -1.1875 0.7109
0.4844 0.6797 0.4844 1.0000 -1.3281 0.5000
0.0469 -0.0313 0.0469 1.0000 -1.1094 0.9141];
bq = LSB*round(SOS(:,1:3)/LSB);
aq = [ones(3,1) 2*LSB*round((SOS(:,5)/2)/LSB)
LSB*round(SOS(:,6)/LSB)];
si = [0 0];
% initial values for state space variables
% input signal - noise
x = 2*rand(1,N)-ones(1,N);
% uniformly distributed in ]-1,1[
xq = LSB*round(c*x/LSB);
% scaled and quantized input signal
% Reference system
[yref1,sref1] = filter(bq(1,:),aq(1,:),xq);
[yref2,sref2] = filter(bq(2,:),aq(2,:),yref1);
[yref3,sref3] = filter(bq(3,:),aq(3,:),yref2);
% System with rounding and two's-complement overflow
k1 = 1; k2 = 2; k3 = 3;
% block order
[y1,si1,OC] = filt2_rc(bq(k1,:),aq(k1,:),xq,si,w);
fprintf( '\ndsplab18_3\n' )
Search WWH ::




Custom Search