Filterentwurf IIR-Filter Beispiele für die verschiedenen Filtertypen FIR-Filter Entwurf mit inv. Fouriertransformation und Fensterfunktion Filter mit Tschebyscheff-Verhalten Vorgehensweise bei Matlab / Octave Allpass-Transformation
Filterentwurf mit Matlab bzw. Octave Beispiel für Toleranzschema: ω d = π/8, ω s = π/6, 2 log( δ d ) =, 2 log(δ s ) = 4 Entwurf eines Butterworth-Filters: wd = /8; ws = /6; dd = ; ds = 4; [n,wc] = buttord(wd,ws,dd,ds); n [b,a] = butter(n,wc); Ergebnis: Filtergrad n = 8 Koeffizienten des Zählerpolynoms a und des Nennerpolynoms b 2
Beispiel Butterworth-Tiefpass.2..8 Impulsantwort: L = 2; [x,t] = impz(b,a,l); stem(t,x);.6.4.2.2.4.6 5 5 2 3
Beispiel Butterworth-Tiefpass Pol-Nullstellendiagramm:.5 zplane(b,a); Genauigkeitsprobleme bei Nullstellenberechnung mit mehrfachen Nullstellen!.5.5.5 4
Beispiel Butterworth-Tiefpass.5 Pol-Nullstellendiagramm mit korrigierten Nullstellen (8).5.5.5 Darstellung von Betrags- und Phasengang: FREQRES = 24; freqz(b,a,freqres); 5
Beispiel Butterworth-Tiefpass - Frequenzgänge.5.5 2 2.5 3 2 3 4 5 6 7 8 9 2 4 6 8 2 4 6 8 Frequency Pass band (db) Stop band (db) Phase (degrees) 6
Beispiel Tschebyscheff-Tiefpass Typ [n, wc] = chebord(wd,ws,dd,ds); n [b, a] = cheby(n,dd,wc); Filtergrad n = 8..8.6 Impulsantwort:.4.2.2.4.6 5 5 2 7
Beispiel Tschebyscheff-Tiefpass Typ.5 Pol-Nullstellendiagramm.5.5.5 8
Beispiel Tschebyscheff-Tiefpass Typ - Frequenzgänge.5.5 2 2.5 3 2 3 4 5 6 7 8 9 2 3 4 5 6 7 Frequency Pass band (db) Stop band (db) Phase (degrees) 9
Beispiel Tschebyscheff-Tiefpass Typ 2 [n, wc] = cheb2ord(wd,ws,dd,ds); n [b, a] = cheby2(n,ds,wc); Filtergrad n = 8.2..8.6 Impulsantwort:.4.2.2.4.6 5 5 2
Beispiel Tschebyscheff-Tiefpass Typ 2.5 Pol-Nullstellendiagramm.5.5.5
Beispiel Tschebyscheff-Tiefpass Typ 2 - Frequenzgänge.5.5 2 2.5 3 2 Pass band (db) Stop band (db) 4 6 8 5 5 5 2 25 3 35 4 Phase (degrees) Frequency 2
Beispiel Cauer-Tiefpass [n,wc] = ellipord(wd,ws,dd,ds); n [b,a] = ellip(n,dd,ds,wc); Filtergrad n = 5.2..8.6 Impulsantwort:.4.2.2.4 5 5 2 3
Beispiel Cauer-Tiefpass.5 Pol-Nullstellendiagramm.5.5.5 4
Beispiel Cauer-Tiefpass - Frequenzgänge.5.5 2 2.5 3 2 3 4 5 6 7 8 9 5 5 2 25 3 35 4 Frequency Pass band (db) Stop band (db) Phase (degrees) 5
Entwurf von FIR-Filtern Entwurf mit inv. Fouriertransformation und Fensterfunktion Filter mit Tschebyscheff-Verhalten 6
Grundidee: Filterentwurf mit Fensterfunktion Vorgabe eines Wunschfrequenzgangs Berechnung einer Impulsantwort durch inverse Fouriertransformation Begrenzung auf endliche Länge durch Multiplikation mit Fensterfunktion Problem bei Unstetigkeiten des Wunschfrequenzgangs: Gibbs-Effekt: Überschwingen bleibt bei Rechteckfenster bei ca % Verbesserung: Verwendung besserer Fensterfunktionen 7
Filterentwurf mit Fensterfunktion Für Filterentwurf häufig verwendete Fensterfunktion: ) I (α ( 2nM )2 Kaiser-Fenster w K (n) = mit M/2 n M/2 I (α) α =,.8 α =.6.4 α = 3.2 α = 2 3 4 5 6 7 8 9 8
Filterentwurf mit Fensterfunktion Vorgehensweise zum Entwurf eines Tiefpassfilters: Vorgabe eines Toleranzschemas Bestimmung der benötigten Filterlänge Bestimmung von α wp = /8; ws = /6; delta =.; [n, w, alpha, ftype] = kaiserord([wp,ws],[,],[delta,delta]); a = fir(n,w,kaiser(n+,alpha),ftype); Hier: α = 3.3953, L = n + = 8 9
Beispiel Tiefpass mit Kaiser-Fenster.4.2..8.6.4.2.2 2 4 6 8 2
Beispiel Tiefpass mit Kaiser-Fenster Pol-Nullstellendiagramm:.5 r = roots(a); zplane(r);.5.5.5 2
Beispiel Tiefpass mit Kaiser-Fenster 6.5 Pass band (db) 6 6.5 62 62.5 63 7 8 9 2 3 4 5 6 2 4 6 8 2 4 6 Frequency Stop band (db) Phase (degrees) 22
Ansatz: Filter mit Tschebyscheff-Approximation Bestmögliche Ausnutzung des Toleranzschemas Numerische Optimierung der Positionen der Maxima und Minima: Remez-Exchange, Parks-McClellan wp = /8; ws = /6; d =.5; d2 =.; D = (.539*log(d)*log(d)+.74*log(d)-.476) *log(d2) -.266*log(d)*log(d)-.594*log(d)-.4278; n=ceil(2*d/(ws-wp)); a=remez(n,[ wp ws ],[ ],[ d/d2]); Hier: L = n + = 72 23
Beispiel Filter mit Tschebyscheff-Approximation.4.2..8.6.4.2.2 2 3 4 5 6 7 24
Beispiel Filter mit Tschebyscheff-Approximation Pol-Nullstellendiagramm:.5 r=roots(a); zplane(r(2:n));.5.5.5 25
Beispiel Filter mit Tschebyscheff-Approximation 6 6.5 6 6.5 62 62.5 Pass band (db) 6 7 8 9 2 3 Stop band (db) 2 4 6 8 Phase (degrees) Frequency 26
Grundidee: Allpass-Transformation Entwurf eines IIR-Filters H p (z) mit bekanntem Verfahren Abbildung des Frequenzgangs durch Transformation der Frequenzvariablen Transformation durch Substitution ζ = f(z) in H p (ζ) Bedingung: Einheitskreis muss auf sich selbst abgebildet werden! f(e jω )! = f(z) muss der Übertragungsfunktion eines Allpasses entsprechen Neue Übertragungsfunktion: H(z) = H p (f(z)) bzw. H(e jω ) = H p (e jg(ω) ) mit g(ω) = arg ( f(e jω ) ) 27
Allpass-Transformation Realisierungsmöglichkeit: Ersetzen jedes Verzögerungselements z durch einen stabilen Allpass A(z) = f(z) g(ω) = arg ( A(e jω ) ) Achtung: In der Regel bei rekursiven Systemen nicht direkt anwendbar wegen verzögerungsfreier Schleifen! Neue Übertragungsfunktion muss berechnet und realisiert werden 28
Allpass-Transformation - Beispiel-Filter H p (z) = z z b H p(e jω ) = 9 8 7 6 + b2 2b cos ω mit b =, 9: Hp 5 4 3 2.5.5 2 2.5 3 ω 29
Allpass-Transformation - Beispiel-Allpässe ) A (z) = z g (ω) = π + ω 9 H p H 8 7 6 H 5 4 3 2.5.5 2 2.5 3 ω 3
Allpass-Transformation - Beispiel-Allpässe 2) Allpass. Ordnung: A 2 (z) = az + z a a sin ω g 2 (ω) = ω + 2 arctan a cos ω mit a < X(z) a z Y (z) a 3
Allpass-Transformation - Beispiel-Allpässe 3.5 3.9.5.5.9 2.5 g2(ω) 2.5.5.5.5 2 2.5 3 ω Verzerrung der Frequenzachse für verschiedene Werte von a 32
Allpass-Transformation - Beispiel 9 8.9.5.5.9 7 6 H2 5 4 3 2.5.5 2 2.5 3 ω Resultierende Frequenzgänge 33
Allpass-Transformation - Beispiel 3) Allpass 2. Ordnung: A 3 (z) = ρ2 z 2 2ρ cos ϕz + z 2 2ρ cos ϕz + ρ 2 mit ρ < 7 6 ϕ = π/2.9.8.7 5 g3(ω) 4 3 2.5.5 2 2.5 3 ω 34
Allpass-Transformation - Beispiel g 3 (ω) = 2ω + 2 arctan 7 6 2ρ sin ϕ sin ω ρ 2 sin 2ω 2ρ cos ϕ cos ω + ρ 2 cos 2ω ϕ = π/4.9.8.7 5 g3(ω) 4 3 2.5.5 2 2.5 3 ω 35
Allpass-Transformation - Beispiel 9 8 7 6 ϕ = π/2.9.8.7 H3 5 4 3 2.5.5 2 2.5 3 ω 36
Allpass-Transformation - Beispiel 9 8 7 6 ϕ = π/4.9.8.7 H3 5 4 3 2.5.5 2 2.5 3 ω 37
Allpass-Transformation - Beispiel 4) Allpass 2. Ordnung: A 4 (z) = ρ2 z 2 2ρ cos ϕz + z 2 2ρ cos ϕz + ρ 2 mit ρ < 4 3 2 ϕ = π/2.9.8.7 g4(ω) - -2-3 -4.5.5 2 2.5 3 ω 38
Allpass-Transformation - Beispiel g 4 (ω) = π + 2ω + 2 arctan 4 3 2ρ sin ϕ sin ω ρ 2 sin 2ω 2ρ cos ϕ cos ω + ρ 2 cos 2ω ϕ = 3π/4.9.8.7 2 g4(ω) - -2-3 -4.5.5 2 2.5 3 ω 39
Allpass-Transformation - Beispiel 9 8 7 6 ϕ = π/2.9.8.7 H4 5 4 3 2.5.5 2 2.5 3 ω 4
Allpass-Transformation - Beispiel 9 8 7 6 ϕ = 3π/4.9.8.7 H4 5 4 3 2.5.5 2 2.5 3 ω 4
Allpass-Transformation - Beispiel Butterworth.8.6 Hp.4.2.5.5 2 2.5 3 ω Betragsfrequenzgang Butterworthfilter Ordnung 8 42
Allpass-Transformation - Beispiel Butterworth.8 ϕ = π/2.9.5..6 H4.4.2.5.5 2 2.5 3 ω Betragsfrequenzgang resultierender Bandpass 43
Allpass-Transformation - Beispiel Butterworth.8 ϕ = 3π/4.9.5..6 H4.4.2.5.5 2 2.5 3 ω Betragsfrequenzgang resultierender Bandpass 44
Allpass-Transformation Tiefpass-Bandpass-Transformation mit Allpass 2. Ordnung: Vorgaben aus Toleranzschema: Eckfrequenzen Übergangsbereichsbreiten max. Abweichung im Durchlassbereich Sperrdämpfung(en) Wahl geeigneter Parameter ρ, ϕ, ω c Übertragung in Toleranzschema für Tiefpass-Entwurf 45