Digitale Signalverarbeitung auf FPGAs

Ähnliche Dokumente
Zeitdiskrete Signalverarbeitung

Filterentwurf. Bernd Edler Laboratorium für Informationstechnologie DigSig - Teil 11

Klausur zur Vorlesung Digitale Signalverarbeitung

Entwurf zeitdiskreter Systeme. Prof. Dr.-Ing. Marcus Purat Beuth Hochschule für Technik Berlin - Wintersemester 2012/13

Verzerrungsfreies System

Vorteile digitaler Filter

Vor- und Nachteile FIR- und IIR-Filter DSV 1, 2005/01, Rur, Filterentwurf, 1

ÜBUNG 4: ENTWURFSMETHODEN

ZHAW, DSV1, FS2010, Rumc, 1. H(z) a) Zeichnen Sie direkt auf das Aufgabenblatt das Betragsspektrum an der Stelle 1.

filter Filter Ziele Parameter Entwurf

Grundlagen der Signalverarbeitung

Einführung in die digitale Signalverarbeitung WS11/12

Filterentwurf. Aufgabe

Kapitel 5: FIR- und IIR-Filterentwurf

Prüfung zur Vorlesung Signalverarbeitung am Name MatrNr. StudKennz.

Musterlösung zur Klausur Digitale Signalverarbeitung

Digitale Signalverarbeitung, Vorlesung 7 - IIR-Filterentwurf

Klausur zur Vorlesung Digitale Signalverarbeitung

Digitale Signalverarbeitung mit MATLAB

SV1: Aktive RC-Filter

Übung 6: Analyse LTD-Systeme

Tontechnik 2. Digitale Filter. Digitale Filter. Zuordnung diskrete digitale Signale neue diskrete digitale Signale

Warum z-transformation?

Seminar Digitale Signalverarbeitung Thema: Digitale Filter

Einführung in die digitale Signalverarbeitung WS11/12

Analoge und digitale Filter

Entwurf von FIR-Filtern

Lösungen der Übungsaufgaben zur Vorlesung Digitale Signalverarbeitung

5. Beispiele - Filter Seite 15

Nachrichtentechnik [NAT] Kapitel 6: Analoge Filter. Dipl.-Ing. Udo Ahlvers HAW Hamburg, FB Medientechnik

Aufgabe: Summe Punkte (max.): Punkte:

Filtertypen Filter 1. Ordnung Filter 2. Ordnung Weitere Filter Idee für unser Projekt. Filter. 3. November Mateusz Grzeszkowski

Digitale Signalverarbeitungssysteme II: Praktikum 1

Fouriertransformation, z-transformation, Differenzenglei- chung

filter Filter Ziele Parameter Entwurf Zölzer (2002) Nov 14, 2015

Systemtheorie Teil B

Datenaquisition. Verstärker Filter. Sensor ADC. Objekt. Rechner

Versuch 5: Filterentwurf

Digitale Signalverarbeitung auf FPGAs

Klausur im Lehrgebiet. Signale und Systeme. - Prof. Dr.-Ing. Thomas Sikora - Name:... Bachelor ET Master TI Vorname:... Diplom KW Magister...

Aufgabe: Summe Punkte (max.): Punkte:

Kontrollfragen zum Skript Teil 1 beantwortet

Allpass-Transformation

Elektronik Prof. Dr.-Ing. Heinz Schmidt-Walter

Lösungen der Übungsaufgaben zur Vorlesung Digitale Signalverarbeitung

3. Quantisierte IIR-Filter R

Signale und Systeme. Grundlagen und Anwendungen mit MATLAB

LTI-Systeme in Frequenzbereich und Zeitbereich

Digitale Filter. Martin Schlup. 8. Mai 2012

5. Laplacetransformation

Digitale Signalverarbeitung Vorlesung 5 - Filterstrukturen

Test = 28 Punkte. 1: 2: 3: 4: 5: Punkte: Note:

Erweiterung einer digitalen Übertragungsstrecke mit Einplatinencomputern zur Signalanalyse

Übung 3: Fouriertransformation

Übungen in Gruppen (max. 3 Personen) gemeinschaftlich durchgeführt Pro Gruppe ein Protokoll Übungsprotokolle:

Signale, Transformationen

[2] M. Meier: Signalverarbeitung, ISBN , Vieweg Verlag, Oktober 2000.

Fourierreihen periodischer Funktionen

Grundlagen der Signalverarbeitung 1 (Integraltransformationen)

,Faltung. Heavisidefunktion σ (t), Diracimpuls δ (t) Anwendungen. 1) Rechteckimpuls. 2) Sprungfunktionen. 3) Schaltvorgänge

Signale und Systeme I

Signale und Systeme I

Einführung in die Elektronik für Physiker

Diskontinuierliche Signale und Systeme

Die Eigenschaften von Systemen. S gesendet. S gesendet. S gesendet. Ideales System (idealer Wandler): Die Signaleigenschaften werden nicht verändert

Digitale Signalverarbeitung, Vorlesung 10 - Diskrete Fouriertransformation

Versuch 3: Anwendungen der schnellen Fourier-Transformation (FFT)

Fahrzeugmechatronik Masterstudiengang M 3.2 Sensoren und Aktoren Labor für Automatisierung und Dynamik AuD FB 03MB

Im Frequenzbereich beschreiben wir das Verhalten von Systemen mit dem Komplexen Frequenzgang: G (jω)

x[n-1] x[n] x[n+1] y[n-1] y[n+1]

Kapitel 2: Fourieranalyse. Analoge, periodische Signale

17 Reale digitale Filter: Koeffizientenquantisierung

Der Tiefpass Betreuer: Daniel Triebs

7. Filter. Aufgabe von Filtern

Inhaltsverzeichnis. Daniel von Grünigen. Digitale Signalverarbeitung. mit einer Einführung in die kontinuierlichen Signale und Systeme

SV2: Digitale Filter und Konvertierung der Abtastrate

Nachrichtentechnik [NAT] Kapitel 4: Fourier-Transformation. Dipl.-Ing. Udo Ahlvers HAW Hamburg, FB Medientechnik

Einführung in die Elektronik für Physiker

Vorwort. I Einführung 1. 1 Einleitung Signale Systeme Signalverarbeitung Struktur des Buches 9. 2 Mathematische Grundlagen 11

Grundlagen der Nachrichtentechnik. 5. Digitale Modulationsverfahren komplett auf Folien teilweise mit Folienunterstützung

Digitale Signalverarbeitung mit MATLAB- Praktikum

SYS_A - ANALYSIEREN. Statistik. NTB Druckdatum: SYS A. Histogramm (Praxis) Gaußsche Normalverteilung (Theorie) Gebrauch: bei n > 100

Übungsaufgaben Signalverarbeitung (SV)

(Bitte geben Sie bei der Beantwortung von Fragen eine Begründung bzw. bei der Lösung von Kurzaufgaben eine kurze Berechnung an!)

Signale und Systeme II

Bearbeitungszeit: 120 Min

TEIL I: Analoge Filter

(Fast) Fourier Transformation und ihre Anwendungen

In diesem Kapitel werden wir eine weitere Klasse von diskreten Filtern kennen lernen, die Infinite Impulse Response Filter.

Digitale Signalbearbeitung und statistische Datenanalyse

Entwurf von IIR-Filtern

Grundlagen der Informationstechnik

Analoge und digitale Filter

Digitale Signalverarbeitung

Digitale Signalverarbeitung auf FPGAs

EAH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Filterentwurf WS 12/13

:. (engl.: first harmonic frequency)

Diskrete Fourier-Transformation und FFT. 1. Die diskrete Fourier-Transformation (DFT) 2. Die Fast Fourier Transform (FFT)

Transkript:

Digitale Signalverarbeitung auf FPGAs FIL: Digitale Filter und Filterentwurf Teil - Linearphasige Filter 6

FIL: Überblick Linearphasige Filter FIR-Filterentwurf Halbbandfilter IIR-Filterentwurf Filtertopologien Filtertransformationen FIL- von 67

Graphische Filter Design Tools Mathworks fdatool: in Matlab fdatool eingeben proprietär, umständliche Bedienung, Fixpoint-Filterentwurf möglich Java-Applet im Browser: www.falstad.com/dfilter begrenzter Funktionsumfang pyfda: github.com/chipmuenk/pyfda Python muss installiert sein, Cross-Platform AS Filter Designer: www.advsolned.com/asn_filter_designer.html Demomode mit eingeschränkter Funktionalität, sehr schöne und flinke Oberfläche, nur für Windows FIL-3 von 67

Verzögerung = Lineare Phase Δ φ = π Δ T f sig f sig : Konstante Verzögerung ΔT bewirkt lineare Phase Beispiel: z 3 j 3Ω = e = 3 Ω = 6 π f /f S =,5 π bei f =f S /4 FIL-4 von 67

Motivation für Linearphasigkeit Lineare Phase konstante Gruppenlaufzeit Zeitbereich Keine Verzerrung der Pulsform (Dispersion) Keine Verfälschung der Phase für Phasenmodulationsverfahren (PSK, DPSK, GMSK, QPSK, ) Frequenzbereich Möglichkeit, Filter bei gleicher Laufzeit additiv zu kombinieren Suche Filter, bei denen sich reellwertiger Amplituden- und linearer Phasengang leicht trennen lassen Spiegelpolynome... FIL-5 von 67

Linearphasige Filter Beispiel: Verzerrung eines Sägezahns FIR (lineare Phase) IIR (nicht-lineare Phase) frequenzabhängige Laufzeit ( Dispersion ) FIL-6 von 67

Symmetrie der Fouriertransformation Reellwertige FIR-Filter h haben die folgenden Frequenzgänge H: h[n] reellwertig - H*(ejΩ) = H(e-jΩ) (konjugiert-symmetrischer Frequenzg.) h[n] gerade H ist gerade (Betragsgang), H ist ungerade - H reellwertig, gerade Symmetrie h[n] ungerade Re{H} ist gerade, Im{H} ist ungerade Frequenzgang H(ejΩ) zusammengesetzt aus cos Funktionen - H imaginär, ungerade Symmetrie Frequenzgang H(ejΩ) zusammengesetzt aus j sin Funktionen ullstelle des Spektrums bei f =! FIL-7 von 67

Typ I linearphasiges FIR Filter Symmetrie Gerade Symmetrie der Impulsantwort, gerade Filterordnung ( ungerade Länge) h[n] = + h[-n] für n Berechne Frequenzgang jω j k Ω H (z=e ) = h[k ]e jω =e k = h[k ]e jω ( ) k k = mit Hilfe der Symmetriebedingung und e jk Ω jk Ω +e = cos k Ω : jω H (e ) = e jω / c k cos k Ω φ(ω=) = k = lineare Phase reeller Amplitudengang mit c = h [ ] [ ], ck = h k für k FIL-8 von 67

Typ II linearphasiges FIR Filter Symmetrie Gerade Symmetrie der Impulsantwort, ungerade Filterordnung h[n] = + h[-n] für n Berechne Frequenzgang jω j k Ω H (z=e ) = h[k ]e jω =e k = h[k ]e jω ( ) k k = cos(k ½ )Ω bei Ω = π mit Hilfe der Symmetriebedingung und e jk Ω j k Ω +e = cos k Ω : jω H (e ) = e jω ( +)/ k = ( ) c k cos k Ω φ(ω = ) = lineare Phase reeller Amplitudengang mit c k = h [ ] + + k für k FIL-9 von 67

Typ III linearphasiges FIR Filter Ungerade Symmetrie der Impulsantwort, gerade Filterordnung Sy mm etr ie h[n] = - h[-n] für n, h[ / ] = Berechne Frequenzgang jω jω j k Ω H (z=e ) = h[k ]e =e k = h[k ]e jω ( ) k k = sin k Ω bei Ω= und Ω=π mit Hilfe der Symmetriebedingung und e jk Ω jk Ω e = j sin k Ω : jω jω H (e ) = j e / c k sin k Ω φ(ω=) = π/ k = lineare Phase mit c =, c k = h reeller Amplitudengang [ ] k für k FIL- von 67

Typ IV linearphasiges FIR Filter Ungerade Symmetrie der Impulsantwort, ungerade Filterordnung Sy mm etr ie h[n] = - h[-n] für n Berechne Frequenzgang jω j k Ω H (z=e ) = h[k ]e jω =e k = h[k ]e jω ( ) k k = sin(k ½ )Ω bei Ω = mit Hilfe der Symmetriebedingung und e jk Ω j k Ω e = j sin k Ω : jω jω H (e ) = j e ( +) / k = Ω ( ) c k sin k φ(ω=) = π/ lineare Phase reeller Amplitudengang mit c k = h [ ] + + k für k FIL- von 67

Bedingungen für Linearphasigkeit Übertragungsfunktion hat lineare Phase wenn: H(z = ejω) = A(ejΩ) ej(-αω+β), A reellwertiger Amplitudengang Phase ϕ = -αω+β ϕ =α konstante Gruppenlaufzeit τ g = Ω Linearphasigkeit setzt voraus (Beweis s. z.b. Schüßler994): Symmetrische Koeffizienten (= Impulsantwort bei FIR-Filtern!) bk = h[n] = ± h[-n] = ±b-k (für reellwertige Koeffizienten) Spiegelpolynome 4 Varianten Typ 4 gerade / ungerade Symmetrie gerade / ungerade Filterordnung ullstellen symmetrisch zum EK (mit Polen stabil nicht möglich!) ur transversale Filter (nicht-rekursiv, FIR) FIL- von 67

ullstellen bei linearphasigen FIR-Filtern Konjugiert-komplexe ullstellen-paare auf dem EK reellwertige Systeme Einzelne ullstellen nur bei z = + und - z 7=e z = jγ /r z =r e j r z5 = r z 9, z ullstellen-paare am EK gespiegelt komplexwertige Systeme /r z8 = - z3 =z *=r e j z4= z 6 =e j =z *7 j = e z * r j * = e =z z *3 r Quadrupel (4 am EK gespiegelte, konjugiertkomplexe St.) Reellwertige Systeme ullstellen müssen paarweise am EK gespiegelt vorliegen alle anderen Kombinationen führen zu nicht-linearphasigen Systemen! FIL-3 von 67

H(f)-Einschränkungen linearphasiger FIR-Filter Abhängig von Symmetrie und gerader oder ungerader Ordnung des Filters müssen bei f = und/oder f = fs / ullstellen im Frequenzgang liegen, die die Einsatzmöglichkeiten einschränken: Typ Symmetrie 3 4 gerade gerade ungerade ungerade Ordnung H(f = ) H(f = fs /) mögl. Filter gerade ungerade gerade ungerade ullstelle ullstelle ullstelle ullstelle - beliebig TP, BP BP HP, BP Beispiel: H(z) = b ( + z -) gerade Symm. der Koeffizienten FIR-Filter der Ordnung = (ungerade) Typ Frequenzgang: H(f) = b cos(πfts) e-jπfts ullstelle H(fs /) = linearer Phasengang φ(f) = -π f Ts bzw. Gruppenlaufzeit g = Ts / FIL-4 von 67

FIR-Filter Typ 3 und Typ 4 Ungerade Symmetrie von h[n], Typ 3 und 4 : H(f = ) = kein TP / BS Filter mit Typ 3 / 4 möglich H(f = fs /) = kein HP / BS Filter mit Typ 3 möglich Typ 3 und Typ 4 Filter werden aufgrund dieser Einschränkungen kaum für normale Filter verwendet Phasendrehung von 9 über einen weiten Frequenzbereich (zusätzlich zur linearen Phase) ermöglichen aber spezielle Anwendungen wie Differentiator oder Hilbert-Transformator FIL-5 von 67

Gruppenlaufzeit linearphasiges FIR-Filter ( = 8) Gruppenlaufzeit: Verzögerung eines schmalbandigen Signals, Linearphasige Systeme: konstante Verzögerung = Gruppenlaufzeit FIR-Filter: Messe Verzögerung zwischen Eingangssignal (= Diracstoß) und Mitte der Impulsantwort: τg = FIL-6 von 67

Implementierung von linearphasigen Filtern Ausnutzung der Symmetrie: x [n] Erst Addieren, dann Multiplizieren....3.37.37 z +.37 z bei identischer Systemfunktion x [n] und kürzerem kritischen Pfad Wenn FIR, dann fast immer linearphasig (auch auf FPGAs)!.37.3 y [n] halbiert Anzahl der Multiplizierer ==.37(z +z ).3.37 y [n] FIL-7 von 67

Zusammenfassung linearphasige FIR Filter Bedingung: gerade oder ungerade Symmetrie der Koeffizienten / Impulsantwort h[n] = + h[-n] oder h[n] = - h[-n]; n = Linearphasiges FIR Filter der Ordnung hat eine lineare Phase von ϕ = -Ω / + β und eine Gruppenlaufzeit g = / Konstanter Anteil der Phase ist β = bei gerader und β = π / bei ungerader Filtersymmetrie FIR Filter werden fast immer als linearphasige Filter ausgelegt: Konstante Gruppenlaufzeit: für viele Anwendungen wichtig Effiziente Implementierung: halb so viele Multiplizierer und kürzerer kritischer Pfad Wenn Linearphasigkeit nicht erforderlich ist, sind übrige Anforderungen meist leichter mit IIR Filter erfüllbar! FIL-8 von 67

Vergleich minimalphasige Filter Linearphasige Filter haben ullstellen auf und außerhalb des EK und sind daher nicht minimalphasig! Minimalphasige FIR-Filter haben geringere Phase und Gruppenlaufzeit Vorteile u.a. für Regelungen Imaginary Part Minimalphasige Systeme haben nur ullstellen (und Polstellen ) innerhalb des Einheitskreises - - Real Part Minimalphasige Filter sind invertierbar: Hinv(z) = / H(z) ullstellen Polstellen Vorteile für Filterbankentwurf FIL-9 von 67

Digitale Signalverarbeitung auf FPGAs FIL: Digitale Filter und Filterentwurf Teil FIR-Filterentwurf 6

Filterentwurf heißt... Filterentwurf heißt, die Koeffizienten so bestimmen, dass das Filter bestimmte Spezifikationen einhält. Filterspezifikationen beziehen sich meist auf den Frequenzgang (Grenzfrequenzen, Sperrdämpfung, Welligkeit,...) Die Koeffizienten eines gesuchten FIR-Filters lassen sich über verschiedene Methoden bestimmen, u.a.: Fourier Approximation / Least Square / Window Design Methode Minimax / Equiripple / Parks-McClellan / Remez / Chebychev Design Arbitrary Frequency Response / Frequency Sampling Methode IIR-Filter werden meist über analoge Referenzfilter entworfen FIL- von 67

Welches Filter(entwurfsverfahren) nehme ich? Multiband Multiband Filter? Filter? nein??? IIR-Filter Ripple Ripple akzeptabel? akzeptabel? nein nein ja Engster Engster mögl. mögl.übergangsübergangsbereich? bereich? ja ja nein Inv. Chebychev-Filter ja Enger nein Enger ÜbergangsÜbergangsbereich? bereich? ja Butterworth Butterworth Filt. Filter (hohe Ordnung) (niedrige Ellliptisches Filter Ordnung) ja nein Ripple Rippleim im Passband? Passband? Linearphasig? Linearphasig? ja Ripple Rippleim im Stopband? Stopband? nein Chebychev-Filter Equiripple (FIR) Entwurf FIR-Filter MultiratenFilter Hohes HohesOverOversampling samplingratio? Ratio? Glättungsfilter? Glättungsfilter? nein Hohe HoheWeitabWeitabDämpfung? Dämpfung? ja SavitzkyGolay-Filter ja WindowEntwurf ja nein Equiripple Entwurf FIL- von 67

Toleranzschemata FIR- und IIR-Filter ADB -δdb ASB Durchlassbereich (DB) IIR-Filter H(ejΩ) -δdb ADB / Durchlassbereich (DB) ASB Sperrbereich (SB) FIR-Filter Sperrbereich (SB) +δdb H(ejΩ) δsb δsb ΩDB -δsb Alternative Darstellung H(ejΩ) für reellwertige linearphasige Filter ΩSB π Ω ΩDB ΩG ΩSB π Ω Ripple DB (FIR): ADB = log [(+δdb ) / (-δdb )] 4 log(+δdb ) Ripple DB (IIR): ADB = - log (-δdb ) δdb = - **-ADB / Dämpfung SB: ASB = - log δsb FIL-3 von 67

FIR - Filterentwurf FIR Filter haben nur ullstellen keine äquivalenten analogen Filter! werden aus den Filterspezifikationen ohne Umweg über analoge Referenzfilter als zeitdiskrete Systeme entworfen werden aus der Übertragungsfunktion meist direkt in Hardware umgesetzt (seltene Ausnahme: kaskadierte oder Lattice-FIR-Filter) keine zusätzlichen Entwurfsschritte für Topologieumsetzung werden meist linearphasig ausgelegt Ausnutzung der Symmetrie der Koeffizienten für effiziente Hardware FIL-4 von 67

DIY*-FIR Tiefpass durch ullenplatzierung Verteile ullstellen im Sperrband auf EK Dämpfung Platziere ullstellen im Durchlassband symmetrisch zum EK linearphasig, annähernd konstanter Verlauf im DB Achte dabei auf konjugiert-komplexe ullstellenpaare reellwertiges System Warum? P =, FIR 7 - - Hardwareimplementierung? ( H (z) = (z+ ) z + j )( z ) ( ) j 7 (z j)(z+ j)(z,7) z z,7 = [-; (-+j)/sqrt(); (--j)/sqrt(); j; -j;.7; /.7]; *DIY = Do-It-Yourself FIL-5 von 67

H(z) des DIY FIR - Filters Kap_P_Plan_3D.m Polstellen = Zeltstangen ullstellen = Heringe (Befestigung) Frequenzgang FIL-6 von 67

Frequenzgang des DIY-FIR-Filters Performance ist noch stark verbesserungsfähig 5 4 Logarithmische Darstellung gut geeignet für Sperrband (Unterdrückung, ullen) log H(e jπf ) Lineare Darstellung gut geeignet für Durchlassband (Welligkeit) (lin. Maßstab) 3..4.6.8 orm. Frequenz F = f / fs Kap_P_Plan_3D.m Berechne H(ejπF) H(e jπf ) Setze z = ejπf (Einheitskreis) 6 - (log. Maßstab) -4-6 -8..4.6.8 orm. Frequenz F = f / fs FIL-7 von 67

φh(e jπf ) in rad / π Phasengang des DIY FIR - Filters H(e jπf ) 5 - (-) (+) (-) (+) (-)..4.6 (+).8 φh(e jπf ) in rad / π orm. Frequenz F = f / fs unwrapped - Phase ist zyklisch, genau wie H(ejπF ) Bei jeder ullstelle von H(ejπF ) auf dem EK wechselt das Vorzeichen Phasensprung um π Begrenzung auf ±π kann mit unwrap rückgängig gemacht werden - π -3 Phase wird über atan Funktion aus Real- und Imaginärteil von H(ejπF) bestimmt, begrenzt auf ±π -4-5..4.6 orm. Frequenz F = f / fs.8 FIL-8 von 67

Professioneller FIR-Entwurf firls(4, [.3.7 ],[ ]) ( least squares Entwurfsverfahren) Höhere Ordnung (4) Geschicktere Platzierung der ullstellen bewirkt geringe Welligkeit im DB und hohe Kap_P_Plan_3D.m Mehr Abstand zwischen DB (.3) und SB (.7) Imaginary Part 4 - Dämpfung im SB - Real Part FIL-9 von 67

Kap_P_Plan_3D.m H(z) des verbesserten FIR - Filters FIL-3 von 67

..4.6.8 ormierte Frequenz Ω / π - -3-4 -5..4.6.8 ormierte Frequenz Ω / π.8.6.4...4.6.8 ormierte Frequenz Ω / π Impulsantwort Frequenzgang von H (lin. Maßstab). - -6 h[n] H(e jω ).4 φ(e jω ) / π -3-4 -5-6 -7 Phasengang von H.6.5.4.3.. -. 4 6 8 n Kap_P_Plan_3D.m Frequenzgang von H (log. Maßstab) - - Halbband-Filter! log H(e jω ) Frequenz-/Phasengang verbessertes FIR Filter 4 FIL-3 von 67

MA Filter mit beliebigen Koeeffizienten x[n] h h h h3 h4 h5 h6 h7 y[n] Bezeichnung: Transversales oder Finite Impulse Response (FIR) Filter FIR-Filter -ter Ordnung hat Delays und ullstellen, + Koeffizienten Berechnung des Frequenzgangs von FIR-Filtern mit beliebigen Koeffizienten i.a. über z- bzw. Fourier-Transformation: H ( z ) = n= hn z n H ( z=e ) = n= hn e jω j nω = n= h n (cos( nω)+ j sin(nω) ) Umgekehrter Weg von H(z = ejω) zu h[n] Filterentwurf! FIL-3 von 67

FIR-Entwurf: Fourier-Approximation Ideale, rechteckförmige Frequenzgänge von TP / HP / BP / BS haben unendlich ausgedehnte Impulsantworten, zusammen-gesetzt aus periodischen si-funktionen (nicht realisierbar) Praxis: Abbruch der Impulsantwort nach Werten Inverse Fourier Transformation mit äquidistanten Stützstellen Fourier-Approximation ist optimal im Sinne des mittleren Fehlerquadrats (Least-Square) (ohne Beweis) Toleranzschema mit Sprungstellen führt zu Überschwingern im Frequenzgang vor und nach der Sprungstelle (Gibbs'sches Phänomen) Python: firwin(, f, width=width, window = 'boxcar') z.b. b_ls = firwin(5,/8,width=/4,window = 'boxcar'); Matlab: firls(, f, a); z.b. b_ls = firls(5,[ 999/8 /8 ],[ ]); FIL-33 von 67

Fourier-Approximation mit Fensterung Begrenzte Anzahl der Fourier-Koeffizienten kann als Multiplikation der Impulsantwort mit Rechteckfenster interpretiert werden Im Frequenzgang Faltung mit Spektrum der Fenster-Folge Faltung mit gutmütigerem Fenster reduziert Gibbs'sches Phänomen auf Kosten der Steilheit des Übergangbereichs Python: firwin(, f, width=width, window = windowtype) z.b. b_ls = firwin(5,/8,width=/4,window = 'hann'); Hochpass / Bandpass etc. mit zusätzlichen Optionen, Default ist 'Hamming' Matlab: fir(,f [,'ftype', 'windowtype']) z.b. b_win = fir(5,/4); Default sind Tiefpass und Hamming-Fenster fir() mit Rechteck-Fenster ergibt gleichen Entwurf wie firls FIL-34 von 67

Vergleich Rechteck vs. Hamming-Fenster.3 Impulsantwort h[n] Impulsantwort h[n]... -. -. - -.5 - Betragsfrequenzgang (linear).6.6.. 3 f in Hz.8.4.4 Betragsfrequenzgang (linear) Gibbs sches Phänomen.8-4 3 f in Hz 4 FIL-35 von 67

FIR-Entwurf: Equiripple-Methode () Finde Filter, das die Spezifikation mit minimaler Ordnung erfüllt Oder: Schlechtest mögliches Design, das bei minimalen Kosten gerade noch die Spezifikation erfüllt - ingenieurmäßig! Viele amen: Minimiere maximalen Fehler (Minimax Methode), Algorithmus nach Parks-McClellan, benutzt Austauschmethode nach Remez und Chebyshev-Approximationstheorie + Toleranzschema wird voll ausgenützt geringere Ordnung als Filter, das mit Fourier-Approximation erzeugt worden ist - You get what you pay for : (spezifizierte) Welligkeit im gesamten Durchlass- und Sperrband, keine geschenkte WeitabUnterdrückung FIL-36 von 67

FIR-Entwurf: Equiripple-Methode () Python: b = remez(,f,a [, w] [, type =...]...) Matlab: b = firpm(, f, a [, w] [, ftype]...) : Ordnung; f,a: Frequenz-und Amplitudenvektor der Bandkanten Achtung: f =! w: Opt. Vektor mit Gewichtung der Bänder, (f)type: 'bandpass', 'differentiator' oder 'hilbert' Abschätzung der benötigten Ordnung aus Ripplespezifikationen: Matlab: [,f,a,w] = firpmord(f,a,dev) oder Python: dsp_fpga_lib.remezord() (gleiche Funktionalität) FIL-37 von 67

Digitale Signalverarbeitung auf FPGAs FIL: Digitale Filter und Filterentwurf Teil 3 - Halbbandfilter 6

Halbband-Filter: Impulsantwort Spezielle Linearphasige FIR-Filter mit gerader Ordnung und gerader Symmetrie ( Typ I), bei denen jeder zweite Koeffizient außer dem mittleren gleich ull ist ahezu die Hälfte der Multiplizierer entfällt.6.5 Festlegung der Koeffizienten ergibt spezielle Einschränkungen im Frequenzbereich τg = /.4 Amplitude Oft für Dezimationsfilter bei hohen Abtastraten verwendet = = ms.3.. -. 3 4 5 6 7 8 9 Zeit (ms) FIL-39 von 67

Halbband-Filter: Frequenzgang Frequenzgang ist punktsymmetrisch zu H(F = ¼), also H(F) + H(½ - F) = +δ -δ H(ejπF) F=¼ ADB FSB ½ F=½ Ripple δdb = δsb = δ im DB und SB ist identisch ASB FDB F δ -δ Dämpfung SB: ASB = - logδ Ripple DB: ADB = log [(+δ ) / (-δ )] 4 log(+δ ) H(F = ¼) = ½ ( -6 db!) Durchlass- und Stopband liegen symmetrisch um fs /4 d.h. DB und SB sind immer gleich breit, FSB = ½ - FDB Anwendung in Filterbänken wegen Symmetrie FIL-4 von 67

Halbband-Filter: Entwurf Entwurf von Halbband-Filtern mit üblichen FIR Entwurfsverfahren, dabei muss fsb = fs / - fdb und ggf. δdb = δsb gewählt werden Beispiel: fs = khz, fdb = Hz, ADB = db, fsb = fs / - fdb = 3 Hz δdb = ADB / 4 - =.59 = δsb ASB = - log δsb = 4.55 db Parks-McClellan- oder Equiripple-Entwurf = firpmord([.4.6],[ ],[.59.59]); Ordnung abschätzen firpm(,[.4.6 ],[ ]); [FDB FSB] [δdb δsb] Fensterbasierter Entwurf (Default-Fenster: Hamming) fir(,.5); (Ordnung durch Ausprobieren,.5 = -6dB Eckfrequenz) FIL-4 von 67

Digitale Signalverarbeitung auf FPGAs FIL: Digitale Filter und Filterentwurf Teil 4 IIR-Filterentwurf 6

Entwurf IIR-Filter Zunächst Entwurf eines analogen Referenzfilters aus Filterspezifikationen (analoge Entwurfsverfahren oder Tabellen) Transformation der gefundenen Übertragungsfunktion H(s) in die zeitdiskrete Domäne H(z) mit z = est s = / ln z so dass birationale (= in Hardware implementierbare) Funktionen in z entstehen impulsinvariante Transformation: h(t) wird durch h(nt) ersetzt, identische Impulsantwort wenn klein genug ist, um relevante Details zu erfassen. H(s) H(z) über z = est (Matlab: impinvar), lineare Frequenzabbildung Aliasing für Signalkomponenten S(f) für f > fs / keine Hochpässe bilineare Transformation: eineindeutige Abbildung zwischen analoger Frequenz fa < und digitaler Frequenz Ωd = π fd / fs < π d fa z s= ln z f a = a = tan d = arctan T S z fs FIL-43 von 67

DIY IIR-Filter Verteile Polstellen z,i entlang des ur konjugiert-komplexe Polpaare für reellwertige Systeme H (z) = Kap_P_Plan_3D.m Durchlassbands für möglichst gleichmäßigen Frequenzgang kz (z z, )(z z, )(z z, ) Hardware? - - poles = [(-+j)/; (--j)/; -.5]; nulls = ;% (oder auch [ ]) k_ =.; FIL-44 von 67

H(z) und H(F) des DIY IIR Filters log H(f) Frequenzgang von H (log. Maßstab) 3D-Darstellung von H(z) 4-5 - - 3-3..4.6.8 orm. Frequenz F.5 Im -.5 - - -.5.5 Re Schlechte Dämpfung im Sperrband! FIL-45 von 67

Verbesserter IIR-Entwurf (ellipt. Filter) Elliptisches Filter 4. Ordnung, db Ripple, 4 db Dämpfung, FDB =.5 Imaginary Part ellip(4,, 4,.5) - - Real Part FIL-46 von 67

H(z) des verbesserten IIR - Filters FIL-47 von 67

Frequenz-/Phasengang verbessertes IIR Filter Amplitudengang Phasengang φ(e jω ) / π.8.6.4 -...4.6.8 Amplitudengang (log.) -..4 ormierte Frequenz Ω / π.6.8 Gruppenlaufzeit τg(e jω ) / log H(e jω ) - -4 Kap_P_Plan_3D.m H(e jω ) 8 6 4-6..4.6.8..4.6.8 FIL-48 von 67

Vergleich verschiedener IIR-Filter 4. Ordnung Spezifikationen: Amax = db, fdb = khz, Amin = 3 db, fsb = khz Besselfilter φ(f): ichtlinearität sehr klein Steilheit: sehr klein Dig. Implementierung nicht sinnvoll, FIR ist effizienter! Butterworth-Filter Amin=3 db Steilheit: klein IH(f)I: monoton φ(f): ichtlinearität klein Chebyshev-Filter Steilheit: mittel IH(f)I: Rippel im DB oder SB φ(f): ichtlinearität mittel Elliptisches Filter (Cauer) Steilheit: gross IH(f)I: Ripple im DB und SB φ(f): ichtlinearität gross FIL-49 von 67

FDB =., FSB =.3, ADB =. db, ASB = 6 db Vergleich verschiedener IIR-Filter () Chebychev I ( = 8) Butterworth ( = 4) Bla Blubb Chebychev II ( = 8) Elliptic ( = 6)

Welches Filter(entwurfsverfahren) nehme ich? Multiband Multiband Filter? Filter? nein??? IIR-Filter Ripple Ripple akzeptabel? akzeptabel? nein nein ja Engster Engster mögl. mögl.übergangsübergangsbereich? bereich? ja ja nein Inv. Chebychev-Filter ja Enger nein Enger ÜbergangsÜbergangsbereich? bereich? ja Butterworth Butterworth Filt. Filter (hohe Ordnung) (niedrige Ellliptisches Filter Ordnung) ja nein Ripple Rippleim im Passband? Passband? Linearphasig? Linearphasig? ja Ripple Rippleim im Stopband? Stopband? nein Chebychev-Filter Equiripple (FIR) Entwurf FIR-Filter MultiratenFilter Hohes HohesOverOversampling samplingratio? Ratio? Glättungsfilter? Glättungsfilter? nein Hohe HoheWeitabWeitabDämpfung? Dämpfung? ja SavitzkyGolay-Filter ja WindowEntwurf ja nein Equiripple Entwurf FIL-5 von 67

Hausaufgabe Filterentwurf mittels Python / Matlab: Spezifikationen: Amax = db, fdb = khz, Amin = 3 db, fsb =.5 khz, fs = 8 khz Rekursive Implementierung über analoge Referenzfunktion, z.b. butter(), ellip() Equiripple-Entwurf (firpm / remez) Least-Square / Windowed Design (firls, fir) Vergleiche Ordnung (= Hardwareaufwand), Gruppenlaufzeit Betrachten Sie das Pol/ullstellendiagramm und versuchen Sie nachzuvollziehen, wie die Frequenzantwort durch die Kombination aus Polen und ullstellen erreicht wird! FIL-5 von 67

Digitale Signalverarbeitung auf FPGAs FIL: Digitale Filter und Filterentwurf Teil 5 Filtertopologien 6

Filtertopologien Filter mit der gleichen Übertragungsfunktion H(z) können auf unterschiedliche Weise implementiert werden Unterschiede bestehen bezüglich: Kosten (Hardware, Rechenzeit) durch Anzahl von Multiplikationen, Additionen und Speicherplätzen Empfindlichkeit gegen Rundungsfehler Verarbeitungsgeschwindigkeit FIL-54 von 67

Direktform Filter Topologien Koeffizienten entsprechen den Koeffizienten ai, bi der Übertragungsfunktion y [n ] = Y (z) H (z) = = X (z) b i z i M b i x [n i ] i= i = M + a i z ai y [n i ] i = M Y z = b i X z z ai Y z z i i i i = i= i= Direktform-Filter sind empfindlich auf Rundungs- / Quantisierungsfehler, vor allem bei höherer Ordnung und hohen Polgüten (nahe am Einheitskreis) Durch einfache Umformungen (Vertauschen von rekursivem / nicht-rekursivem Teil, Transponieren) entstehen Varianten mit bestimmten Vor- und achteilen siehe nächste Folien: FIL-55 von 67

Direkt-Form I (DF-) Struktur ist aus folgender Differenzengleichung abgeleitet: y [n ] = bi x [n i ] i = P ai y [n i ] i = + Ein Summierknoten (Akkumulator) korrektes Endergebnis trotz internem Überlauf solange y[n] im Wertebereich liegt (nur bei er-komplement-arithmetik)! Gut geeignet für Fix-Point-Implementierung - icht-minimale Anzahl Register - Kette von Addierern ist langsam - Requantisierung nach Multiplikation oder b x[n] y[n] b a b a b ap rekursiv transversal breite Register nötig (alle Direktformfilter) FIL-56 von 67

Direkt-Form II (DF-) Entsteht aus DF- Filter durch Vertauschen von transversalem und rekursivem Teilfilter P v [n] = x [n ] ai v [n i ] i = v[n] x[n] y [n] = b i v [n i ] a i = + Minimale Anzahl Verzögerungsglieder, Ringbuffer in Software Zwei Summierknoten auf der linken Seite kann Überlauf auftreten: größere Wortlängen (Guardbits) erforderlich! - Kette von Addierern ist langsam Eher für Software-Implementierungen a ap rekursiv b y[n] b b b transversal FIL-57 von 67

Transponierte Direkt-Form (TDF-) Aus DF- Filter (FIR oder IIR) durch Transponieren entstanden + Minimale Anzahl Register + Eingebautes Pipelining schnell! ± Kritisches Rekursiv-Teilfilter folgt x [n] y [n] -,8 Transversal-Teilfilter (Dämpfung), daher deutlich robuster gegen Überlauf als DF- und TDF- - Requantisierung nach Multiplikation oder breite Register nötig Wird oft einfach Transponierte Direkt-Form genannt, da TDF- in der Praxis nicht verwendet wird! FIL-58 von 67

Kaskadiertes IIR-Filter Größere Robustheit gegen Quantisierung Kap. 4 Besteht aus Teilfiltern zweiter Ordnung ( Second Order Sections, SOS) Pipelining zwischen Teilfiltern leicht möglich Matlab: tfsos(b,a) x[n] y[n].978.7 -.978 -.753.744 -.753 -.979 Fourth order IIR notch filter realised as two biquad (SOS) sections FIL-59 von 67

Kaskadiertes FIR Filter Vorteile wie bei kaskadiertem IIR Filter (Pipelining, Robustheit) Matlab: tfsos(b) FIL-6 von 67

Digitale Signalverarbeitung auf FPGAs FIL: Digitale Filter und Filterentwurf Teil 6 Filtertransformationen 6

Einfache Filtertransformationen Ziel: Aus TP-Entwurf HTP(z ) weitere (bessere) Filter ableiten Transformation mit z z : H(z) = HTP(z ) H(ejΩ) = HTP(e jω) Stauchung des Spektrums (steilere Übergänge!) Wiederholung des Spektrums, muss i.a. in weiterem Filter beseitigt werden Erhöhung der Ordnung um Bei FIR-Filtern ist jeder zweite Koeffizient ull Kann auf z zm erweitert werden (z.b. Differenzierer Kammfilter z - ) Kaskadierung des Filters mit sich selbst H(z) H(z) Vor allem in Software einfachste Möglichkeit, steilere Übergänge und verbesserte Sperrdämpfung zu erhalten! Aber: Auch Ripple im Passband wird doppelt so groß FIL-6 von 67

TP HP-Transformation () Aus TP lässt sich über Modulationssatz der z-transformation ein HP ableiten: an h[n] H(z / a) mit a = -: hhp [n] = (-)n htp [n] HTP(z / (-)) = HTP(-z) = HHP(z) HHP(z = e j Ω) = HTP(e j Ω/e -jπ) = HTP(e j (Ω+π)) Beispiel MA-TP-Filter mit = 3: x[n] h h h h3 y[n] hma [n] = {,,, } = H MA ( z ) = +z +z +z hhp [n] = {, -,, -} 4 3 z = z H HP (z ) = H MA ( z) = z +z z 4 3 z = +z FIL-63 von 67

TP HP-Transformation () [b,a] = cheby(4, 4,.5) Impulsantwort von HHP Impulsantwort von HTP.3 hhp [n].3 htp [n]... -. -. -.. -.3 5 5 n 5 5 n hhp[n] = (-)n htp[n] HHP(z) = HTP(-z) a = [. -.53.537 -.46.747] a = [..53.537.46.747] b = [.458.754.4.754.458] b = [.458 -.754.4 -.754.458] FIL-64 von 67

TP HP-Transformation (3) TP HP - - - - log H(e jω ) log H(e jω ) - -4-6...3.4.5 ormierte Frequenz Ω / π - -4-6...3.4.5 ormierte Frequenz Ω / π FIL-65 von 67

MA-Filter mit modulierten Koeffizienten MA-Filter mit Koeffizienten der Form h[n] = e-jπ m n / mit m =,, und n =,,, lassen sich x[n] über Modulationssatz berechnen, Ergebnis ist rotiertes Filter h h h h3 y[n] e-jπ m n / h[n] H [e-jπ m / z] Beispiele ( = 3): m = : hmod, [n] = {,,, } = hma [n] HMA [z] m = : hmod, [n] = {, -,, -} = e-jπ n / 4 = e-jπn HMA [e-jπ z] m = : hmod, [n] = {, -j, -, j} = e-jπn / 4 = e-jπn / HMA [e-jπ/ z] DFT! FIL-66 von 67

Diese Folien und die zugehörigen Videos sind unter Creative-Commons-Lizenz CC-BY-C-SA 3. de veröffentlicht. Bei Verwendung dieses Werks müssen Sie auf die entsprechende CC-Lizenzurkunde verweisen, in diesem Fall http://creativecommons.org/licenses/by-nc-sa/3./de/. Sie müssen ferner die folgenden Angaben machen ("BY, attribution) Author ( Christian Münker ) Titel ( Digitale Signalverarbeitung auf FPGAs ) URL zu Werk (https://github.com/chipmuenk/dsp_fpga) und / oder Author ( http://www.chipmuenk.de) Außerdem ist die Verwendung auf folgende Weise eingeschränkt: Diese Materialien dürfen nur nicht kommerziell genutzt werden ( C, non-commercial). Dieses Werk oder Teile daraus dürfen nur unter gleichen Lizenzbedingungen weiterverteilt werden ( SA, share alike). Fragen, Anmerkungen, Anregungen, Bugs, Bierbons bitte an mail@chipmuenk.de. Ich wünsche viel Erfolg und Spaß (?!) mit den Materialien!