FIR- und IIR-Filter-Struktur DSV 1, 2005/01, Rur, Filterentwurf, 1 x[n] T T x[n-2] b0 b1 b2 FIR-Filter y[n] + + + T + -a1 b0 b1 b2 y[n] x[n] x[n-2] -a2 y[n-2] IIR-Filter
Vor- und Nachteile FIR- und IIR-Filter DSV 1, 2005/01, Rur, Filterentwurf, 2 FIR-Filter sind nichtrekursive LTD-Systeme werden meistens in Transversalstruktur (Direktform 1) realisiert + linearer Phasengang realisierbar + immer stabil (alle Pole im Ursprung) + toleranter gegenüber Quantisierungseffekten als IIR-Filter - höhere Filterordnung als vergleichbare IIR-Filter (mehr Realisierungsaufwand, dafür effiziente Struktur für DSP) - Zeitverzögerung bzw. Gruppenlaufzeit relativ gross IIR-Filter sind rekursive LTD-Systeme werden meistens als Biquad-Kaskade realisiert + kleine Filterordnung (Aufwand) dank Pol-Selektivität + kleine Zeitverzögerung - linearer Phasengang für kausale Filter nicht realisierbar - mehr Probleme mit Quantisierungseffekten als bei FIR-Filter
Filterspezifikation Stempel-Matrizen-Schema DSV 1, 2005/01, Rur, Filterentwurf, 3 Stempel-Matrizen-Schema 1 dB Amax Rp Durch- lass- bereich Amin, Rippel Rs Sperrbereich fDB fSB fs/2 Filterordnung (Aufwand) abhängig von Steilheit im Übergangsbereich
FIR-Filter mit linearer Phase DSV 1, 2005/01, Rur, Filterentwurf, 4 Linearphasige FIR-Filtern der Ordnung N Filterkoeffizienten symmetrisch sind, d.h. bn = bN-n Filterkoeffizienten antisymmetrisch sind, d.h. bn = - bN-n 4 Typen linearphasiger FIR-Filter und H(f)-Restrikitionen Beispiel: H(z) = b0·(1+z-1) FIR-Filter der Ordnung N=1 vom Typ 2 Frequenzgang: H(f) = 2b0·cos(πfTs)·e-jπfTs Nullstelle H(fs/2) = 0 linearer Phasengang φ(f) = -π·f·Ts bzw. Zeitverzögerung Δ = Ts/2 Typ Symmetrie Ordnung N H(0) H(fs/2) 1 sym. gerade - - 2 sym. ungerade - Nullstelle 3 anti-sym. gerade Nullstelle Nullstelle 4 anti-sym. ungerade Nullstelle -
FIR-Filterentwurf mit Fenstermethode DSV 1, 2005/01, Rur, Filterentwurf, 5 Ziel: bn = h[n] so bestimmen, dass H(f) die Spezifikationen erfüllt Fenstermethode 1. Analoge Referenzstossantwort abtasten: hd[n] = Ts·h(t=nTs) idealer TP: -∞ < n < ∞ 2. relevanten Anteil ausschneiden: hc[n] = w[n]·hd[n] für -N/2 ≤ n ≤ N/2 Fenster w[n]: 3. FIR-Filter mit Zeitverschiebung kausal machen: h[n] = hc[n-N/2] Rechteck-Fenster Blackman-Fenster Hamming-Fenster Hanning-Fenster -N/2 0 N/2
Beispiel zum Windowing DSV 1, 2005/01, Rur, Filterentwurf, 6 Gibbs‘sches Phänomen
Einfluss des Fensters hFIR[n] = w[n] · hd[n] HFIR(f) = W(f) * Hd(f) DSV 1, 2005/01, Rur, Filterentwurf, 7 hFIR[n] = w[n] · hd[n] HFIR(f) = W(f) * Hd(f) Hd(f) IW(f0-f)I fDB Gibbs‘sches Phänomen: Überschwingen von HFIR(f0 ≈ fDB) Nebenkeule von W(f) klein => Überschwingen von HFIR(f) klein Hauptkeule von W(f) schmal => Übergangsbereich von HFIR(f) steil
Spektren verschiedener Fenster DSV 1, 2005/01, Rur, Filterentwurf, 8 L=N+1=51 A = - 13 dB A = - 41 dB Δf ≈ (1/L)·fs Δf ≈ (2/L)·fs A = - 31 dB A = - 57 dB Δf ≈ (2/L)·fs Δf ≈ (3/L)·fs
TP – BP/BS/HP-Transformationen DSV 1, 2005/01, Rur, Filterentwurf, 9 Ziel: Erhalt der linearen Phase TP-BP-Frequenztranslation Typ 1,2: bBP[n] = 2·cos(ω0·nTs)·bTP[n] Typ 3,4: bBP[n] = 2·sin(ω0·nTs)·bTP[n] BP-BS-Transformation BS und BP sind komplementär: HBP(z) + HBS(z) = z-N/2 bBS[n] = δ[n-N/2] - bBP[n] TP-HP-Frequenztranslation TP-BP-Trafo mit f0=fs/2: bHP[n] = (-1)n·bTP[n] Beispiel linearphasiges Typ 2 FIR-Filter 1. Ordnung mit fDB=fs/4 TP: HTP(z) = 0.5·(1+z-1) => HP: HHP(z) = 0.5·(1-z-1)
FIR-Differentiator-Filter DSV 1, 2005/01, Rur, Filterentwurf, 10 Referenzfilter: Ha(f) = j2πf => hd[n] = cos(nπ)/n - sin(nπ)/(n2π) Beispiel: FIR-Differentiator 10. Ordnung (Hamming-Fenster) FIR-Differentiatoren, die höhere Frequenzen (Rauschen) unterdrücken HDiff(z) HTP(z) siehe auch Matlab fdatool zwei FIR-Filter
FIR-Hilbert-Filter DSV 1, 2005/01, Rur, Filterentwurf, 11 Referenzfilter: Ha(f) = -j·sgn(f) => hd[n] = [1 - cos(nπ)] / (nπ) Anwendung: breitbandige 900-Phasenschieber (z.B. Einseitenband-Signale in Telekommunikation) Beispiel: FIR-Hilbert-Filter 10. Ordnung (Rechteck-Fenster) „Allpass“ Phasensprung von -900 Linearer Abfall (Zeitverschiebung beim Windowing)
Raised-cosine-FIR-Filter DSV 1, 2005/01, Rur, Filterentwurf, 12 Anwendung: Pulsformung bei der Signalübertragung Beispiel: Raised-Cosine-FIR-Filter, N=20, Rechteck-Fenster Datenrate R = 2 kb/s, fs = 8 kHz, Rolloff r=0.5 Pulsform T=1/R Übergangsbereich (r=0.5)
FIR-Filterentwurf: Frequenzabtastung DSV 1, 2005/01, Rur, Filterentwurf, 13 1. Vorgabe N+1 äquidistante Abtastwerte von H(f) im Bereich [0,fs] periodisch! N+1=80 H[m] fs= 2. IFFT h[n] 3. Zeitverschiebung (oder Vorgabe Phase) bFIR[n] Verbesserungen: Vorgabe weniger steil (siehe ) oder Windowing HFIR(f) Vorgabe wird eingehalten dazwischen aber Überschwingen
FIR-Filterentwurf im z-Bereich DSV 1, 2005/01, Rur, Filterentwurf, 14 Iterative Optimierungsverfahren (CAD) am bekanntesten ist der Remez-Algorithmus (Parks-McClellan) Vorgabe Stempel-Matrize (auch Multiband) => Minimax-Optimierung Equiripple im Durchlass- und Sperrbereich => kleinste Ordnung für Amin Least-Square Optimierungsverfahren Amin
FIR- und IIR-Filter-Struktur DSV 1, 2005/01, Rur, Filterentwurf, 15 x[n] T T x[n-2] b0 b1 b2 FIR-Filter y[n] + + + T + -a1 b0 b1 b2 y[n] x[n] x[n-2] -a2 y[n-2] IIR-Filter
haben doppelte Ordnung) IIR-Filterentwurf: Analoge Prototypen DSV 1, 2005/01, Rur, Filterentwurf, 16 Approximation von ‘Brickwall‘-Filtern ist im Analogen gelöst Beispiel: Butterworth-TP N. Ordnung IIR-Filterentwurf N=1 N=2 N=3 sz-Trafo (bilinear) HTP(s) [ => HBP(s) ] => H(z) => b-,a-Filterkoeffizienten TP-HP/BP/BS-Trafo (Achtung: BP und BS haben doppelte Ordnung)
IIR-Filterentwurf: Analoge Prototypen DSV 1, 2005/01, Rur, Filterentwurf, 17 Vergleich mit Filter 4. Ordnung => Amax=1dB, fDB=1 kHz, Amin=30 dB, fSB=2 kHz Butterworth-Filter Steilheit: klein IH(f)I: monoton φ(f): Nichtlinearität klein Chebyscheff-Filter Steilheit: mittel IH(f)I: Rippel im DB oder SB φ(f): Nichtlinearität mittel Elliptisches Filter (Cauer) Steilheit: gross IH(f)I: Rippel im DB und SB φ(f): Nichtlinearität gross Besselfilter Steilheit: sehr klein φ(f): Nichtlinearität sehr klein Amin=3 dB
Bilineare Transformation DSV 1, 2005/01, Rur, Filterentwurf, 18 Potenzreihen-Approximation für ln Nach dem ersten Glied abgebrochen
Bilineare Transformation DSV 1, 2005/01, Rur, Filterentwurf, 19 sz-Trafo kein Aliasing ! aber Frequenzstauchung ! mit Tangensfunktion f-Trafo: j2πfanalog = j(2/Ts)·tan(πfdigitalTs) IHa(f)I fanalog fanalog -fs/2 fs/2 prewarping fdigital fDB IH(f)I fdigital fDB fs/2
Bilineare Transformation DSV 1, 2005/01, Rur, Filterentwurf, 20 s-Ebene z-Ebene Im Re z-Ebene Im Re Dreht nur einmal rund um dem Einheitskreis kein Aliasing-Effekt!! s-Ebene
IIR-Filterentwurf im z-Bereich DSV 1, 2005/01, Rur, Filterentwurf, 21 Ziel H(f) soll möglichst gut mit Vorgabe übereinstimmen (least-square) Filterkoeffizienten von H(z) variieren bzw. optimieren (CAD) Beispiel Yule-Walker-Filter 10. Ordnung mit 2 Durchlassbereichen
Direktstruktur 1 Direkte Umsetzung der Differenzengleichung DSV 1, 2005/01, Rur, LTD-Systeme, 22 Direkte Umsetzung der Differenzengleichung x[n] y[n] b0 z-1 z-1 b1 -a1 x[n-1] y[n-1] bN -aM x[n-N] y[n-M] Realisierung FIR-Filter mit Direktstruktur 1 x[n-1] x[n-N] z-1 z-1 x[n] … b0 b1 bN-1 bN R=R+X·Y y[n]
Direktstruktur 2 w[n] bo x[n] y[n] z-1 -a1 b1 -aM bN w[n-N] DSV 1, 2005/01, Rur, LTD-Systeme, 23 w[n] bo x[n] y[n] z-1 -a1 b1 -aM bN w[n-N] Schritt 0: (zirkulärer) w-Buffer {w[n-1], ..., w[n-N]} mit Nullen initialisieren Schritt 1: w[n] = x[n] - a1·w[n-1] -…- aM·w[n-M] Schritt 2: y[n] = b0·w[n] +…+ bN·w[n-N] ausgeben Schritt 3: w-Buffer schieben, w[n] speichern (besser: im Ringbuffer ältesten Wert w[n-N] mit w[n] überschreiben) Schritt 4: neuen Eingangswert x[n+1] lesen und mit Schritt 1 weiterfahren
Transponierte Direktstruktur 2 DSV 1, 2005/01, Rur, LTD-Systeme, 24 x[n] y[n] bo z-1 w1[n] -a1 b1 z-1 wN[n] -aM bN y[n] = b0·x[n] + w1[n-1] w1[n] = b1·x[n] - a1·y[n] + w2[n-1] wN-1[n] = bN-1·x[n] - aM-1·y[n] + wN[n-1] wN[n] = bN·x[n] - aM·y[n]
Kaskadierung von Biquads DSV 1, 2005/01, Rur, LTD-Systeme, 25 x[n] ... y[n] K1 b10 KL bL0 z-1 z-1 b11 -a11 bL1 -aL1 z-1 z-1 b12 -a12 bL2 -aL2 Pol-Nullstellenpaarung (Normalfall): letzter Biquad enthält komplexes Polpaar am nächsten beim Einheitskreis und dazu nächstgelegenes konjugiert komplexes Nullstellenpaar. b) übrig gebliebenen Pole und Nullstellen werden nach Regel a) kombiniert.
Zahlendarstellung Festkomma Gleitkomma (IEEE 754/854) bW-1 b0 DSV 1, 2005/01, Rur, LTD-Systeme, 26 Festkomma bW-1 b0 signed integer -2W-1 2W-2 2W-3 20 sign-bit unsigned integer 2W-1 2W-2 2W-3 20 signed fractional -20 2-1 2-2 2-(W-1) sign-bit unsigned fractional 2-1 2-2 2-3 2-W Gleitkomma (IEEE 754/854) s Exponent 1 ≤ E ≤ 254 Mantisse 1 ≤ M < 2 b31 b30 b23 b22 b0 hidden 1
k1·k2· max(IH1(f)·H2(f)I) < 1 Festkomma-Filter (Beispiel) DSV 1, 2005/01, Rur, LTD-Systeme, 27 Filterspezifikation PN-Darstellung UTF Filterart (elliptisches) TP Filterordnung N=4 Abtastfrequenz fs=8000 Hz Eckfrequenz DB fDB=1000 Hz Eckfrequenz SB fSB=1300 Hz max. Rippel im DB Rp=3 dB min. Rippel im SB Rs=40 dB Wortbreite W=8 Bit Biquad-Kaskade Skalierung H1(z) H2(z) k1·max(IH1(f)I) < 1 k1·k2· max(IH1(f)·H2(f)I) < 1 k1 k2 H(z) = k1·H1(z) · k2·H2(z)
Festkomma-Filter (Beispiel) DSV 1, 2005/01, Rur, LTD-Systeme, 28 Biquad 1 Biquad 2 Kaskade Spec erfüllt ! Direktform Spec nicht erfüllt !
FIR-Tiefpass-Filter im Vergleich DSV 1, 2006/01, Hrt, Filterentwurf, 29
FIR-Hochpass-Filter im Vergleich DSV 1, 2006/01, Hrt, Filterentwurf, 30
IIR-Tiefpass-Filter im Vergleich DSV 1, 2006/01, Hrt, Filterentwurf, 31
IIR-Hochpass-Filter im Vergleich DSV 1, 2006/01, Hrt, Filterentwurf, 32