Filterentwurf • IIR-Filter Beispiele f¨ur die verschiedenen Filtertypen
Transcription
Filterentwurf • IIR-Filter Beispiele f¨ur die verschiedenen Filtertypen
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 1 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Filterentwurf mit Matlab bzw. Octave Beispiel für Toleranzschema: ωd = π/8, ωs = π/6, 20 log(1 − δd) = −1, 20 log(δs) = −40 Entwurf eines Butterworth-Filters: wd = 1/8; ws = 1/6; dd = 1; ds = 40; [n,wc] = buttord(wd,ws,dd,ds); n [b,a] = butter(n,wc); Ergebnis: • Filtergrad n = 18 • Koeffizienten des Zählerpolynoms a und des Nennerpolynoms b 2 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Butterworth-Tiefpass 0.12 0.1 0.08 Impulsantwort: 0.06 0.04 L = 200; [x,t] = impz(b,a,L); stem(t,x); 0.02 0 −0.02 −0.04 −0.06 0 50 100 150 200 3 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Butterworth-Tiefpass 1 Pol-Nullstellendiagramm: 0.5 zplane(b,a); 0 Genauigkeitsprobleme bei Nullstellenberechnung mit mehrfachen Nullstellen! −0.5 −1 −1 −0.5 0 0.5 1 4 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Butterworth-Tiefpass 1 0.5 Pol-Nullstellendiagramm mit korrigierten Nullstellen 0 (18) −0.5 −1 −1 Darstellung von Betrags- und Phasengang: −0.5 0 0.5 1 FREQRES = 1024; freqz(b,a,FREQRES); 5 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Butterworth-Tiefpass - Frequenzgänge 0 Pass band (dB) −0.5 −1 −1.5 −2 −2.5 −3 0 −10 −20 −30 −40 −50 −60 −70 −80 −90 −100 Stop band (dB) 0 −200 −400 −600 −800 −1000 −1200 −1400 −1600 −1800 Phase (degrees) Frequency 6 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tschebyscheff-Tiefpass Typ 1 [n, wc] = cheb1ord(wd,ws,dd,ds); n [b, a] = cheby1(n,dd,wc); Filtergrad n = 8 0.1 0.08 0.06 0.04 Impulsantwort: 0.02 0 −0.02 −0.04 −0.06 0 50 100 150 200 7 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tschebyscheff-Tiefpass Typ 1 1 0.5 Pol-Nullstellendiagramm 0 −0.5 −1 −1 −0.5 0 0.5 1 8 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tschebyscheff-Tiefpass Typ 1 - Frequenzgänge 0 Pass band (dB) −0.5 −1 −1.5 −2 −2.5 −3 0 −10 −20 −30 −40 −50 −60 −70 −80 −90 −100 Stop band (dB) 0 −100 −200 −300 −400 −500 −600 −700 Phase (degrees) Frequency 9 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tschebyscheff-Tiefpass Typ 2 [n, wc] = cheb2ord(wd,ws,dd,ds); n [b, a] = cheby2(n,ds,wc); Filtergrad n = 8 0.12 0.1 0.08 0.06 Impulsantwort: 0.04 0.02 0 −0.02 −0.04 −0.06 0 50 100 150 200 10 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tschebyscheff-Tiefpass Typ 2 1 0.5 Pol-Nullstellendiagramm 0 −0.5 −1 −1 −0.5 0 0.5 1 11 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tschebyscheff-Tiefpass Typ 2 - Frequenzgänge 0 Pass band (dB) −0.5 −1 −1.5 −2 −2.5 −3 0 Stop band (dB) −20 −40 −60 −80 −100 50 0 −50 −100 −150 −200 −250 −300 −350 −400 Phase (degrees) Frequency 12 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Cauer-Tiefpass [n,wc] = ellipord(wd,ws,dd,ds); n [b,a] = ellip(n,dd,ds,wc); Filtergrad n = 5 0.12 0.1 0.08 0.06 Impulsantwort: 0.04 0.02 0 −0.02 −0.04 0 50 100 150 200 13 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Cauer-Tiefpass 1 0.5 Pol-Nullstellendiagramm 0 −0.5 −1 −1 −0.5 0 0.5 1 14 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Cauer-Tiefpass - Frequenzgänge 0 Pass band (dB) −0.5 −1 −1.5 −2 −2.5 −3 0 −10 −20 −30 −40 −50 −60 −70 −80 −90 −100 Stop band (dB) 0 −50 −100 −150 −200 −250 −300 −350 −400 Phase (degrees) Frequency 15 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Entwurf von FIR-Filtern • Entwurf mit inv. Fouriertransformation und Fensterfunktion • Filter mit Tschebyscheff-Verhalten 16 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Filterentwurf mit Fensterfunktion Grundidee: • 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 10% Verbesserung: Verwendung besserer Fensterfunktionen 17 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Filterentwurf mit Fensterfunktion Für Filterentwurf häufig verwendete Fensterfunktion: q 2 I0 α 1 − ( 2n ) M mit − M/2 ≤ n ≤ M/2 Kaiser-Fenster wK (n) = I0(α) 1 α = 0, 1 0.8 α=1 0.6 α=3 0.4 α = 10 0.2 0 10 20 30 40 50 60 70 80 90 100 18 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Filterentwurf mit Fensterfunktion Vorgehensweise zum Entwurf eines Tiefpassfilters: • Vorgabe eines Toleranzschemas • Bestimmung der benötigten Filterlänge • Bestimmung von α wp = 1/8; ws = 1/6; delta = 0.01; [n, w, alpha, ftype] = kaiserord([wp,ws],[1,0],[delta,delta]); a = fir1(n,w,kaiser(n+1,alpha),ftype); Hier: α = 3.3953, L = n + 1 = 108 19 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tiefpass mit Kaiser-Fenster 0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 −0.02 0 20 40 60 80 100 20 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tiefpass mit Kaiser-Fenster 1 0.5 Pol-Nullstellendiagramm: 0 r = roots(a); zplane(r); −0.5 −1 −1 −0.5 0 0.5 1 21 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Tiefpass mit Kaiser-Fenster Pass band (dB) −60.5 −61 −61.5 −62 −62.5 −63 Stop band (dB) −70 −80 −90 −100 −110 −120 −130 −140 −150 −160 0 −200 −400 −600 −800 −1000 −1200 −1400 −1600 Phase (degrees) Frequency 22 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Filter mit Tschebyscheff-Approximation Ansatz: Bestmögliche Ausnutzung des Toleranzschemas Numerische Optimierung der Positionen der Maxima und Minima: “Remez-Exchange”, “Parks-McClellan” wp = 1/8; ws = 1/6; d1 = 0.05; d2 = 0.01; D = (.005309*log10(d1)*log10(d1)+.07114*log10(d1)-.4761) *log10(d2) -.00266*log10(d1)*log10(d1)-.5941*log10(d1)-.4278; n=ceil(2*D/(ws-wp)); a=remez(n,[0 wp ws 1],[1 1 0 0],[1 d1/d2]); Hier: L = n + 1 = 72 23 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Filter mit Tschebyscheff-Approximation 0.14 0.12 0.1 0.08 0.06 0.04 0.02 0 −0.02 10 20 30 40 50 60 70 24 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Filter mit Tschebyscheff-Approximation 1 0.5 Pol-Nullstellendiagramm: 0 r=roots(a); zplane(r(2:n)); −0.5 −1 −1 −0.5 0 0.5 1 25 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Beispiel Filter mit Tschebyscheff-Approximation −60 Pass band (dB) −60.5 −61 −61.5 −62 −62.5 −60 −70 −80 −90 −100 −110 −120 −130 Stop band (dB) 0 Phase (degrees) −200 −400 −600 −800 −1000 Frequency 26 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation Grundidee: • Entwurf eines IIR-Filters Hp(z) mit bekanntem Verfahren • Abbildung des Frequenzgangs durch Transformation der Frequenzvariablen Transformation durch Substitution ζ = f (z) in Hp(ζ) Bedingung: Einheitskreis muss auf sich selbst abgebildet werden! ! |f (ejω )| = 1 f (z) muss der Übertragungsfunktion eines Allpasses entsprechen Neue Übertragungsfunktion: H(z) = Hp (f (z)) bzw. H(ejω ) = Hp(ejg(ω)) mit g(ω) = arg f (ejω ) 27 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation Realisierungsmöglichkeit: Ersetzen jedes Verzögerungselements z −1 durch einen 1 jω ⇒ g(ω) = − arg A(e ) stabilen Allpass A(z) = f (z) Achtung: In der Regel bei rekursiven Systemen nicht direkt anwendbar wegen verzögerungsfreier Schleifen! Neue Übertragungsfunktion muss berechnet und realisiert werden 28 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel-Filter 1 z jω ⇒ |Hp(e )| = √ Hp(z) = z−b 1 + b2 − 2b cos ω 10 9 8 7 mit b = 0, 9: |Hp | 6 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 29 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel-Allpässe 1) A1(z) = −z −1 ⇒ g1(ω) = π + ω 10 Hp H1 9 8 7 |H| 6 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 30 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel-Allpässe −az + 1 mit |a| < 1 2) Allpass 1. Ordnung: A2(z) = z−a a sin ω ⇒ g2(ω) = ω + 2 arctan 1 − a cos ω X(z) −a z −1 Y (z) a 31 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel-Allpässe 3.5 0.9 0.5 0 −0.5 −0.9 3 g2 (ω ) 2.5 2 1.5 1 0.5 0 0 0.5 1 1.5 ω 2 2.5 3 Verzerrung der Frequenzachse für verschiedene Werte von a 32 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel 10 0.9 0.5 0 −0.5 −0.9 9 8 7 |H2 | 6 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 Resultierende Frequenzgänge 33 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel ρ2z 2 − 2ρ cos ϕz + 1 mit |ρ| < 1 3) Allpass 2. Ordnung: A3(z) = 2 2 z − 2ρ cos ϕz + ρ ϕ = π/2 7 0.9 0.8 0.7 6 g3 (ω ) 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 34 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel 2ρ sin ϕ sin ω − ρ2 sin 2ω g3(ω) = 2ω + 2 arctan 1 − 2ρ cos ϕ cos ω + ρ2 cos 2ω ϕ = π/4 7 0.9 0.8 0.7 6 g3 (ω ) 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 35 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel ϕ = π/2 10 0.9 0.8 0.7 9 8 7 |H3 | 6 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 36 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel ϕ = π/4 10 0.9 0.8 0.7 9 8 7 |H3 | 6 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 37 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel ρ2z 2 − 2ρ cos ϕz + 1 mit |ρ| < 1 4) Allpass 2. Ordnung: A4(z) = − 2 2 z − 2ρ cos ϕz + ρ ϕ = π/2 4 0.9 0.8 0.7 3 2 g4 (ω ) 1 0 -1 -2 -3 -4 0 0.5 1 1.5 ω 2 2.5 3 38 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel 2ρ sin ϕ sin ω − ρ2 sin 2ω g4(ω) = −π + 2ω + 2 arctan 1 − 2ρ cos ϕ cos ω + ρ2 cos 2ω ϕ = 3π/4 4 0.9 0.8 0.7 3 2 g4 (ω ) 1 0 -1 -2 -3 -4 0 0.5 1 1.5 ω 2 2.5 3 39 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel ϕ = π/2 10 0.9 0.8 0.7 9 8 7 |H4 | 6 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 40 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel ϕ = 3π/4 10 0.9 0.8 0.7 9 8 7 |H4 | 6 5 4 3 2 1 0 0 0.5 1 1.5 ω 2 2.5 3 41 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel Butterworth 1 0.8 |Hp | 0.6 0.4 0.2 0 0 0.5 1 1.5 ω 2 2.5 3 Betragsfrequenzgang Butterworthfilter Ordnung 18 42 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel Butterworth ϕ = π/2 1 0.9 0.5 0.1 0.8 |H4 | 0.6 0.4 0.2 0 0 0.5 1 1.5 ω 2 2.5 3 Betragsfrequenzgang resultierender Bandpass 43 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 Allpass-Transformation - Beispiel Butterworth ϕ = 3π/4 1 0.9 0.5 0.1 0.8 |H4 | 0.6 0.4 0.2 0 0 0.5 1 1.5 ω 2 2.5 3 Betragsfrequenzgang resultierender Bandpass 44 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11 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 Bernd Edler ([email protected]) Laboratorium für Informationstechnologie DigSig - Teil 11