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