Digitale Filter - Lehrstuhl für Nachrichtentechnik

Transcription

Digitale Filter - Lehrstuhl für Nachrichtentechnik
Versuch: Digitale Filter Diese Unterlagen dienen zum einen als Versuchsunterlagen für den Versuch: „Digitale Filter". Sie enthalten aber auch in komprimierter Form alles Wissenswerte zu diesem Thema und können als Skript zum Nachschlagen benutzt werden. 1 Einleitung In der klassischen Analogtechnik werden Signale mit Hilfe von Bauteilen wie zum Beispiel Widerstände, Kondensatoren, Induktivitäten oder aktiven Bauelementen umgeformt. Der damit erzielbaren Genauigkeit sind jedoch durch den Einfluss von Umgebungstemperatur, Alterung der Bauteile, Fertigungstoleranzen, Versorgungsspannung, etc. Grenzen gesetzt. Diese Nachteile kennt die digitale Signalverarbeitung nicht. Ein großes Teilgebiet der digitalen Signalverarbeitung stellt das Gebiet der digitalen Filter dar. Bei digitalen Filtern bildet man das zu manipulierende kontinuierliche Signal durch Abtastung und Analog‐
Digital‐Umsetzung auf eine Zahlenfolge ab und formt dann diese mit Hilfe eines Algorithmus zu einer Ausgangszahlenfolge um. Nach der Digital‐Analog‐Rückumsetzung und anschließender Interpolation entspricht das Ausgangssignal der gewünschten Manipulation des Eingangssignals. Digitale Filter können sowohl durch spezielle Hardware‐Schaltungen als auch durch Software auf Prozessoren realisiert werden. Die hardwaremäßige Ausführung bietet den Vorteil der hohen Verarbeitungsgeschwindigkeit, die softwaremäßige den der Flexibilität. Diese Filter finden in unterschiedlichen Gebieten Anwendung. Zum Beispiel in der Audiotechnik, der Seismologie, der Medizin, der Radartechnik, der Sprachsynthese und der digitalen Bildverarbeitung. Der Einsatz digitaler Filter ist besonders vorteilhaft, wenn zum Beispiel das Signal bereits digitalisiert vorliegt, wie zum Beispiel in der PCM‐Übertragungstechnik, bei digital gespeicherten Signalen (DAT Recorder, CD‐Player) oder die Forderung nach Flexibilität und Variabilität im Vordergrund steht, wie z.B. bei der adaptiven Filterung. Die zum Filterentwurf verwendete Theorie bezieht sich auf zeitdiskrete wertkontinuierliche Systeme. Bei hinreichend kleiner Quantisierung ist sie auch auf digitale d.h. zeit‐ und wertdiskrete Systeme anwendbar. Deshalb wird oft digitales System und zeitdiskretes System als Synonym gebraucht. 2 Beschreibung digitaler Systeme im Zeit­ und Frequenzbereich 2.1 Blockschaltbild eines einfachen digitalen Systems Abbildung 2.1 zeigt das Blockschaltbild einer digitalen Signalverarbeitung. Durch einen analogen Tiefpass TP1 (Antialiasing‐Tiefpass) wird das analoge (zeitkontinuierliche) Eingangssignal zu hohen Frequenzen hin bandbegrenzt, um das Abtasttheorem (siehe Abschnitt 2.2) zu erfüllen. Das Filterausgangssignal wird mit einer Abtasthalteschaltung (S/H) abgetastet und für die Dauer eines Abtastintervalls festgehalten. Die Abtastwerte werden dann im A/D‐ Wandler amplitudenquantisiert. 1 Die binäre Zahlenfolge gelangt nun in die digitale Verarbeitungseinheit (z.B. Signalprozessor). Diese berechnet aus der Eingangsfolge mit Hilfe eines Signalverarbeitungsprogramms eine Ausgangszahlenfolge. Ein D/A‐Wandler erzeugt daraus ein treppenförmiges Signal, das von einem Interpolationstiefpass (TP2) geglättet wird. Abbildung 2.1: Blockschaltbild einer digitalen Signalverarbeitung 2.2 Abtastung und Quantisierung Voraussetzung für eine eindeutige zeitdiskrete Signaldarstellung ist die Bandbegrenzung des . Liegt diese Bandbegrenzung nicht bereits vor, muss sie durch Spektrums des analogen Signals ein analoges Vorfilter erzwungen werden. Das abgetastete Signal lässt sich theoretisch als Folge von gewichteten Dirac‐Impulsen beschreiben, deren Flächen den Abtastwerten entspricht: . Für das Spektrum des ideal abgetasteten Signals ergibt sich: 2 (2.1) 1
. (2.2) Das Spektrum des Analogsignals wiederholt sich periodisch mit der Abtastfrequenz 2.2 zeigt schematisch eine Folge von Abtastwerten . Abbildung und das zugehörige Amplitudenspektrum Abbildung 2.2: Abtastung eines analogen Signals a) Abtasttheorem erfüllt b) Abtasttheorem verletzt Man erkennt, dass im Spektrum der Abtastwerte das ursprüngliche Spektrum des Analogsignals enthalten ist. Zur Wiedergewinnung des Analogsignals aus den Abtastwerten genügt es daher, die Abtastwerte mittels eines analogen Tiefpasses mit näherungsweise konstanter Gruppenlaufzeit zu filtern. Die Übertragungsfunktion des Tiefpasses ist in Abbildung 2.2 gestrichelt eingezeichnet. Wie in Abbildung 2.2 zu erkennen ist, überlappen sich die einzelnen Teilspektren nur dann nicht, wenn das Abtasttheorem erfüllt ist, d.h. 2
. (2.3) Dies bedeutet, dass die Abtastfrequenz mindestens doppelt so hoch sein muss wie die höchste im abzutastenden Signal enthaltene Frequenz. Die nötige Bandbegrenzung wird durch das analoge Vorfilter TP1 aus Abbildung 2.1 erreicht. Wird das Abtasttheorem nicht eingehalten, so überlappen sich die einzelnen Teilspektren. Dies bezeichnet man als Aliasingeffekt. Das ursprüngliche Analogsignal lässt sich somit nicht mehr störungsfrei zurückgewinnen. 3 2.3 Differenzengleichung, Übertragungsfunktion und Frequenzgang Die Beziehung zwischen Ein‐ und Ausgangssignal eines linearen zeitinvarianten analogen Systems lässt sich durch eine lineare Differentialgleichung mit konstanten Koeffizienten beschreiben. An ihre Stelle tritt bei zeitdiskreten Systemen die lineare Differenzengleichung: . (2.4) Ein Ausgangswert ergibt sich somit als eine Linearkombination aus mit den Filterkoeffizienten bewerteten und verzögerten Ein‐ und Ausgangswerten. Von den beiden Zahlen M und N wird die größere als Ordnung der Differenzengleichung bezeichnet. Gleichung (2.4) gestattet die Berechnung der Ausgangswerte aus den Eingangswerten und damit die Lösung der Filteraufgabe im Zeitbereich. Sie hat den Vorteil, dass nur wenige Elementaroperationen, nämlich Addition, Multiplikation und zeitliche Verzögerung um ein Abtastintervall benötigt werden. Deshalb ist die Filterung für eine Programmierung auf einem digitalen Prozessor wie z.B. einem Signalprozessor geradezu prädestiniert.
Ein digitales Filter, bei dem nur der linke Teil von Gleichung (2.4) existiert, nennt man nichtrekursiv, d.h. nicht rückgekoppelt. Da seine Impulsantwort nicht länger als M+1 Abtastperioden dauert, nennt man es auch FIR‐FILTER (Finite Impulse Response Filter). FIR‐Filter sind grundsätzlich stabil. Sie sind mit exakt linearem Phasengang, d.h. ohne Gruppenlaufzeitverzerrung realisierbar, siehe Abschnitt 4.2. Ist auch der zweite Summenausdruck in Gleichung (2.4) vorhanden, so handelt es sich um ein rekursives (d.h. rückgekoppeltes) Filter. Die Impulsantwort strebt bei einem stabilen rekursiven ∞ gegen Null, dauert aber theoretisch unendlich lang. Man nennt es daher auch IIR‐Filter Filter für (Infinite Impulse Response Filter). IIR‐Filter lassen sich nur näherungsweise mit linearem Phasengang realisieren. Ähnlich wie man bei analogen Systemen die Übertragungsfunktion durch Laplace‐Transformation aus der Differentialgleichung gewinnt, erhält man die Übertragungsfunktion digitaler Systeme durch Z‐
Transformation der zugehörigen Differenzengleichung (2.4). Eine ausführliche Beschreibung der Z‐
Transformation findet man in [2] bzw. [3]: . (2.5) Aufgrund der Linearität der Z‐Transformation können die Summanden einzeln transformiert werden: . (2.6) Durch Anwendung des Verschiebungssatzes der Z‐Transformation auf Gleichung (2.6) folgt: . (2.7) Die Übertragungsfunktion definiert man wie üblich als Verhältnis von Ausgangs‐ zu Eingangsspektrum: 4 (2.8) Durch Umstellen von Gleichung (2.7) erhält man nun: ∑
. ∑
1
(2.9) Für analoge Systeme gilt, dass sämtliche Pole eines stabilen linearen zeitinvarianten Systems in der linken s‐Halbebene liegen müssen. Da bei zeitdiskreten Systemen die linke s‐Halbebene auf das Innere des Einheitskreises der komplexen z‐Ebene abgebildet wird, folgt, dass die Übertragungsfunktion stabiler digitaler Systeme nur Pole im Inneren des Einheitskreises haben kann. Aussagen über das Verhalten von Es bleibt zu klären, wie man aus der Übertragungsfunktion Betrag und Phase und anderer Größen eines zeitdiskreten Systems in Abhängigkeit von der kontinuierlichen Frequenz f gewinnt. Die Zusammenhänge folgen aus der Beziehung: . (2.10) Betrachtet man Gleichung (2.10) längs der imaginären Achse, so ergibt sich: |
Mit . (2.11) folgt: ⁄
, (2.12) wobei 2
(2.13) die normierte Kreisfrequenz ist. In der Übertragungsfunktion ersetzt man nun jede Potenz von cos
sin
durch die Gleichung: (2.14) und erhält die gesuchten Größen: 1. Amplitudengang 2. Dämpfung 3. Phase |
| 20 log |
arg 5 | in dB 4. Phasenlaufzeit 5. Gruppenlaufzeit 3
Rekursive Systeme In diesem Kapitel werden Fragen des Entwurfs rekursiver Systeme behandelt. Nach einer Zusammenstellung ihrer wichtigsten Eigenschaften werden zunächst einige Netzwerkstrukturen zu deren Realisierung behandelt, die sich bezüglich der Effekte bei begrenzten Wortlängen (Auflösung des A/D‐Wandlers) unterschiedlich verhalten. Anschließend wird eines der wichtigsten Approximationsverfahren für derartige Systeme beschrieben. 3.1 Eigenschaften rekursiver Systeme (IIR­Filter) Ein rekursives System kann durch die Differenzengleichung (2.4) beschrieben werden, wobei von den 1,2, … , mindestens einer von Null verschieden sein muss. Der Wert der Koeffizienten ,
Ausgangsfolge zu einem beliebigen Zeitpunkt wird demnach auch von den Werten der Ausgangsfolge früherer Zeitpunkte bestimmt. Abbildung 3.1 zeigt ein Netzwerk zur Realisierung der Differenzengleichung (2.4). Abbildung 3.1: Netzwerk zur Realisierung der Differenzengleichung Ein rekursives System weist mindestens einen Rückkopplungszweig auf, Instabilitäten sind deshalb prinzipiell möglich. Die Übertragungsfunktion ist eine rationale Funktion in 1 besitzt mindestens eine von Null verschiedene Polstelle. Wegen der Reellwertigkeit der Koeffizienten im Zähler und Nenner sind die Pole und Nullstellen entweder reell oder sie treten als konjugiert komplexe Polpaare auf. Für kausale und stabile Systeme liegen sämtliche Pole innerhalb des Einheitskreises der komplexen z‐
6 Ebene. Die Einheitsimpulsantwort eines rekursiven Systems besteht stets aus unendlich vielen von Null verschiedenen Elementen. 3.2 Netzwerkstrukturen rekursiver digitaler Systeme Die Übertragungsfunktion bzw. die Differenzengleichung eines rekursiven Systems ist durch mehrere Netzwerkstrukturen realisierbar. In diesem Abschnitt werden diejenigen Netzwerkstrukturen behandelt, die sich auf die Polynomform, die Produktform und die Partialbruchform der Übertragungsfunktion beziehen. Sie werden als Direkt‐, Kaskaden‐ und Parallelstruktur bezeichnet. Direktstrukturen kann durch Hintereinanderschaltung zweier Teilsysteme, einem nichtrekursiven 1
⁄
1
realisiert werden. Je nach der Reihenfolge von 1 und und einem rekursiven 2
lassen sich zwei unterschiedliche Strukturen angeben. Die Struktur mit der Reihenfolge 2
·
wird als Direktform 1 bezeichnet [2]. Sie ist identisch mit der in Abbildung 3.1. Die Struktur, in der 2 vor 1 erscheint, zeigt Abbildung 3.2. Sie wird als Direktform 2 [2] bezeichnet. Die Anzahl der Zustandsspeicher ist für die Direktform 2 gleich der Ordnung der Differenzengleichung. Man bezeichnet diese Struktur als kanonisch. Abbildung 3.2: Direktform 2 Kaskadenstruktur Aus der Produktform der Übertragungsfunktion ∏
1
∏
1
(3.1) ergibt sich die Kaskadenstruktur, indem man einen quadratischen Term aus dem Zähler mit einem aus dem Nenner zu einem Teilsystem 2. Ordnung zusammenfasst und dann die Teilsysteme hintereinander schaltet [2]. Systeme 1. Ordnung ergeben sich dabei als Sonderfälle von Systemen 2. Ordnung. 7 Bezüglich der Wortlängenreduktion ist die Kaskadenstruktur gegenüber den Direktstrukturen wesentlich unempfindlicher. Dies ist eine Folge der Zerlegung eines Polynoms höherer Ordnung in Polynome niedrigerer Ordnung. Es erweist sich als günstig, das Teilsystem mit der niedrigsten Tiefpass‐
Eckfrequenz als 1 zu realisieren. Abbildung 3.3 zeigt schematisch die Kaskadenstruktur mit 0
max ,
Teilsystemen. Abbildung 3.3: Kaskadenstruktur Parallelstruktur Aus der Partialbruchform der Übertragungsfunktion 1
(3.2) ergibt sich die Parallelstruktur, indem die einzelnen Terme der Summe als Teilsysteme in geeignet realisiert und dann parallel geschaltet werden. Abbildung 3.4 zeigt schematisch die gewählten Parallelstruktur. Abbildung 3.4: Parallelstruktur 3.3 Synthese rekursiver Filter Zum Entwurf analoger Filter existieren zahlreiche Kataloge und Programme, so dass es sich beim Entwurf digitaler Filter als vorteilhaft erweist, diese Kenntnisse zu nutzen. Dies geschieht, indem man die für ein zeitdiskretes System gestellte Entwurfsaufgabe zunächst für ein zeitkontinuierliches System, im Folgenden als Bezugssystem bezeichnet, umformuliert. Die Approximationsaufgabe wird dann im s‐
Bereich gelöst. Das hierzu erforderliche Toleranzschema erhält man aus dem für das digitale Filter vorgegebene Toleranzschema. 8 Nach der Lösung der Entwurfaufgabe im s‐Bereich wird in einem zweiten Schritt die Übertragungsfunktion des gesuchten digitalen Filters durch eine geeignete Transformation aus der Übertragungsfunktion des analogen Bezugssystems ermittelt. Hierfür gibt es mehrere Methoden. Die am häufigsten verwendete Methode ist die bilineare Transformation. Bilineare Transformation Eine geeignete Abbildung zwischen s und z muss die Bedingung erfüllen, dass die linke s‐Halbebene ins Innere des Einheitskreises der z‐Ebene abgebildet wird, damit aus einem stabilen Bezugssystem ein stabiles digitales System entsteht. Außerdem ist es wünschenswert, dass die j‐Achse der s‐Ebene auf den Einheitskreis der z‐Ebene transformiert wird. Eine Abbildung, die diese Eigenschaften erfüllt, ist die bilineare Transformation: 2 1
·
1
. (3.3) Abbildung 3.5 veranschaulicht die Abbildung der s‐Ebene auf die z‐Ebene nach der bilinearen Transformation. Abbildung 3.5: Abbildung der s‐Ebene auf die z‐Ebene bei der bilinearen Transformation Die linke s‐Halbebene wird folglich ins Innere des Einheitskreises der z‐Ebene transformiert. Der positive Ast der jω‐Achse der s‐Ebene geht auf die obere und der negative Ast auf die untere Hälfte des ∞ auf 1 abgebildet Einheitskreises in der Weise über, dass 0 auf 1 und werden. Durch Einsetzen der bilinearen Transformation in die Übertragungsfunktion eines stabilen analogen Bezugsfilters erhält man nun die Übertragungsfunktion eines stabilen digitalen Filters. Zwischen der Frequenzvariablen des analogen Filters und der Frequenzvariablen des digitalen Filters besteht folgender nichtlinearer Zusammenhang: 2
tan
2
. (3.4) 9 1⁄ ist die Abtastperiode des digitalen Systems. Abbildung 3.6 verdeutlicht die Transformation des Frequenzganges eines analogen Referenzfilters in den eines digitalen Filters. Man erkennt, dass die Dämpfungseigenschaften, d.h. die geforderte Filtercharakteristik erhalten bleibt, während die Frequenzachse gestaucht wird. Abbildung 3.6: Bilineare Transformation eines analogen Filters in ein digitales Filter Beim Filterentwurf wird zunächst das Toleranzschema des digitalen Filters mit Gleichung (3.4) in den analogen Bereich transformiert. Man nennt dies Vorverzerrung. Im analogen Bereich wird nun das Filter entworfen und anschließend mittels bilinearer Transformation in das gewünschte digitale Filter transformiert. 3.4 Beispiel für den Entwurf eines digitalen IIR­Filters 8 Zu entwerfen ist ein digitaler Tiefpass mit Tschebyscheff‐Approximation, der bei Durchlassgrenzfrequenz und bei 13,446 eine Sperrdämpfung von 8 haben soll. Die 0,28 nicht überschreiten. Als Welligkeit im Durchlassbereich darf den Wert von 50 verwendet werden. Abtastfrequenz soll ein Wert von 10 seine Die Sperrfrequenz des digitalen Filters muss zunächst in die Sperrfrequenz eines normierten analogen Referenztiefpasses transformiert werden. Mit Gleichung (3.4) und durch Normierung auf die Durchlassgrenzfrequenz erhält man für tan tan ⁄
⁄
tan 13,446⁄50,00
tan 8,000⁄50,00
2,048. Nun lässt sich mit den vorgegebenen Werten für und z.B. mit dem Filterkatalog [6] ein analoges Tschebyscheff‐Filter dimensionieren. Die Aufwandsabschätzung ergibt einen Filtergrad von N=3. Die Pole des normierten analogen Tschebyscheff‐Filters liegen bei: ,
0,3717
1,0791 , 0,7434 . Für die normierte Übertragungsfunktion erhält man folgendes Ergebnis: 1,3026
·
0,7434
1,3026
0,7434
. 0,7434
Hierin bedeutet die auf die Durchlassgrenzfrequenz normierte komplexe Frequenzvariable. Um die die Übertragungsfunktion des gewünschten digitalen Filters zu erhalten, muss schließlich auf bilineare Transformation 1
tan /
1
1
·
angewendet werden, und man erhält für 0,218
1,000
0,436
0,672
des Digitalfilters folgendes Ergebnis: 0,218
0,546
·
0,290
1,000
0,290
0,419
4 Nichtrekursive Systeme 4.1 Eigenschaften nichtrekursiver Systeme (FIR­Filter) Die allgemeine Differenzengleichung des nichtrekursiven Systems lautet [2]: . (4.1) Bei einem nichtrekursiven System hängt die Ausgangsfolge zu jedem Zeitpunkt ausschließlich von den gegenwärtigen und den früheren Werten der Eingangsfolge ab. Es existieren keine Rückkopplungen innerhalb des Systems. Deshalb sind nichtrekursive Systeme absolut stabil. Die Übertragungsfunktion eines solchen Systems besteht aus einem Polynom in 1 : . Formt man Gleichung (4.2) um, so sieht man, dass stets eine (N‐1)‐fache Polstelle bei 11 (4.2) 0 hat. 1
. (4.3) Dadurch wird das Stabilitätskriterium erfüllt. Die Einheitsimpulsantwort eines nichtrekursiven Systems folgt aus Gleichung (4.1) mit zu für 0
0 sonst
Die Einheitsimpulsantwort Frequenzgang 1
. (4.4) besteht also aus einer endlichen Anzahl von Abtastwerten. Den eines FIR‐Filters erhält man durch Einsatz von in Gleichung (4.2): . (4.5) ist die auf die Abtastfrequenz normierte Frequenzvariable, siehe auch Gleichung (2.13): (4.6) 2
4.2 Nichtrekursive Systeme mit linearem Phasengang In diesem Kapitel wird gezeigt, dass FIR‐Filter unter bestimmten Bedingungen einen absolut linearen Phasengang haben. Man nehme zunächst eine ungeradzahlige Filterordnung (N gerade) an und betrachte Gleichung (4.5). Die Einheitsimpulsantwort d.h. entweder 0,1,2, … ,
soll einen symmetrischen oder antisymmetrischen Verlauf besitzen, 1
0,1,2, … ,
für 1 oder 1
für 1 . Mit dieser Bedingung folgt aus Gleichung (4.5) [2]: (4.7) . 1 ⁄2 ausklammert und die Eulersche Formel Wenn man aus dieser Gleichung den Faktor 2
anwendet, erhält man für den Fall des Pluszeichens: 2
2
2 1
1
2·
cos 2
0
1
(4.8) 2
und für den Fall mit Minuszeichen: ·
2
2
1
2 1
2·
sin 2
0
1
2
. Die gleichen Überlegungen für eine geradzahlige Filterordnung (N ungerade) führt für eines symmetrischen Verlaufs von auf: 12 (4.9) im Falle 2
2
2
1
3
2·
1
cos 2
2
0
und im Fall eines antisymmetrischen Verlaufs von 2
·
2
1
2
1
2
(4.10) 3
2·
sin 2
0
1
2
. (4.11) Abbildung 4.1 verdeutlicht die vier Fälle. Der Phasengang im Durchlassbereich ist somit eine stetige und lineare Funktion von , die Gruppenlaufzeit ist somit konstant: 1
2
1
(4.12) Abbildung 4.1: Typische Verläufe der Einheitsimpulsantwort h(n) mit linearem Phasengang: a) h(n) gerade, N geradzahlig b) h(n) gerade, N ungeradzahlig c) h(n) ungerade, N geradzahlig d) h(n) ungerade, N ungeradzahlig 13 4.3 Netzwerkstruktur nichtrekursiver digitaler Filter Aus der Polynomform der Übertragungsfunktion des Systems kann unmittelbar die in Abbildung 4.2 dargestellte Netzwerkstruktur abgeleitet werden: Abbildung 4.2: Netzwerkstruktur nichtrekursiver Systeme 4.4 Synthese nichtrekursiver Filter mit der Fensterfunktionsmethode Das Entwurfsverfahren mit Fensterfunktionen wird im Folgenden anhand eines Tiefpasses erläutert. bezeichnet, Zunächst wird eine gewünschte Übertragungsfunktion, hier als Wunschfunktion gewählt. Für selektive Filter eignen sich die Übertragungsfunktionen entsprechender idealer Filter mit Rechteckcharakteristik. Die Wunschfunktion periodisch in . Außerdem erhält man des zugehörigen idealen Filters: ist als Übertragungsfunktion des digitalen Systems als Fourier‐Transformierte der Einheitsimpulsantwort ∞
2
. (4.13) ∞
Aus lässt sich folgendermaßen ermitteln: 0,5
2
(4.14) 0,5
Idealer Tiefpass mit linearem Phasengang: Im Falle eines idealen Tiefpasses mit linearem Phasengang wird als Wunschfunktion 2
2
1
für
0 sonst Für die Filterkoeffizienten bzw. die Einheitsimpulsantwort 14 . gewählt: (4.15) erhält man mit Gleichung (4.14): 2
2
1
. (4.16) Die Folge besteht aus unendlich vielen von Null verschiedenen Elementen und kann deshalb nicht die Einheitsimpulsantwort eines nichtrekursiven Systems sein. Aus lässt sich aber die außerhalb des Einheitsimpulsantwort eines nichtrekursiven Systems gewinnen, indem man mit der Intervalls [0, N‐1] zu Null setzt. Die Einheitsimpulsantwort kann als Produkt von Folge 1 für 0
0 sonst 1
. (4.17) . Die Folge dargestellt werden, d.h. Fensterfunktion bezeichnet. aus Gleichung (4.17) wird als Rechteck‐
Der Amplitudengang des mit Hilfe des Rechteck‐Fensters entworfenen Filters weist eine ungleichmäßige Welligkeit auf, die maximal 9 % der Höhe der Filterflanke beträgt. Die Welligkeit nimmt in Richtung der Filterflanke zu. Ursache dieser Welligkeit ist der scharfe Abbruch der Fourier‐Reihe bei 0 und 1. Man bezeichnet diese Erscheinung als GIBB'sches Phänomen. Die Multiplikation mit dem Rechteckfenster bedeutet im Frequenzbereich eine Faltung von mit ⁄ ‐Spektrum, das mit 1⁄ abfällt. Dadurch überträgt sich die Welligkeit des Spektrums einem sin der Fensterfunktion auf den Amplitudengang des Filters. Außerdem verbreitern sich die ideal auf endliche Breite. steile Filterflanken von Es existieren zahlreiche Fensterfunktionen, die rascher als mit 1⁄ abfallen und eine geringere Welligkeit als das Rechteckfenster besitzen, wie zum Beispiel: Dreieck‐Fenster: 2
Hanning‐Fenster : 2
1
2
0,5 cos
1
für
1
0 0,5
1
für 0
2
1
, (4.18) 2
sonst 2
0 für 0
1
1 , (4.19) sonst Hamming‐Fenster: 0,54
0,46 cos
0 2
1
für 0
sonst 15 1 , (4.20) Blackman‐Fenster: 0,42
0,5 cos
2
1
0 0,08cos
4
1
für 0
1 , (4.21) sonst Dabei wird in der Regel eine geringere Welligkeit mit einer flacheren Filterflanke erkauft. Es hängt von der Forderung an den Digitalfilter bezüglich Welligkeit und Selektivität ab, welches Fenster zu verwenden ist. 5 Das MATLAB­Filterdesignprogramm Das Filterdesignprogramm wird über die Datei „FILPROG.exe“ gestartet. Im Hauptprogramm werden die Parameter vom Benutzer eingegeben, ein digitales Filter berechnet und die Kurven angezeigt. Die graphische Oberfläche (GUI) und die einzelnen Bedienelemente werden unter 5.1.1 erklärt. Durch Aufruf aus dem Hauptprogramm wird der Pol‐/Nullstelleneditor (siehe dazu auch 5.1.2). Hier kann der Benutzer die Pol‐ oder Nullstellen eines vorher erstellten Filters beliebig ändern. Die vergleichende Anzeige mit den von MATLAB errechneten und den am digitalen Signalprozessor (DSP) gemessenen Werte wird unter 0 beschrieben. 5.1 Bedienungsanleitungen 5.1.1
Das Filterdesignprogramm Abbildung 5.1: GUI des Filterdesignprogramms 1. Auswahl der Filterart: FIR oder IIR 2. Auswahl des Filtertyps: Tief‐, Hoch‐, Bandpass, Bandsperre Bei FIR‐Filtern: Tief‐, Hoch‐, Bandpass, Bandsperre, Hilberttransformator Bei IIR‐Filtern: Tief‐, Hoch‐, Bandpass, Bandsperre, Allpass 16 3. bei der Filterart „FIR“: Auswahl der Fensterfunktion: Rechteck, Dreieck, Hamming, Hanning, Blackman bei der Filterart „IIR“ für Tief‐, Hoch‐, Bandpässe und Bandsperren: Auswahl der Filtercharakteristik: Butterworth, Tschebyscheff Typ 1, Tschebyscheff Typ 2, Cauer 4. von (2) und (3) abhängige, notwendige Eingabefelder: bei allen Filtertypen: Abtastfrequenz (sollte immer auf 48 kHz eingestellt sein) bei allen FIR‐Filtern: Filterlänge zusätzlich bei FIR‐Tief‐ oder Tiefpass: Grenzfrequenz zusätzlich bei FIR‐Bandpass oder Bandsperre: obere und untere Grenzfrequenz bei IIR‐Tief‐, Hoch‐, Bandpässen und Bandsperren: die maximale Dämpfung im Durchlassbereich und die minimale Dämpfung im Sperrbereich zusätzlich bei IIR‐Tief‐ oder Hochpass: Grenzfrequenzen der Durchlass‐ und Sperrgrenze (die Reihenfolge der Frequenzen ist egal!) zusätzlich bei IIR‐Bandpässen und Bandsperren: Grenzfrequenzen der oberen und unteren Durchlass‐ und Sperrgrenzen (die Reihenfolge der Frequenzen ist egal!) bei IIR‐Allpässen: Gruppenlaufzeit, die mindestens bis zur Grenzfrequenz konstant gehalten wird 5. A/D‐Wandler‐Quantisierung: Anzahl der Binärstellen, die von den vom A/D‐Wandler gelieferten Samples abgeschnitten werden 6. Koeffizientenquantisierung: Anzahl der Dezimalstellen, die von den berechneten Koeffizienten abgeschnitten werden 7. Berechnen‐Button: berechnet mit den bei (1)‐(4) angegebenen Parametern das digitale Filter und zeigt in den Graphen an, was bei (13) bzw. (14) ausgewählt ist 8. Speichert die Koeffizienten und die Konfigurationsdaten in Mnemonik ab (erzeugt die Dateien „koefffir.txt“ bzw. „koeffiir.txt und „Ndeffir.txt“ bzw. „Ndefiir.txt“) unter Berücksichtigung der Einstellungen aus (5) und (6) und öffnet das GUI zum Vergleichen der Werte (siehe auch 0) 9. Reset‐Button: initialisiert alle Werte 10. Möglichkeit, die Abszissenbeschriftung in normierter Frequenz anzuzeigen 11. Oberer Plot 12. Unterer Plot 13. Anzeigeoptionen des oberen Plots: |H| Betragsfunktion Pol‐/Nullstellenplot Aufruf des Pol‐/Nullstelleneditors (näheres unter 5.1.2) Gruppenlaufzeitverzögerung Phasenverzögerung 14. erzeugt ein neues Fenster mit dem aktuellen Plot, um diesen zu bearbeiten und auszudrucken; Koeffizienten werden im Arbeitsverzeichnis abgespeichert 15. Anzeigeoptionen des unteren Plots: Amplitudengang 20 · log
Phasengang Amplituden‐ und Phasengang Darstellung der Koeffizienten 16. Siehe (14) 17. Sicheres Beenden des Programms 17 Mit der Betragsfunktion aus (13) werden die Absolutwerte über der Frequenz angezeigt. Mit ihr kann der Filtertyp anschaulich dargestellt werden. 5.1.2
Der Pol­/Nullstelleneditor Abbildung 5.2: GUI des Pol‐/Nullstelleneditors Der Pol‐/Nullstelleneditor lässt sich über den Button des in 5.1.1 beschriebenen Filterdesignprogramms öffnen. In ihm können je nach Filtertyp den Nullstellen und den Polstellen neue Werte zugewiesen werden. 1. Anzeige der Parameter des Filters, dessen Pol‐/Nullstellen editiert werden können 2. Pol‐/Nullstellen‐Plot des Filters mit automatischer Aktualisierung bei Mausklick nach Eingabe eines neuen Wertes 3. Anzeige der Null‐ bzw. Polstellen des Filters 4. Eingabefelder zum Ändern einer Pol‐ bzw. Nullstelle 5. „Neu Berechnen“‐Button: berechnet mit den geänderten Pol‐/Nullstellen ein neues Filter und kehrt zum Hauptprogramm zurück Um eine Pol‐ bzw. Nullstelle zu ändern, muss zunächst der gewünschte Wert in der Anzeige (3) mit einem einfachen Mausklick markiert werden. Anschließend kann man im Eingabefeld (4) den angezeigten Wert ändern, wobei auch reelle Werte durch komplexe ersetzt werden können und umgekehrt. Hierbei ist die Syntax einer komplexen Zahl zu berücksichtigen: . Anstelle eines Punktes ist ein Komma einzugeben. Die Änderung einer Pol‐ bzw. einer Nullstelle wird durch einen Mausklick oder der Bestätigung mit der „Enter“‐Taste übernommen. Nach dem erneuten Berechnen des Filters bei geänderten Pol‐/Nullstellen wird im Hauptprogramm die Anzeige der Filterart und der Grenzfrequenz auf undefiniert gesetzt, da eine genaue Zuordnung nicht mehr möglich ist. Dies ist aus einer Folge von Bindestrichen in den jeweiligen Eingabefeldern ersichtlich. 18 5.1.3 Der Vergleich zwischen den Werten von MATLAB und des DSP Das GUI zum Vergleichen der errechneten und gemessenen Werte erreicht man über den Button „DSP“. Durch Klicken auf den Button „EVM starten“ wird dort das Programm zum Laden des Filters gestartet (hierzu mehr in Abschnitt 6.3) Abbildung 5.3: GUI zum Vergleichen der rechnerischen und gemessenen Werte 1. Anzeige der Parameter des zuletzt berechneten Filters, der mit den gemessenen Werten des Network Analyzers verglichen werden soll 2. Plot der errechneten (in blauer Farbe) und gemessenen (in roter Farbe) Werte des Filters 3. „Datei einlesen“‐Button: fordert zum Auswählen einer Datei aus und bereitet deren Daten zum Anzeigen auf 4. Ein Klick auf „EVM starten“ startet das Programm zum Download des Filters auf den DSP 5. „DSP beenden“‐Button beendet die GUI 6. Anzeigeoptionen des Plots 7. aktueller Plot wird in einem neuen Fenster geöffnet, um ihn dort in gewünschter Weise auszudrucken 8. Möglichkeit, die Abszissenbeschriftung in normierter Frequenz anzuzeigen 19 6 Beschreibung des DSP 6.1 Das Evaluationsmodul DSP56303EVM Abbildung 6.1: Foto des Evaluationsmoduls DSP56303EVM Der Kern des verwendeten DSP56303EVM ist der Motorola DSP 56002, ein noch häufig eingesetzter digitaler Signalprozessor. Die Einsatzgebiete erstrecken sich über Audioanwendungen, Bildverarbeitung und der Anwendung in der Telefonie. Das Modul besitzt mehrere Ein‐ und Ausgangsports, welche teilweise zur peripheren Erweiterung dienen. Es sind auch ein Audioeingang sowie zwei Audioausgänge (Line‐Out und Kopfhörer) vorhanden. Der Anschluss an den Network Analyzer erfolgt über die vorhandene RS232‐Schnittstelle. 6.2 Aufbau des DSP56303 Digitale Signalprozessoren sind programmierbare Prozessoren, die für bestimmte Rechenoperationen geschwindigkeitsoptimiert sind. Anders als gewöhnliche Prozessoren besitzen DSPs mehrere arithmetisch‐logische Einheiten (ALUs), zum Teil auch Multiplizier‐Akkumulatoren (MACs), die die Rechenanweisung A + B C in einem Rechenzyklus bestimmen können und das Ergebnis in A abspeichern. Diese optimierte Anweisung ist beispielsweise zur Berechnung einer Faltung nützlich. Die Architektur bei DSPs ist eine sogenannte ’Harvard‐Architektur’. 20 Abbildung 6.2: Aufbau des DSP56303 Sie ist gekennzeichnet durch die physikalische Trennung von Daten‐ und Programmspeicher und weist somit auch separate Busse auf. Dadurch wird ein paralleles Lesen von Befehlen und Daten und somit ein hoher Datendurchsatz ermöglicht. Aus Abbildung 6.2 wird ersichtlich, dass der DSP56303 eine erweiterte ’Harvard‐Architektur’ hat. Er besitzt einen weiteren Datenbus und einen Steuerbus. Somit können zwei Operanden gleichzeitig aus den zwei Datenspeichern (X und Y‐Speicher) geladen werden. Die ALU führt alle arithmetischen und logischen Operationen aus. Da der DSP ein Festkommaprozessor ist, werden alle Zahlen im Zweierkomplement dargestellt. Die zwei 56‐Bit Akkumulatoren A und B werden aus je zwei allgemein verwendbaren 24‐Bit Eingaberegister und einem 8‐Bit Extension‐Register gebildet. Das Extension‐Register dient zur Übernahme des Übertrags oder zur Vorzeichenerweiterung. Der DSP‐Kern besitzt eine PLL (Phase‐Locked‐Loop), die nur chipintern verfügbar ist, womit störender elektromagnetischer Strahlung entgegengewirkt wird. Die Programmsteuereinheit dient zum Laden und Decodieren von Programmen, Ausführen von Hardwareschleifen und zum Behandeln von Interrupts. Der DMA‐Controller (Direct‐Memory‐Access) sorgt für die Verschiebung von ganzen Datenblöcken, ohne dabei den Prozessorkern zu belasten. Die Verschiebung findet zwischen internem und externem Speicher und/oder internen/externen Ein‐ und Ausgängen statt. Es stehen sechs getrennt programmierbare DMA‐Kanäle zur Verfügung. 21 Leistungsmerkmale des DSPs: •
•
•
•
•
•
•
•
•
66/80/100 Millionen Instruktionen pro Sekunde (MIPS) bei einer Taktrate von 66/80/100 MHz, d.h. ein Taktzyklus pro Instruktion. Objektcodekompatibilität zu dem DSP56000‐Kern; 24‐Bit Adressierung; 8k x 24 Bit interner Speicher, aufgeteilt in P‐ (4096 x 24 Bit), X‐, Y‐ (jeweils 2048 x 24 Bit) Speicherbereich; je 16M x 24 Bit Adressraum pro Speicherbereich verfügbar; Arithmetik in Festkommadarstellung; Abtastrate von 48 kHz; Parallelverarbeitung dank zweier Datenspeicher (X‐ und Y‐ Speicherbereich) möglich; bis zu 34 programmierbare GPIOs (General Purpose I/O); 6.3 Starten des Filterprogramms auf dem DSP Befindet man sich im Programm‐Teil „DSP“ des Filterentwurfsprogramms „FILPROG“, so kann durch Klick auf den Button „EVM starten“ der PC‐Debugger „Evm30xw“ gestartet werden. Ein aktuelles Skript wird über den Button angehalten. Über das Menü „File ‐ Load“ oder gleichzeitig gedrückten Tasten „Control“ und „L“ kann ein neues Skript geladen werden. Die Assemblerdatei für diesen Laborversuch heißt „Filter.cld“. Nach der Übertragung auf den DSP wird mit dem Button die Filter‐Simulation gestartet. Der aktive Button wird immer grau dargestellt. Für jede Messung mit neuen Koeffizienten muss die Datei neu geladen werden. Sollte sich der PC‐Debugger oder der DSP aufhängen, so muss sowohl das Programm neu gestartet werden als auch ein Hardware‐Reset durchgeführt werden. Abbildung 6.3: Schematischer Aufbau der Messvorrichtung 6.4 Messen mit dem Network Analyzer 6.4.1 Messaufbau Zur Messung muss der DSP, wie in Abbildung 6.3 skizziert, mit dem Network Analyzer verbunden werden. Für einen sinnvollen Vergleich in MATLAB sollte eine Abtastrate von 48 kHz gewählt werden, die auch der DSP zum Abtasten verwendet. 22 6.4.2 Der Vector Network Analyzer ZVRE von Rohde & Schwarz Die Messung des auf dem DSP realisierten Filters wird mit dem Vector Network Analyzer ZVRE von Rohde & Schwarz durchgeführt. Das Betriebssystem auf dem internen Rechner ist Windows NT. Zwischen der Spektrum‐Analyzer‐Software und dem Betriebssystem kann durch gleichzeitiges Drücken der beiden Tasten „Alt“ und „Sys RQ“ gewechselt werden. Die große Anzeige erfolgt auf einem aktiven LC‐Farbbildschirm. Unter „Stimulus“ kann mit „Start/Stop“ eine Messung angefangen bzw. angehalten werden. Desweiteren können hier die Werte des angezeigten Frequenzbands eingestellt werden. Zum Speichern einer Messung darf unter „Memory ‐ Save ‐ Sel Items to save“ nur „ASCII File“ markiert sein. Der Dateiname ist frei wählbar, wobei seine Länge auf acht Zeichen begrenzt sein muss. Als Pfad (path) muss „C:\Labor\DigFil“ gewählt sein. 7 Versuchsdurchführung 7.1 Vorbereitende Aufgaben Bei der Realisierung von digitalen Filtern muss man Quantisierung berücksichtigen. Sie tritt in der Verarbeitung auf einem DSP an mehreren Stellen auf, hier sollen jedoch nur zwei Fälle betrachtet werden: Zum einen wird jede analoge Amplitude eines Signals bei der A/D‐Wandlung quantisiert, zum anderen kommt es bereits im Entwurfsprozess eines Filters zu Quantisierung, da die berechneten Filterkoeffizienten an die zur Verfügung stehende Wortbreite des jeweiligen DSPs angepasst werden müssen. Informieren Sie sich daher zunächst über die Quantisierung im A/D‐Wandler sowie die Koeffizientenquantisierung und beantworten Sie dann folgende Fragen: 1. Welche Auswirkungen hat ein A/D‐Wandler, der über eine nicht ausreichende Zahl von Stufen verfügt? Wie wirkt sich dies insbesondere im Sperrbereich eines Filters aus? 2. Wie verformt sich das quantisierte Signal einer Sinusschwingung, wenn man die Stufenzahl des A/D‐Wandlers schrittweise reduziert? 3. Was kann bei starker Koeffizientenquantisierung mit den Pol‐ und Nullstellen eines Filters passieren? Eine gute Quelle, um diese Fragen zu beantworten, ist z.B. [7]. 7.2 Versuchsaufgaben 1. Zunächst wird der DSP an der Network Analyzer angeschlossen. Dazu werden zum einen beide Geräte über ein serielles Kabel verbunden. Zum Anderen wird der Anschluss „Output“ des Network Analyzers mit „Line‐In“ des DSPs und der Anschluss „Input“ des Network Analyzers mit „Headphone‐Out“ des DSPs verbunden. Durch Drücken von „Alt+Sys‐RQ“ gelangt man zum Desktop. Ein Doppelklick auf „FILPROG“ startet das Filterentwurfsprogramm. 2. Zunächst soll folgender FIR‐Filter entworfen werden: Filtertyp: FIR‐Tiefpass Fensterfunktion: Rechteck Filterlänge: 1 40 Grenzfrequenz: 9 kHz Abtastfrequenz: 48 kHz 23 3.
4.
5.
6.
7.
8.
9.
10.
Nach Laden des Filters auf den DSP gemäß den Abschnitten 0 und 6.3 ist der gemessene Frequenzgang/Phasengang mit dem theoretischen zu vergleichen. Hiervon ist ein Ausdruck zu erstellen. Bestimmen Sie für den Filter aus (2) mit Hilfe des Network Analyzers die Gruppenlaufzeit und vergleichen Sie sie mit dem theoretischen Wert entsprechend Gleichung (4.12). Was stellt man im Sperrbereich fest? Verstärken Sie für den Filter aus (2) schrittweise die Koeffizientenquantisierung? Ab wann gibt es sichtbare Resultate? Wie ist dies zu erklären (Tipp: Betrachten Sie den relativen Abstand der Nullstellen)? Anstelle des Rechteck‐Fensters aus (2) soll nun ein Blackman‐Fenster verwendet werden. Welche Unterschiede stellen Sie im Vergleich zu (2) fest? Für eine von Ihnen wählbare Filterlänge 7 ist der Versuch aus (5) zu wiederholen. Kommentieren Sie Unterschiede im Frequenzgang. Man entwerfe folgende IIR‐Filter: Filtertyp: IIR‐Tiefpass Filtercharakteristik: Tschebyscheff Typ 1 3 dB 20 dB Durchlassfrequenz: 9 kHz Sperrfrequenz: 10 kHz Abtastfrequenz: 48 kHz sowie: Filtertyp: IIR‐Bandpass Filtercharakteristik: Tschebyscheff Typ 1 3 dB 20 dB Untere Durchlassfrequenz: 10 kHz Untere Sperrfrequenz: 9 kHz Obere Durchlassfrequenz: 15 kHz Obere Sperrfrequenz: 16 kHz Abtastfrequenz: 48 kHz Für diese Filter sind der Frequenzgang und der Phasengang mit den jeweiligen theoretischen Verläufen zu vergleichen und kommentieren. Wiederholen Sie die Messung aus (4) für den IIR‐Bandpassfilter aus (7). Erklären Sie das Verhalten (Tipp: Der IIR‐Filter ist als Kaskade von Systemen zweiter Ordnung realisiert). Welchen Einfluss haben der Anti‐Aliasing‐Tiefpass und der Rekonstruktionstiefpass auf die durchgeführten Messungen (beachten Sie insbesondere den Phasenverlauf sowie den Betragsfrequenzgang zu den Rändern des Messbereichs hin)? Verstärken Sie für den IIR‐Tiefpass aus (7) schrittweise die A/D‐Wandler‐Quantisierung. Ab wann wirkt sich diese auf den Betragsfrequenzgang aus? Wie wirkt sie sich insbesondere im Sperrbereich aus? 24 11. Schließen Sie den IIR‐Tiefpass aus (7) an einen Funktionsgenerator an und beobachten Sie das Filterausgangssignal auf eine Erregung mit einer Sinusschwingung, deren Frequenz im Durchlassbereich des Filters liegt. Erhöhen Sie schrittweise die A/D‐Wandler‐Quantisierung. Wie verändert sich das Filterausgangssignal? Wie ist dies zu erklären? 8 Literatur [1] [2] [3] [4] [5] [6] [7] Götz, H.: Einführung in die digitale Signalverarbeitung, Teubner Verlag, Stuttgart 1990 Azizi, S.: Entwurf und Realisierung digitaler Filter, Oldenbourg Verlag, München und Wien 1988 Stearns, S.: Digitale Signalverarbeitung analoger Signale, Oldenbourg Verlag, München und Wien 1987 Chen, C.: One‐Dimensional Digital Signal Processing, Marcel Dekker Inc., New York und Basel 1979 Jakobi, G.: Entwurf und Realisierung digitaler Filter mit dem Signalprozessor DSP 56000/1, Lehrstuhl für Nachrichtentechnik der Universität Kaiserslautern 1990 Saal, R.: Filterkatalog normierter Tiefpässe, AEG‐Telefunken, Berlin 1979 A. Oppenheimer, R. Schafer: Zeitdiskrete Signalverarbeitung, Oldenbourg München, Wien 1992 25