Musterlösung 10. Aufgabenblatt
Transcription
Musterlösung 10. Aufgabenblatt
Einführung in die digitale Signalverarbeitung WS11/12 Prof. Dr. Stefan Weinzierl Musterlösung 10. Aufgabenblatt 1. Digitale Filter 1.1 Was ist ein digitales Filter und zu welchen Zwecken wird die Filterung eingesetzt? Ein digitales Filter ist einfach ein digitales System, das dementsprechend mit zeitdiskreten Eingangssignale arbeiten kann, und ein quantisiertes Ausgangssignal liefert. Das Ausgangssignal ist gegeben durch die Faltung des Signals x[n] mit der Impulsantwort h[n] des Filters. Dadurch lassen sich digitale Filter mit Hinblick auf ihre Systemeigenschaften charakterisieren und mittels Fourier- und Z-Transformation analysieren. Die Filterung wird für mehrere Gründe eingesetzt. Manche davon sind: - Die Abschwächung bzw. Verstärkung einer bestimmten Frequenz oder eines Frequenzbereichs eines digitalen Signals, z. B. für die Vermeidung störender Signalanteile. - Das Aussuchen von spezifischen Frequenzen in einem digitalen Signals. - Die Gestaltung des Spektrums eines digitales Signals so, dass es für weitere Anwendungen vernünftig benutzt werden kann (z. B. Noise-Shaping). - Die Bestimmung der Eigenschaften eines digitales Signals u. v. m. 1.2 Wie lautet die allgemeine Differenzengleichung eines digitalen Filters und die zugehörige Übertragungsfunktion? Die allgemeine Differenzengleichung eines digitalen Filters lautet: N M y[n] = −∑ ak y[n − k] +∑ bk x[n − k] k =1 k =0 Durch Z-Transformation kann man die Übertragungsfunktion gewinnen: N€ M N M Y (z) = −∑ akY (z)z −k +∑ bk X(z)z −k ⇒ Y (z) + ∑ akY (z)z −k = ∑ bk X(z)z −k ⇒ k =1 € k =0 k =1 k =0 M N M Y (z) Y (z)(1+ ∑ ak z ) = X(z)(∑ bk z ) ⇒ H(z) = = X(z) k =1 k =0 −k −k ∑b z −k k k =0 N 1+ ∑ ak z −k b0 + b1z −1 + ...+ bM z −M = 1+ a1z −1 + ...+ aN z −N k =1 Man sieht, dass die Übertragungsfunktion ein Bruch von zwei Polynomen mit reellen (machnmals auch komplexen) Koeffizienten ak ,bk darstellt. Die Filterordnung ist durch das max(M,N) gegeben. € Bemerkung #1: Das Nennerpolynom keinen allgemeinen a0 Koeffizient hat, bzw. hat € Ausgang Y (z) bzw. y[n] ohne irgendwelche er den Wert 1. Das gilt, weil der Skalierungkonstante stehen soll. Die entsprechende Gleichung bekommt man wenn man alle Koeffizienten mit a0 dividiert. € € € Bemerkung #2: In der Differenzengleichung kommen die verzögerte Ausgänge mit einem Minusvorzeichen vor. Dies ist auch eine Notationsthema, sodass man das € der Übertragungsfunktion mit Plusvorzeichen vorkommen lassen Nennerpolynom bei kann. Die Koeffiezienten ak ,bk gehören jedenfalls zu den reellen Zahlen, das heißt, sie können auch negative Werte bekommen. 1.3 € von digitalen Filter kennen sie und wie lassen sie sich mit Hinblick Welche Kategorien auf deren Systemeigenschaften charakterisieren? Es gibt zwei großen Kategoriern von digitalen Filtern, die FIR (Finite Impulse Response = Endliche Impulsantwort) und die IIR (Infinite Impulse Response = Unendliche Impulsantwort) Filtern. Der Name deutet darauf hin, dass der entscheidende Unterschied in der Länge der jeweiligen Impulsantwort liegt. Mit Bezug auf ihre Differenzengleichung ist es so, dass die FIR Filter keine ak ,k ≥1 Koeffizienten besitzen ( ak = 0,k ≥1), es gibt also keine verzögerte Ausgangssamples, die in den Eingang reingespeist werden. Die Differenzengleichung und Impulsantwort eines FIR Filters sehen entsprechend so aus: € € M M y[n] = ∑ bk x[n − k] ⇒ h[n] = ∑ bkδ [n − k] k =0 k =0 Es ist ersichtlich, dass für ein endliches M, ist die Impulsantwort eines FIR Filters auch immer endlich. Es folgt daraus, dass die Übertragungsfunktion eines FIR Filters nur € und ggf. triviale Polstellen (bei z = 0). Für die IIR Filter kann keine Nullstellen hat solche Aussage getroffen werden. Andere Unteschiede sind, dass FIR Filtern fast immer eine lineare Phase aufweisen (oder können so entworfen werden, dass sie lineare Phase haben) wobei IIR Filter in der Regel nicht, und dass FIR Filtern viel mehr Koeffizienten brauchen (und daher Rechenleistung oder Elemente), um die gleiche Filterqualität zu erreichen im Vergleich zu einem IIR Filter. Mit Hinblick auf die Systemeigenschaften lassen sich digitale Filter so klassifizieren: - Linearität: Ein digitales Filter, gegeben durch Gleichung (1), ist ein lineares System, da die Differenzengleichung nur eine endliche lineare Kombination von Ein- und Ausgangswerte ist. Im engen mathematischem Sinne ist aber ein IIR Filter ein Filter dessen Impulsantwort nie ausklingt (und von daher auch einen Ausgang liefern kann für keinen Ausgang) was die Linearität verletzt. Trotzdem sind in realen Anwedungen auch IIR Filter als linear betrachtet. - Zeitinvarianz: Ein Filter, ob FIR oder IIR, ist ein zeitinvariantes System, wenn die Koeffizientensätze ak ,bk konstante Werte haben (sie sind also keine Zeitfolgen bzw. Funktionen von t oder n). Für eine Software-Implementation kann das immer gewährleistet werden. Für Hardware-Implementationen gibt es immer minimal kleine Änderungen in den Systemwerten, die aber größtenteils vernachlässigt werden können. € - Stabilität: Die Stabilität eines Filters kommt auf seine Art an. FIR Filter sind immer stabil, wobei IIR nicht immer. Für IIR muss gewährleistet werden, dass alle Polstellen innerhalb des Einheitskreises liegen, damit das Filter stabil ist. - Kausalität: Digitale Filter sind nicht inbedingt kausal, vor allem wenn um Software Implementationen geht, wo man alle Werte eines Signals im Voraus speichern kann. Trotzdem können alle nicht kausale Filter mindestens mathematisch kausal gemacht werden. - Rekursivität: IIR Filter, da sie auch zeitverzögerten Ausgangswerte für die Berechnung des aktuellen Ausgangswerts benutzen, sind rekursive Filter. FIR Filter im Gegensatz sind nicht-rekursive Filter. - Speicherfreiheit: Digitale Filter sind in der Regel nicht speicherfrei. Ein speicherfreies Filter hätte die Form: y[n] = b0 x[n], wo der aktuelle Ausgangswert nur von dem aktuellen Eingangswert abhängt. 1.4 Was sind Fragen, die mit€dem Entwurf und Benutzung eines digitalen Filters im Zusammenhang stehen? Mögliche Fragen, die auftreten können sind: - Welche Koeffizienten ak ,bk brauche ich genau, um z. B. ein Butterworth Filter 2. Ordnung zu realisieren? Wie viele Koeffizienten brauche ich, um eine bestimmte Übertragungsfunktion des Filters zu erzielen? Braucht man € immer die rekursive ( ak ) Koeffizienten? Wie kann ich Filter mit linearen Amplituden- bzw. Phasengang erzeugen? Wie viele Bits braucht man für die digitale Repräsentation von ak ,bk ? Wie beeinflüssen die Abtastrate und die Kodierung ein Filter? € ein Filter entwerfen? Usw. Wie kann man methodisch € Anschließend kann man Vorteile und Nachteile von digitalen Filtern im Gegensatz zu analogen Filter versuchen aufzulisten: Vorteile: - Es besteht keine Ungenauigkeit in den Koeffizientenwerten durch Toleranzwerte der Bauteilen. Software-Implementationen sind nicht Alterungsanfällig. - Möglichkeit, Filter zu realisieren, die mit analogen Implementationen nur sehr schwer oder gar nicht realisierbar wären. Nachteile: - 2. „Effektiver“ Frequenzbereich ist von Abtastrate bestimmt. Präzision im Wertebereich ist durch Quantisierung bestimmt. Ungenauigkeiten und Rauschen treten auf durch Rundungs- und Abschneidenfehler oder Wertdiskretisierung. Analyse von digitalen FIR-Filter Es sei die Differenzengleichung eines kausalen digitalen FIR-Tiefpassfilters (gleitender Mittelwert) gegeben: 1 y[n] = (x[n] + x[n −1] + x[n − 2]) 3 2.1 Berechnen Sie die Übertragungsfunktion des Filters mithilfe der z-Transformation, finden Sie Pol- und Nullstellen und zeichnen Sie sie auf der z-Ebene. € Die Pol- und Nullstellen kann man in folgender Grafik sehen. Für die Erstellung der Grafik siehe Matlab File „Uebung10_Aufgabe2.m“ . Abb. 1: Pol- und Nulstellendiagramm für Übertragungsfunktion Die Differenzengleichung lässt sich so transformieren: 1 1 Y (z) = (X(z) + X(z)z −1 + X(z)z −2 ) ⇒ Y (z) = X(z)(1+ z −1 + z −2 ) 3 3 ⋅ ⇒ H(z) = € z2 z 2 1 z 2 + z +1 Y (z) 1 = (1+ z −1 + z −2 ) = ( ) X(z) 3 3 z2 Das System hat also einen doppelten Pol bei z = 0, und zwei komplexen Nullstellen, bei 1 3 z=− ± € j , wie es in der Grafik zu sehen ist. 2 2 € 2.2 Mithilfe der Übertragungsfunktion aus 2.1 berechnen sie den DTFT des Filters und zeichnen Sie seinen Amplituden- und Phasengang. Überprüfen Sie Ihre Ergebnisse mit der Matlab-Funktion freq(z). Aus der Übertragungsfunktion, nach Einsetzen von z = e jΩ bekommt man die DTFT, die man nach Amplituden- und Phasengang aufteilen kann. Es ist: H(z) = Y (z) 1 1 = (1+ z −1 + z −2€) = (1+ e − jΩ + e −2 jΩ ) X(z) 3 3 1 H(z) = (1+ cos(Ω) − j sin(Ω) + cos(2Ω) − j sin(2Ω)) 3 € Aus der letzten gleichung nehmen wir den Betrag für den Amplitudengang: € H(z) = 1 (1+ cos(Ω) + cos(2Ω)) 2 + (sin(Ω) + sin(2Ω)) 2 3 H(z) = € 1 1 (2cos(Ω) +1) 2 = 2cos(Ω) +1 3 3 Und für den Phasengang gilt: € sin(Ω) + sin(2Ω) Ω ARG(H(z)) = arctan( ) = − ± kπ 1+ cos(Ω) + cos(2Ω) 2 Die Verläufe sieht man in der unten stehenden Grafik für eine Periode. Für die Erstellung der Grafik siehe Matlab File „Uebung10_Aufgabe2.m“. € Abb. 2: Amplituden- und Phasengang für Übertragungsfunktion 2.3 Diskutieren Sie Vor- und Nachteile dieses Filters in dieser Implementation. Vorteile: - Das Filter ist sehr leicht zu analysieren, bzw. hat sehr einfache Differenzengleichung und Übertragungsfunktion. Die Phase ist linear. Es lässt sich sehr leicht entweder in Hardware oder Software realisieren (wenige Terme/wenige Bauteile). Es ist als FIR Filter immer stabil. Nachteile: - - Das Filter ist nicht ein sehr „gutes“ Tiefpassfilter, da es nach Ω = 2 bis π (für echte f f Frequenzen von s bis s ) manchen Frequenzen nicht mehr abschneidet, sondern π 2 durchlässt und zwar mit einem Betrag von 0.333 für die Frequenzen nah an der Nyquistfrequenz. Die Qualität der Filterung ist auch nicht optimal, weil der Amplitudengang des € nicht steil abfällt, das heißt, es fängt von sehr früh an (von den Filters € überhaupt tiefen Frequenzen) abzuschwächen, wobei es bis zu einer bestimmten Frequenz die tiefen ohne Dämpfung zulassen sollte. 3. Entwurf von digitalen FIR-Filter 3.1 Durch welche Parameter wird der Frequenzgang für ein Tiefpass FIR Filter (im kontinuierlichen) Frequenzbereich spezifiziert? Legen sie diese Parameter fest, und versuchen sie den zugehörigen Amplitudengang zu zeichnen. Alternativ können Sie den Amplitudengang des Filters festlegen und das Verhalten des Filters für unterschiedliche Frequenzbereiche zu bestimmen. Die Parameter für eine Spezifikation eines Tiefpassfilters sind folgende: - € € € € € Ω p : Die Kreisfrequenz, die das Ende des Durchlassbereiches bezeichnet Ωs: Die Kreisfrequenz, die den Anfang des Stoppbereiches bezeichnet g p max : Der maximale Gain im Durchlassbereich g p min : Der minimale Gain im Durchlassbereich gmax : Der maximale Gain im Sperrbereich In unterer Grafik (aus [1]) sieht man diese Bereiche gezeichnet. In dem inneren Schlauch (nicht durchgestrichenen Bereich), kann der Amplitudengang eines Filters Digital Filter Specifications laufen. wp g pmax ws g pmin wf frequency rad /s gain in dB g smax Figure 3-1. The general lowpass filter graphical specification Abb. 3: Toleranzschema: Aus3.2. Digital Signal ProcessingExample Specification of aFiltering digitalApproach, lowpassSteve filterWhite, Figure 3-1, Seite 29 Problem: Let’s assume the customer wants a digital that will not Man sieht, dass die Breite desthat Frequenzbereichs zwischen und Ω Ω p filter s die Steilheit der amplify the signal at all in the passband while not reducing the gain by Kurve bestimmt, während die Gain Parameter bestimmen, wie groß die Welligkeit des more than 3 dB in the passband. The passband extends out to 1,000 rad/s Frequenzgangs im Durchlass- und Sperrbereich sein darf. and the stopband starts at 10,000 rad/s. The digital filter is to reduce the 3.2 gain in the stopband by at least 40 dB. The € frequency is given € sampling as 40,000 rad/s, or T is 0.16 ms. Angenommen dass Sie das digitale Filter mit dem Frequenzgang von Aufgabenteil 2.2 implementieren gewinnen Sie die the erste zwei Koeffizienten mithilfe der Solution: wollen, Given these specifications, graphical specification for the Frequency-Sampling Können Sie 3.2, einewith allgemeine Gleichung digital lowpassMethode. filter is shown in Figure the frequency axis onlyfür die goingfinden, out to 20,000 rad/s, any filterFrequenzgängen gain will repeat after that. Koeffizienten wenn man vonsince idealisierten ausgeht? Die Frequency-Sampling Methode besagt, dass man den idealen Frequenzgang eines zu realisierenden Filters einfach regelmäßig abtastet, und mit Nutzung der Inversen DFT die endliche Impulantwort des Filters gewinnt. Wenn die Übertragungsfunktion für 0 −3 1,000 10,000 20,000 frequency rad/s z = e jΩ bekannt ist, dann kann man auch die Koeffizienten bk des Filters mithilfe folgender Gleichung berechnen [1]: 1 bk = 2π € 2π ∫ H(e jΩ )e jΩk dΩ € 0 Hier wurde die Inverse Fourier-Transformation diskreter Zeit eingesetzt. Für die Übertragungfunktion aus 2.2 heißt das dann: € 1 b0 = 2π b1 = € € 1 2π 2π ∫ 0 2π ∫ 0 2π 2π 1 1 1 2π 1 1 1 − jΩ −2 jΩ j⋅0⋅Ω − jΩ (1+ e + e )e dΩ = ( ∫ dΩ + ∫ e dΩ + ∫ e −2 jΩ dΩ) = (2π + 0 + 0) = 3 3 2π 0 3 2π 3 0 0 2π 2π 1 1 1 2π jΩ 1 1 1 (1+ e − jΩ + e −2 jΩ )e j⋅1⋅Ω dΩ = ( ∫ e dΩ + ∫ dΩ + ∫ e − jΩ dΩ) = (0 + 2π + 0) = 3 3 2π 0 3 2π 3 0 0 Wie es ersichtlich ist, die Rückgewinnung solcher Koeffizienten ist rechnerisch mühsam. Sogar wenn es um „präzisere“ (ideale) Übertragungsfunktionen geht, wie z. B. eine, die die Form eines Rechteckfensters hat, symmetrisch um die y-Achse (Ideales Tiefpass Filter (für eine Periode, danach periodisch fortgesetzt) π 2 π 3π ≤Ω≤ 2 2 3π ≤ Ω ≤ 2π 2 H(e jΩ ) = 1 0≤Ω≤ H(e jΩ ) = 0 € H(e jΩ€ ) =1 € werden diese Koeffiziente: € € π b0 = € 2π 1 1 π π 1 ( ∫ dΩ + ∫ dΩ) = ( + )= 2π 0 2π 2 2 2 3π 2 2 π € 2π 1 2 jΩ 1 1 b1 = ( ∫ e dΩ + ∫ e jΩ dΩ) = (1+1) = 2π 0 2π π 3π 2 Da erscheint das Problem, dass wir nicht den zweiten Koeffizient mit endlichen Zahlen darstellen. € Daher ist die Repräsentation dessen im Computer unmöglich. Das ist eine Folge der „perfekten“ Form des Frequenzgangs des Filters, die zu solche Koeffizienten führt, die nicht darstellbar sind. Trotzdem eine Approximation des Filters mit endlichen Koeffizienten würde ein gutes Ergebnis geben. In [1] ist zu sehen, wie man zu einer allgemeinen Gleichung für diese Koeffizienten kommt. Sie lautet: bk = € sin(kΩ p ) kπ Diese Gleichung erlaubt uns ohne sie explizit zu berechnen, mehrere Koeffizienten für ein FIR Filter zu erwerben. Große Vorteile dieser Methode sind die Einfachkeit der Erhaltung der Koeffizienten, und die Annäherung eines idealen (teilweise linearen) Frequenzgangs durch die Annahme mehrerer Koeffizienten. Ein Problem dieser Methode ist das sogenannte Gibbssche Phänomen (nach William Gibbs, siehe Abbildung): Abb. 4: Gibbsches Phänomen Dadurch kommt zustande, dass wenn man eine Rechteckschwingung anzunähern versucht, kleine Zipfel (Overshoot) an den Grenzübergäange von positivem zu negativem Bereich und umgekehrt. Das Problem bleibt erhalten, unabhängig von der Anzahl der Koeffizienten und sorgt für unangenehme Hörartefakte. 3.3 Erzeugen Sie in Matlab ein Sinussignal mit Frequenzen von 200, 950, 1050 und 2000 Hz. Die Abtastrate beträgt 10000 Hz. Danach erzeugen Sie die Filterkoeffizienten für ein Tiefpassfilter mit Kniefrequenz 1000 Hz, einmal mit 4 und einmal mit 10 Koeffizienten. Fenstern sie jedes von den Koeffizientensätzen mit drei unterschiedlichen Fenstern (Hamming, von Hann, Bartlett). Filtern Sie dann das Signal mit jedem Filter und hören Sie sich die Ausgangssignale in Matlab an. Was merken Sie? Erzeugen Sie Plots für alle Signale und Fenster und vergleichen Sie. Filtern Sie schließlich weißes Rauschen und merken Sie den Unterschied im Spektrum. Siehe Matlab File „Uebung10_Aufgabe3.m“. Mehr über die Fenstermethode sind in [2] und [3] zu lesen. Die Denkweise hier ist folgende: Wenn man eine Methode gefunden hat, Koeffizienten des Filters zu erhalten, filtert man sie danach nicht mit einem Rechteck- sondern einem Fenster anderer Art (wie z. B. Hamming, von Hann, Bartlett, Kaiser, siehe Übung 9), dass bei den Grenzen zu 0 geht. In dieser Weise werden die Überschüsse verringert. Diese Methode verfälscht natürlich etwa die genaue Spezifikation des Filters. 3.4 Welche andere Methoden gibt es für den Filterentwurf? Nennen sie drei davon und diskutieren Sie Vorteile und Nachteile. Was versteht man unter Optimalmethode? Manche Methoden für den Filterentwurf sind z. B. - Least squared Error im Frequenzbereich Gewichtete Chebyshev Equiripple Methode (als Parks-McClellan Optimalmethode) Diese Methode versuchen, an irgendwelche Vorgabe zu halten (meistens zu Verlust anderer Eigenschaften) oder setzen bestimmte Werkzeuge ein. Die LSE Methode versucht ein Filter zu entwerfen, dessen Durchlassbereich höher als die spezifizierte Frequenz liegt, und dann bei der gewollten Frequenz abzuschneiden. Darin wird erzielt dass die Welligkeit im Durchlassbereich klein bleibt, und die Steilheit beliebig, aber die Rechenintensität steigt. Die Gewichtete Chebyshev Methode benutzt Chebyshev Polynome (Variationen des elliptischen analogen Filters (siehe Cauer Filter)) um den Frequenzgang des Filters zu approximieren, die dann passend gefenstert werden. Das bekannteste optimale Verfahren ist der Algorithmus von Parks-McClellan. Bei diesem Algorithmus wird eine Toleranzschema gegeben (Abb. 3), und der Fehler zwischen dem Frequenzgang des Filters und der Vorgabe wird iterativ, versucht minimiert zu werden. Die Equiripple Methode schafft eine möglichst gleiche Welligkeit in Durchlass- und Sperrbereich. Literatur: [1] Steve White. Digital Signal Processing – Filtering Approach. Delmar Cencage Learning, 2000. [2] A. V. Oppenheim, R. W. Schafer, J. R. Buck. Zeitdiskrete Signalverarbeitung, 2., überarbeitete Aufl., Pearson, 2004 [3] Smith, Julius O. Spectral http://books.w3k.org/, 2011 [4] Universität für Musik und darstellende Kunst Graz, Institut für Elektronische Musik und Akustik: http://old.iem.at/~majdak/alg/projectsSS2002/7/: Zugang: 29/01/2012 Audio Signal Processing, W3K Publishing,