350 likes | 626 Views
x[n]. T. T. x[n-2]. y[n]. +. +. +. -a 2. -a 1. T. T. y[n-2]. b 1. b 2. b 0. b 2. b 1. b 0. FIR- und IIR-Filter-Struktur. DSV 1, 2005/01, Rur, Filterentwurf, 1. x[n]. T. T. x[n-2]. FIR-Filter. y[n]. +. +. +. IIR-Filter. Vor- und Nachteile FIR- und IIR-Filter.
E N D
x[n] T T x[n-2] y[n] + + + -a2 -a1 T T y[n-2] b1 b2 b0 b2 b1 b0 FIR- und IIR-Filter-Struktur DSV 1, 2005/01, Rur, Filterentwurf, 1 x[n] T T x[n-2] FIR-Filter y[n] + + + 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 DSV 1, 2005/01, Rur, Filterentwurf, 3 Stempel-Matrizen-Schema 1 dB Amax Rp Durch- lass- bereich Amin, Rippel Rs Sperrbereich fs/2 fDB fSB 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 - Nullstelle3 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‘schesPhänomen
Einfluss des Fensters 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 ≈ (2/L)·fs Δf ≈ (1/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) dazwischen aber Überschwingen Vorgabe wird eingehalten
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
x[n] T T x[n-2] y[n] + + + -a2 -a1 T T y[n-2] b1 b2 b0 b2 b1 b0 FIR- und IIR-Filter-Struktur DSV 1, 2005/01, Rur, Filterentwurf, 15 x[n] T T x[n-2] FIR-Filter y[n] + + + IIR-Filter
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 • IH(f)I: monoton • φ(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 IH(f)I fDB fdigital fDB fs/2
Im Re Im z-Ebene Re Bilineare Transformation DSV 1, 2005/01, Rur, Filterentwurf, 20 s-Ebene z-Ebene 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 DSV 1, 2005/01, Rur, LTD-Systeme, 22 Direkte Umsetzung der Differenzengleichung x[n] y[n] b0 z-1 z-1 b1 -a1 y[n-1] x[n-1] -aM bN y[n-M] x[n-N] Realisierung FIR-Filter mit Direktstruktur 1 x[n-1] x[n-N] z-1 z-1 … x[n] bN-1 bN b0 b1 R=R+X·Y y[n]
Direktstruktur 2 DSV 1, 2005/01, Rur, LTD-Systeme, 23 bo w[n] x[n] y[n] z-1 b1 -a1 -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 y[n] x[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 ... y[n] x[n] b10 bL0 K1 KL z-1 z-1 b11 bL1 -aL1 -a11 z-1 z-1 b12 -aL2 bL2 -a12 • 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 DSV 1, 2005/01, Rur, LTD-Systeme, 26 Festkomma bW-1 b0 signed integer 20 -2W-1 2W-3 2W-2 sign-bit unsigned integer 2W-2 2W-3 2W-1 20 signed fractional 2-(W-1) 2-1 2-2 -20 sign-bit unsigned fractional 2-1 2-W 2-2 2-3 Gleitkomma (IEEE 754/854) s Exponent 1 ≤ E ≤ 254 Mantisse 1 ≤ M < 2 b30 b31 b23 b22 b0 hidden 1
Festkomma-Filter (Beispiel) DSV 1, 2005/01, Rur, LTD-Systeme, 27 PN-Darstellung UTF Filterspezifikation 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