Entwurf von IIR
Transcription
Entwurf von IIR
Kapitel 1 Entwurf von IIR-Filtern 1.1 Einleitung Darstellung von IIR-Filtern im Zeitbereich1 1.1.1 y[n] = b0 x[n] + b1 x[n a1 y[n = M X 1] bk x[n a2 y[n k] 2] ::: am y[n aN y[n M] (1.1) N] m] Darstellung von IIR-Filtern im z Bereich 1.1.2 H(z) N X 2] + : : : + bM x[n m=1 k=0 Y (z) 1] + b2 x[n = = 1 b0 + b1 z Y (z) = X(z) 2 + b2 z M P bk z k=0 N P 1+ + : : : + bM z M X(z) a1 z 1 + a2 z 2 + : : : + aN z k am z m m=1 = b0 + b1 z 1 + a1 z 1 1 + b2 z + a2 z 2 2 + : : : + bM z + : : : + aN z M N = B(z) A(z) Das Zählerpolynom B(z) hat M Nullstellen. Das Nennerpolynom A(z) hat N Nullstellen, die zur Unterscheidung Polstellen genannt werden. 1 Wir wählen die Koe¢ zienten a m im Blockdiagramm negativ, aber in der Literatur …nden sich auch Darstellungen mit positiven Koe¢ zienten am : Negative Koe¢ zienten werden vor allem deshalb gewählt, da auch Matlab diese Schreibweise verwendet. 1 N Y (z) 2 KAPITEL 1. ENTWURF VON IIR-FILTERN 1.1.3 Frequenzgang von IIR-Filtern H(j!) = M P bk e k=0 N P H(z)jz=j! = 1+ j!k am e j!m m=1 jH(j!)j = jH( j!)j 1.1.4 '(!) = '(!) = ... gerade j! arg H(e ) '( !) . . . ungerade Matlab Unterstützung Für die Berechnung des Frequenzgangs stellt Matlab die Funktion freqz zur Verfügung. Pole und Nullstellen können mit der Funktion zplane dargestellt werden. Die numerische Lösung der Di¤erenzengleichung (1.1) für beliebige Eingangsfolgen x kann mit Hilfe von filter durchgeführt werden. impz bzw. stepz berechnen Impuls- und Sprungangtwort. Für den Vergleich von Netzwerkfunktionen unterschiedlicher Filter eignet sich die Funktion fvtool. 1.1.5 Stabilität von IIR-Filtern IIR-Filter sind zum Unterschied von FIR-Filtern nicht garantiert BIBO-stabil. Stabilität liegt vor, wenn die Impulsantwort des FIR-Filters absolut summierbar ist, bzw. wenn P1 1 jh[n] < 1j die Pole des IIR-Filters innerhalb des Einheitskreises in der z Ebene liegen. 1.2 1.2.1 Filterstrukturen Direkte Form I und II Die Systemfunktion eines FIIR-Filters kann in Form eines Blockdiagramms dargestellt werden. Abbildung 1:1 zeigt die Realisierung eines IIR-Filters 4. Ordnung in der Direkten Form 1. H(z) = H1 (z)H2 (z) = M X k=0 | bk e {z j!k 1+ }| All-zero System PN 1 am e {z m=1 All-p ole System j!m } Der linke Teil des Blockdiagramms zeigt den Feed-forward (All-zero System), der rechte Teil den Feed-back (All-pole System). Aus dem Blockdiagramm kann man leicht erkennen, wie die Struktur von IIR-Filtern höherer Ordnung aussehen muss. 1.2. FILTERSTRUKTUREN Abbildung 1.1: IIR-Filter 4. Ordnung, Direkte Form I Abbildung 1.2: IIR-Filter Direktform Typ 2 3 4 KAPITEL 1. ENTWURF VON IIR-FILTERN Abbildung 1.3: Transponierte Form Für die Systemfunktion gilt, dass H(z) = H1 (z)H2 (z) = H2 (z)H1 (z): Vertauscht man die Reihenfolge, dann liegen die Speicherelemente z 1 in der Schaltung parallel, man kann daher mit der halben Zahl der Speicherelemente auskommen. Abbildung 1.2 stellt die Zusammenhänge dar. Durch Transposition kann eine weitere Netzwerktopologie gefunden werden. Dabei geht man wie folgt vor: Der Ausgang wird zum Eingang und der Eingang wird zum Ausgang. Alle Richtungspfeile im Signal‡ussgraphen werden umgedreht. Aus den Verzweigungen werden Addierer. Aus den Addierern werden Verzweigungen. Abbildung 1.3 zeigt die transponierte Form eines Netzwerks in Direkter Form, Typ 2. Transponierte und direkte Form I & II reagieren sehr emp…ndlich auf Quantisierungsfehler, da die Quantisierungsfehler rückgekoppelt und summiert werden und werden daher in der Regel nicht verwendet. 1.2.2 Kaskadierte Sektionen 2. Ordnung Kaskadierte Realisierungen zerlegen die Systemfunktion in Subsysteme 2. Ordnung. H(z) = G K Y k=1 Hk (z) = G K Y b0k + b1k z 1 + b2k z 1 + a1k z 1 + a2k z k=1 2 2 1.2. FILTERSTRUKTUREN 5 Abbildung 1.4: IIR-Filter in Kaskadenrealisierung Wenn die Systemfunktion H(z) ungerade ist, ist eine Kaskade von 1. Ordnung. Kaskaden werden in der Regel in der 2. Direktform realisiert. Abbildung 1.4 zeigt die Anordnung von zwei kaskadierten Subsystemen 2. Ordnung. Kaskadierte Filter sind einfach zu entwerfen und sind weniger anfällig für Quantisierungsfehler und Stabiltätsprobleme als Filter der Direktformen. Allerdings ist die Aufteilung der Pole und Nullstellen auf die Subsysteme zweiter Ordnung nicht trivial. (z z1 ) (z (z p1 ) (z Man wählt folgende Vorgangsweise H(z) = G z2 ) : : : (z p2 ) : : : (z zm ) pn ) 1. Suche des dem Einheitskreis nächstgelegenen Poles oder Polpaares 2. Suche der dem Einheitskreis nächstgelegenen Nullstelle oder Nullstellenpaares 3. Zusammenfassen der gefundenen Pole und Nullstellen in eine Sektion zweiter Ordnung (z z1 )(z z2 ) H(z) = G (z p1 )(z p2 ) 4. Fortsetzen von 1 bis 3, bis alle Pole und Nullstellen in abnehmendem Abstand vom Einheitskreis geordnet sind 5. Implementierung der gefundenen Sektionen Matlab-Unterstützung Die Matlab-Funktion [z,p,G]=tf2zp(b,a) macht aus der Darstellung der Transferfunktion eine Pol- Nullstellen-Darstellung (z. . . Nullstellen, p. . . Polstellen, G. . . Verstärkung). Mit Hilfe der Matlabfunktion [sos,g]=tf2sos(b,a) können die Koe¢ zienten der Subsysteme 2. Ordnung ermittelt werden. G ist der Verstärkungsfaktor, der die Gesamtsystemverstärkung darstellt. SOS =[b01 b11 b21 1 a11 a21 b02 b12 b22 1 a12 a22 .. . b0L b1L b2L 1 a1L a2L ] 6 KAPITEL 1. ENTWURF VON IIR-FILTERN Bemerkung 1 TF2SOS(B,A,DIR_FLAG) speci…es the ordering of the 2nd order sections. If DIR_FLAG is equal to ’UP’, the …rst row will contain the poles closest to the origin, and the last row will contain the poles closest to the unit circle. If DIR_FLAG is equal to ’DOWN’, the sections are ordered in the opposite direction. The zeros are always paired with the poles closest to them. DIR_FLAG defaults to ’UP’. Bemerkung 2 TF2SOS(B,A,DIR_FLAG,SCALE) speci…es the desired scaling of the gain and the numerator coe¢ cients of all 2nd order sections. SCALE can be either ’NONE’, Inf or 2 which correspond to no scaling, in…nity norm scaling and 2-norm scaling respectively. SCALE defaults to ’NONE’. The …lter must be stable in order to scale in the 2-norm or inf-norm sense. Using in…nity-norm scaling in conjunction with ’UP’ ordering will minimize the probability of over‡ow in the realization. On the other hand, using 2-norm scaling in conjunction with ’DOWN’ ordering will minimize the peak roundo¤ noise. 1.2.3 Realisierung durch parallele Filter 2. Ordnung Bei der parallelen Realisierung wird die Systemfunktion durch Partialbruchzerlegung in Subsysteme 2. Ordnung zerlegt. H(z) = b0 + b1 z 1 + : : : + b2k z B(z) = A(z) 1 + a1 z 1 + a2 z N = b0 + b1 z 1 + : : : + b2k z (N 1 + a1 z 1 + a2 z N 0 0 0 1) + M M XN ck z k k=0 Wenn der Grad des Zählerpolynom größ er als der Grad des Nennerpolynoms MPN ist, muss zuerst dividiert werden und es entsteht der Term ck z k : Das ist k=0 aber nicht anderes als ein parallel geschaltetes FIR-Filter. Der wesentlichste Vorteil der Parallelrealisierung ist die höhere Verarbeitungsgeschwindigkeit, da die Ordnung auf zwei reduziert ist. Abbildung 1.5 zeigt die Struktur eines parallelen IIR-Filters. Matlab-Unterstützung Die Matlabfunktion [r,p,k] = residuez(b,a) unterstützt die Berechnung der Filterkoe¢ zienten. H(z) = 1 r1 p1 z 2 + ::: + 1 r1 p1 z 2 + k1 + k2 z 1 + : : : + kM Nz (M N) Die konjugiert komplexen Pole und Residuen werden zusammengefasst, um Subsysteme 2. Ordnung und damit reelle Koe¢ zienten zu erhalten. Stabilität von Subsystemen 2. Ordnung 1 Ein IIR-Filter 1. Ordnung ist stabil, wenn H(z) = 1+az jaj < 1: Für IIR1 Filter 2. Ordnung können wir den Stabiltitätsbereich graphisch darstellen. 1.2. FILTERSTRUKTUREN 7 Abbildung 1.5: IIR-Filter in Parallelrealisierung H(z) = 1 1 + a1 z 1 + a2 z 1 = 1 (1 p1 z 1 )(1 p2 z 1) Nach Koe¢ zeintenvergleich erhalten wir a1 = p1 p2 ; a2 : Stabilität liegt vor, wenn die Pole innerhalb des Einheitskreises liegen, d.h. jp1 j < 1; jp2 j < 1: Daraus folgt, dass ja2 j = p1 p2 < 1; ja1 j < 1+a2 : Die Koe¢ zienten a1; a2 müssen innerhalb des Stabilitätsdreiecks liegen, wie in Abbildung 1.6 gezeigt. 1.2.4 Zählergrad > Nennergrad Wenn Zählergrad > Nennergrad muss durch Division zunächst eine eigentliche rationale Funktion (Zählergrad < Nennergrad) erzeugt werden. Im Blockdiagramm treten dann reine FIR-Filter auf. Abbildung 1.6: Stabilitätsdreieck für IIR 2. Ordnung 8 KAPITEL 1. ENTWURF VON IIR-FILTERN Wir untersuchen das Filter b=[1 2 3 4 5 4 3 2 1], a =[1 0.3 0.1 0.2 0.25] mit der Systemfunktion HBsp (z) = b0 + 2z 1 + 3z 2 + 4z 3 + 5z 4 + 4z 1 + 0:3z 1 + 0:1z 2 + 0:2z 5 3 + 3z 6 + 2z + 0:25z 4 7 +z 8 Da der fZählergradg fNennergradg ; dividieren wir um fZählergradg fNennergradg zu erhalten. Wir führen die Division mit der Matlabfunktion [q,r]=deconv(b,a) durch und erhalten q=[1 1.7 2.39 2.91 3.30], r=[0 0 0 0 0 1.8 1.49 0.61 0.18] HBsp (z) = 1 + 1:7z z 4 1 + 1:7z | + 2 + 2:91z 3 + 3:3z 4 + 2:39z 2 + 2:91z 3 + 3:3z 4 1:8z 1 + 1:49z 2 + 0:61z 3 + 0:18z 4 1 + 0:3z 1 + 0:1z 2 + 0:2z 3 + 0:25z 4 1 + 1:7z +z = + 2:39z 1:8z 3 + 1:49z 2 + 0:61z 1 + 0:18 z 4 (z 4 + 0:3z 3 + 0:1z 2 + 0:2z 1 + 0:25) + = 1 1 1 + 2:39z 0 2 {z + 2:91z 3 + 3:3z FIR-Teil 4 } 1 B C 1:8 + 1:49z 1 + 0:61z 2 + 0:18z 3 B C @ 1 + 0:3z 1 + 0:1z 2 + 0:2z 3 + 0:25z 4 A | {z } Verschiebung z 5 |{z} IIR-Teil Abbildung 1:2:4 zeigt das Blockdiagramm von HBsp . Die Verzögerung um kann durch Verlängerung und Abgri¤ des FIR-Teils realisiert werden. 5 Blockdiagramm zu HBsp 1.2. FILTERSTRUKTUREN 9 Magnitude Response 1 Butterworth 5. Ordnung Mag nitud e 0.8 0.6 Hamming 20. Ordnung 0.4 0.2 0 0 0.1 0.2 0.3 0.4 0.5 Nor malized Fr equency ( 0.6 0.7 ×π r ad/sample) 0.8 0.9 Abbildung 1.7: Vergleich FIR- IIR-Filter 1.2.5 1.2.6 Vorteile und Nachteile von IIR-Filtern IIR-Filter haben kompliziertere Blockdiagramme, sind schwerer zu entwerfen und analysieren als FIR-Filter, haben keine lineare Phase, aber sie sind selektiver! Abbildung 1.7 vergleicht ein Hamming-FIR-Filter 20. Ordnung mit einem Butterworth-IIR-Filter 5. Ordnung. IIR-Filter sind nicht garantiert stabil. 1.2.7 Ermittlung der Filterkoe¢ zienten Die Filterkoe¢ zienten von IIR-Filtern werden in der Regel aus analogen Filtern abgeleitet. Man geht wie folgt vor: 1. Entwurf eines analogen Tiefpass-Filters Für analoge Tiefpässe gibt es umfangreiche Literatur und Entwurfstabellen. 2. Hochpass-, Bandpass oder Bandsperren-Filter werden durch Frequenztransformation in der s Ebene aus dem Tiefpass-Filter erzeugt. 3. Umwandeln in ein IIR-Filter durch Abbildung der s Ebene in die z Ebene. Matlab stellt Funktionen zur Verfügung, die den direkten Entwurf von IIR-Filtern ermöglichen und die Entwurfsschritte 1 3 umsetzen. Alternativ kann auch das analoge Tiefpass-Referenz…lter in den z Bereich transferiert werden und die Hochpass-, Bandpass-, Bandsperren-Tranformation im z Bereich durchgeführt werden Platzieren von Polen und Nullstellen Für einfache Filter erster oder zweiter Ordnung kann durch geeignetes Platzieren von Polen und Nullstellen die gewünschte Filterfunktion realisiert werden. Abbildung zeigt 1.2.7 ein Bandpass…lter, Abbildung 1.2.7 zeigt ein Bandsperren…lter, das auf diese Weise gefunden wurde. 10 KAPITEL 1. ENTWURF VON IIR-FILTERN Invariante Impulsantwort Diese Methode …ndet zum analogen Filter ein digitales Filter mit ähnlicher Impulsanwort. Man geht wie folgt vor: 1. Ermittlung der Systemfunktion Ha (s) des analogen Referenz-Filters. 2. Berechnung der Impulsantwort ha (t) durch inverse Laplace-Transformation L 1 3. Abtastung der Impulsantwort ha (nT ) = hd [n] 4. z Transformation von hd (n) führt zu Hd (z) Wir zeigen diese Methode am Beispiel eines analogen Tiefpass-Filters 1. Ordnung Ha (s) ha (t) = s = L Ai pi 1 fHa (s)g = L 1 s Ai pi = Ai e p i t Durch Abtastung erhalten wir hd [n] = ha (nT ) = Ai epi T ; Wir bringen in den z Bereich und erhalten n = 0; 1; 2; : : : 1.2. FILTERSTRUKTUREN Hd (z) = 1 X ha (nT )z 11 n = n=0 1 X Ai e p i T z n = Ai n=0 1 X e pi T z n=0 | Wir erhalten also die Abbildung Ai ! s p 1 | | {z i} s Bereich 1 {z 1 epi T z 1 n 1 } Ai epi T z 1 {z } z Bereich Bei Filtern höherer Ordnung wird die Partialbruchzerlegung durchgeführt und die einzelnen Pole werden vom s Bereich in den z Bereich abgebildet. Für Subsysteme 2. Ordnung erhalten wir die Beziehungen Ha (s) = Hd (z) = Ha (s) = Hd (z) = 2 (s + ) + 2 ze T sin( T ) 2 z 2ze T cos( T ) + e T s+ 2 (s + ) + 2 z 2 ze T cos( T ) z 2 2ze T cos( T ) + e T Vom Abtasttheorem wissen wir, dass das Spektrum des analogen Signals periodisch fortgesetzt wird. Wir tasten die Impulsantwort ha (t) ab, es wird also Ha (!) periodisch fortgesetzt. Diese Methode kann daher nur für scharf begrenzte Tiefpass- oder Bandpass…lter verwendet werden und verlangt ein kleines T , um die Impulsantwort genau abzutasten. Für Hochpässe und Bandsperren ist dieses Verfahren wegen des Aliasings nicht geeignet. Die Matlabfunktion impinvar unterstützt die Berechnung eines IIR-Filters aus dem analogen Referenz…lter. Sprung-Invarianz Das dargestellte Verfahren ist invariant für die Impulsanwort, aber nicht z. B. für die Sprungantwort. Für die Sprungantwort erhalten wir Yastep = 1 1 Ai Ai Ha (s) = = s s s pi pi 1 1 + s s pi Wir führen die Laplace-Transformation durch und erhalten yastep (t) = Nach Abtastung wird daraus Ai p i t e pi 1 1 (t) 12 KAPITEL 1. ENTWURF VON IIR-FILTERN Ai pi nT e pi yastep (nT ) = 1 1 (t) Berechnen wir die Sprungantwort für unser Impuls-invariantes Filter im z Bereich, müsssen wir mit der z Transformierten der Sprungantwort multiplizieren und erhalten Ydstep = Ai e pi T z 1 1 1 1 z Ai 1 epi T = 1 1 epi T e pi T z 1 + 1 1 z 1 nach Durchführung der z Transformation wird daraus ydstep (n) = Ai 1 e pi T e pi T e pi T n + 1 1 (t) = Ai 1 e pi T 1 epi T (n+1) 1 (t) Wir sehen, dass Ai pi nT e pi yastep (nT ) 6= ydstep (n) Ai 1 1 1 (t) 6= 1 epi T epi T (n+1) 1 (t) Das berechnete Filter ist Impuls-invariant, aber nicht Sprung-invariant! Wir berechnen noch die Sprung-Invarianz yastep (nT ) = Ai pi nT e pi 1 1 (t) 1 1 (t) die z Tranformation liefert Yastep (z) = Ai pi H(z) = Ai pi = 1 1 1 1 Ai e | epi T z 1 z p {zi 1 epi T z 1 pi T 1 Konstante Impulsinvarianz 1 1 z 1 }| z 1 = = H(z) 1 1 z 1 Ai e p i T 1 z 1 p i 1 e pi T z 1 z 1 e pi T z 1 {z } 1 e pi T H(z) = 1 Ai (epi T Sprunginvarianz H(z) = pi Ai epi T z 1 1) z 1 1 ep i T z 1 Bilineare Transformation Die Filtergleichungen sind Di¤erentialgleichungen, die wir auf einem » Analogrechner« darstellen können. Wir benötigen dazu die Operation Addition, Multiplikation mit einer Konstanten und Integration. Die Lösung der Di¤erentialgleichung wollen wir aber numerisch über eine Di¤erenzengleichung …nden, wir benötigen daher einen digitalen Integrator. 1.2. FILTERSTRUKTUREN ya (t) 13 Z = ya (nT ) xa (t)dt ya (n 1) | {z } = + Anfangsbedingung ya (n 1) + ZnT T fxa (nT ) + xa (n |2 {z Trap ezregel y(n) y(n 1) T fx(n) + x(n 2 = xa (t)dt (n 1)T 1)g T )g } Wir führen die z Transformation durch und erhalten 1 Y (z) = X(z) 2 1 1+z 1 z 1 Aus dem analogen Integrierer 1=s wird also 1 s ! s = z = 1 1+z 2 1 z 2 1 z T 1+z 1 + sT =2 1 sT =2 1 1 1 1 Aus der analogen Systemfunktion Ha (s) wird die digitale Systemfunktion Hd (z) Hd (z) = Ha (s)js= 2 T 1 z 1+z 1 1 1 Die Abbildung s = T2 11+zz 1 nennt man bilineare2 Transformation. Durch diese Transformation wird s Ebene in die z Ebene abgebildet. Wir schreiben für die Kreisfrequenz in der s Ebene und ! für die Kreisfrequenz der z Ebene und erhalten durch Einsetzen von s = + j z= <0 ) =0 ) >0 ) 1+ 1 T 2 T 2 +j j T 2 T 2 1+ 2T +j 1 2T j 1+j T jzj = 1 j 2T 2 1+ T +j jzj = 1 2T j 2 jzj = T 2 T 2 <1 =1 T 2 T 2 >1 Die gesamte linke o¤ene s Halbebene wird innerhalb des Einheitskreises der z Ebene abgebildet. Die Transformation ist daher stabil. Umformung erhalten wir T2 sz + T2 s z + 1 = 0: Eine lineare Beziehung, wenn die jeweils andere Variable konstant bleibt, oder bilinear in s und z: 2 Durch 14 KAPITEL 1. ENTWURF VON IIR-FILTERN Abbildung 1.8: Abbildung z Ebene s Ebene durch die bilineare Transformation Die imaginäre Achse der s Halbebene wird auf den Einheitskreises der z Ebene abgebildet. Es gibt daher kein Alisiasing. Allerdings ist die Abbildung sehr nichtlinear, da die imaginäre Achse von 0 bis +1 auf den Einheitskreis von 0 bis ;die imaginäre Achse von 0 bis 1 auf den Einheitskreis von 0 bis abgebildet wird. Wir setzen s = j j in der s Ebene und z = ej! in der z Ebene und erhalten = = 2 1 e T 1+e 2 ! tan T 2 j! j! =j 2 ! tan T 2 Die Verzerrung der Frequenzachse durch die nichtlineare Abblidung wird » frequency warping« genannt. Abbildung 1.9 zeigt den Zusammenhang zwischen analogem und digitalem Filter am Beispiel eines Cauer…lters 5. Ordnung. Um ein digitales Filter mit einem gewünschten Toleranzschema zu erhalten, müssen die Grenzfrequenzen ! p und ! s vorverzerrt (prewarped) werden, um die korrespondierenden Grenzfrequenzen p und s des Referenz…lters Ha (s) zu erhalten. Aus Ha (s) wird durch Bilineartransformation Hd (z): Matlab unterstützt die Bilineartransformation und Prewarping mit der Funktion bilinear. 1.2. FILTERSTRUKTUREN Abbildung 1.9: Darstellung der Verzerrung der Frequenzachse 15