312 24 19MB
German Pages X, 305S. 129 Abb.. [316] Year 2003
Martin Werner Digitale Signalverarbeitung mitMATLAB
Aus dem Programm ____________セ@ Nachrichtentechnik/ Kommunikationstechnik
Operationsverstärker
von J. Federau Telekommunikation
von D. Conrads Kommunikationstechnik
vonM. Meyer Signalverarbeitung
vonM. Meyer
Digitale Signalverarbeitung mit MATLAB
von M. Werner Informationstechnik kompakt
herausgegeben von O. Mildenberger Übertragungstechnik
von O. Midenberger Optische Nachrichtensysteme und Sensornetzwerke von R. Thiele Datenübertragung
von P. Welzel Signale und Systeme
von M. Werner Nachrichtentechnik
von M. Werner
vieweg __________________"
Martin Werner
Digitale Signalverarbeitung mitMATLAB Intensivkurs mit 16 Versuchen 2., verbesserte und erweiterte Auflage Mit 129 Abbildungen und 51 Tabellen
Studium Technik
セ@
vleweg
Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar.
1. Auflage Oktober 2001 2., verbesserte und erweiterte Auflage März 2003
Alle Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweigj Wiesbaden, 2003 Der Vieweg Verlag ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer. www.vieweg.de Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. ISBN 978-3-528-13930-8 ISB N 978-3-322-92828-3 (eBook) DOI 10.1007/978-3-322-92828-3
v
Vorwort Die digitale Signalverarbeitung ist als Schlüsseltechnologie des Informationszeitalters in vielen unterschiedlichen Arbeitsfeldern zu finden: beispielsweise in der Sprach- und Bildcodierung für das Internet, in den xDSL-Modems für "breitbandige" Teilnehmeranschlüsse, in den Mobilfunkgeräten zur Entzerrung des Empfangssignals, in der Bildverarbeitung der medizinischen Diagnostik, in der digitalen Prozess-Steuerung der Automatisierungs- und Regelungstechnik, in den Anti-Blockier-Systemen in Automobilen, in der Mustererkennung zur automatischen Schrift- oder Spracherkennung. Digitale Signalverarbeitung mit MATLAB stellt eine Auswahl der wichtigsten Grundlagen und einfacher praktische Anwendungen der digitalen Signalverarbeitung anband von 16 Versuchen vor. Die behandelten Themen lassen sich in die sechs Bereiche einordnen: •
Erste Schritte in MATLAB
- Versuch 1
•
Signalverarbeitung im Zeitbereich
- Versuche 2 und 3
•
Signalverarbeitung im Frequenzbereich - Versuche 4 bis 7
•
Lineare zeitinvariante Systeme
- Versuche 8 bis 11
•
Stochastische Signale
- Versuche 12 und 13
•
Wortlängeneffekte
- Versuche 14 bis 16
Die Versuche werden am pe mit Hilfe der Simulationssprache MATLAB durchgeführt. Für die Wahl von pe und MATLAB waren folgende Gründe ausschlaggebend: •
Der pe ist den meisten an der digitalen Signalverarbeitung interessierten Menschen vertraut.
•
Die Simulationssprache MATLAB ist ein häufig benutztes Werkzeug für die digitale Signalverarbeitung und wird weltweit auf pe und Arbeitsplatzrechnern mit unterschiedlichen Betriebssystemen eingesetzt.
•
Die einfache Bedienung sowie die guten graphischen Eigenschaften von MATLAB ermöglichen es, von Beginn an die digitale Signalverarbeitung in den Mittelpunkt zu stellen.
•
Die Kombination aus pe und MATLAB bietet mit der heute üblicherweise vorhandenen ,,Pe Sound eard" eine preiswerte Schnittstelle zu realen Audiosignalen.
•
Alle für das Praktikum erstellten MATLAB-Programme können abgeändert und erweitert werden. Die Experimente lassen sich nach persönlichen Bedürfnissen und Interessen modifizieren und erweitern.
•
MATLAB wird in vielen Firmen und Hochschulen eingesetzt und ist auch als preiswerte "Student Edition" erhältlich.
Bei der Auswahl der Themen und der Gestaltung der Versuche wurde darauf geachtet, dass keine tiefergehenden Kenntnisse der digitalen Signalverarbeitung erforderlich sind. Allgemeine Kenntnisse über Signale und Systeme aus einer einführenden Lehrveranstaltung oder einem einführenden Lehrbuch werden jedoch vorausgesetzt.
VI
Vorwort
Zu den behandelten Themen gibt es in der Regel eine kompakte Einführung. Die Versuchsvorbereitung ist ein wesentliches Element des Praktikums und kann je nach Vorkenntnissen verschieden lange dauern. Die Versuche sind so gestaltet, dass bei guter Vorbereitung, die Bearbeitungszeit am PC ca. 120 bis 180 Minuten nicht übersteigen sollte. Es war leider nicht möglich, alle Versuche "gleich schwierig" zu gestalten. Viele Übungen sind mit Lösungshinweisen versehen. Der ausführliche Lösungsteil ermöglicht eine effektive Lernkontrolle. Zahlreiche Beispielprogramme mit "Screen-Shots" und Messbeispielen erleichtern die Durchführung der Versuche. Zum Buch sind über 100 Programme und Datensätze entstanden, die auf der Web-Seite •.http://www.vieweg.de.. unter "Service", "Für Privatkunden" und ,,Downloads" erhältlich sind. Technische Hinweise und Softwarekompatibilität Um Verwechslungen vorzubeugen werden im Folgenden Schreibweisen und Begriffe verwendet, wie sie in MATLAB gebraucht werden. Dies betrifft insbesondere den Dezimalpunkt, 0.1 statt 0,1, und die Bereichsangabe für Laufindizes, z. B. 0:10 statt 0,1,2, ... ,10. MATLAB-Befehle, Programmvariablen, und Ähnliches werden durch Anführungszeichen und Schriftart besonders kenntlich gemacht, wie z. B. "help" oder "plot". MATLAB verfügt über eine umfassende und gut organisierte Online-Hilfe, die Handbücher vollwertig ersetzt. Aus diesem Grund ist auch der Einführungsteil sehr kurz gehalten. Auf die unterschiedlichen Leistungsumfange der in den letzten Jahren erhältlichen "Student Edition" ist zu achten. Dazu zählen vor allem die Beschränkung der Array-Größe auf 16000 Elemente und ob die "Signal Processing Toolbox" enthalten ist. Für das Praktikum ist die ,,signal Processing Toolbox" notwendig. Die Begrenzung der Array-Größe macht sich nur bei der Arbeit mit den Audio-Dateien bemerkbar. Sie kann durch Verkürzen oder Verwenden anderer Audio-Quellen - am Windows-PC im Prinzip jede WAVE-Datei - umgangen werden. Alle Programme wurden ursprünglich unter MATLAB 5 entwickelt und sind mit MATLAB 6 (6.1.10.450 Release 12.1, May 18,2001) getestet worden. Weitere Informationen zu MATLAB sind auf der Homepage der Firma "The MathWorks", U.S.A. •.http://www.mathworks.com.. bzw.beider deutschen Niederlassung "The MathWorks GmbH" •.http://www.mathworks.de.. zu finden. Danksagung Gerne bedanke ich mich bei den Studierenden im Studienschwerpunkt Informations- und Kommunikationstechnik am Fachbereich Elektrotechnik und Informationstechnik der Fachhochschule Fulda, die dieses Praktikum mit viel Engagement, hilfreichen Anregungen und konstruktiver Kritik bereichert haben. Mein besonderer Dank gehört jedoch Herrn Bernd Heil ohne dessen praktische Unterstützung im Nachrichtentechnik-Labor dieses Buch so nicht hätte entstehen können. Fulda, im September 2002
Martin Wemer
VII
Inhaltsverzeichnis 1 Erste Schritte in MATLAB ................................................................................................. 1 2 Zeitdiskrete Signale ............................................................................................................ 15 2.1 Elementare zeitdiskrete Signale ................................................................................ 15 2.1.1 Einführung .................................................................................................. 15 2.1.2 Vorbereitende Aufgaben ............................................................................. 18 2.1.3 Versuchsdurchführung ................................................................................ 20 2.2 Audiosignale ............................................................................................................. 20 2.2.1 Einführung .................................................................................................. 20 2.2.2 Vorbereitende Aufgaben ............................................................................. 24 2.2.3 Versuchsdurchführung ................................................................................ 24 3 Faltung und DitTerenzengleichung ................................................................................... 26 3.1 Faltung ...................................................................................................................... 26 3.1.1 Einführung .................................................................................................. 26 3.1.2 Vorbereitende Aufgaben ............................................................................. 28 3.1.3 Versuchsdurchführung ................................................................................ 31 3.2 Differenzengleichung ................................................................................................ 31 3.2.1 Einführung .................................................................................................. 31 3.2.2 Vorbereitende Aufgaben ............................................................................. 32 3.2.3 Versuchsdurchführung ................................................................................ 33 4 Diskrete Fouriertransformation (OFT) ............................................................................ 34 4.1 Einführung in die Grundlagen ................................................................................... 34 4.1.1 Diskrete Fouriertransformation ................................................................... 34 4.1.2 Eigenschaften der diskreten Fouriertransformation .................................... 39 4.2 Vorbereitende Aufgaben ........................................................................................... 40 4.3 Versuchsdurchführung .............................................................................................. 43 5 Schnelle Fouriertransformation (FFT) ............................................................................ 47 5.1 Einführung ................................................................................................................ 47 5.2 Radix-2-FFT -Algorithmus ........................................................................................ 48 5.3 Programmierung der DIT-Radix-2-FFT ................................................................... 52 5.3.1 Ordnen der Eingangsfolge (Bit-reversed Ordering) .................................... 52 5.3.2 Signalverarbeitung im Signalflussgraphen .................................................. 55 5.4 Vorbereitende Aufgaben ........................................................................................... 58 5.5 Versuchsdurchführung .............................................................................................. 60 6 Kurzzeit-Spektralanalyse: Grundlagen ........................................................................... 61 6.1 Einführung in die Grundlagen ................................................................................... 61 6.1.1 Abtastung .................................................................................................... 62 6.1.2 Spektrum des zeitdiskreten Signals ............................................................. 63 6.1.3 Fensterung .................................................................................................. 64 6.1.4 Diskrete Fouriertransformation ................................................................... 66 6.1.5 Zero-padding .............................................................................................. 67 6.1.5 Leakage-Effekt............................................................................................ 68
VIII 6.2
Inhaltsverzeichnis Fensterfolgen ............................................................................................................ 69 6.2.1 Einführung .................................................................................................. 69 6.2.2 Vorbereitende Aufgaben ............................................................................. 69 6.2.3 Versuchsdurchführung ................................................................................ 69
7 Kurzzeit-Spektralanalyse: Beispiele ................................................................................. 75 7.1 Beispiel Mehrtonsignal ............................................................................................. 75 7.1.1 Einführung .................................................................................................. 75 7.1.2 Vorbereitende Aufgaben ............................................................................ 75 7.1.3 Versuchsdurchführung ............................................................................... 77 7.2 Audiosignal ............................................................................................................... 78 7.2.1 Einführung .................................................................................................. 78 7.2.2 Vorbereitende Aufgaben ............................................................................. 80 7.2.3 Versuchsdurchführung ................................................................................ 83 8 Lineare zeitinvariante Systeme: FIR-Systeme ................................................................. 85 8.1 Einftihrung in die Grundlagen ................................................................................... 85 8.2 FIR-Systeme ............................................................................................................. 93 8.2.1 Einführung .................................................................................................. 93 8.2.2 Vorbereitende Aufgaben ............................................................................. 93 8.2.3 Versuchsdurchführung ................................................................................ 99 9 Lineare zeitinvariante Systeme: IIR-Systeme ................................................................ 101 9.1 Einfluss der Pole auf den Frequenzgang ................................................................. 10 1 9.2 Blockdiagramm ....................................................................................................... 102 9.3 Impulsantwort ......................................................................................................... 103 9.4 Partialbruchzerlegung mit MATLAB ..................................................................... 104 9.5 Allpässe ................................................................................................................... 106 9.6 Vorbereitende Aufgaben ......................................................................................... 106 9.7 Versuchsdurchführung ............................................................................................ 115 10 Entwurf digitaler FIR-Filter ........................................................................................... 117 10.1 Einführung .............................................................................................................. 117 10.2 Toleranzschema ...................................................................................................... 118 10.2.1 Entwurfsvorschrift .................................................................................... 118 10.2.2 Vorbereitende Aufgaben ........................................................................... 119 10.3 Fourier-Approximation ........................................................................................... 120 10.3.1 Einführung ................................................................................................ 120 10.3.2 Vorbereitende Aufgaben ........................................................................... 120 10.3.3 Versuchsdurchführung .............................................................................. 121 10.4 Fourier-Approximation mit Fensterung .................................................................. 122 10.4.1 Einführung ................................................................................................ 122 10.4.2 Vorbereitende Aufgaben ........................................................................... 123 10.4.3 Versuchsdurchführung .............................................................................. 124 10.5 Chebyshev-Approximation ..................................................................................... 124 10.5.1 Einführung ................................................................................................ 124 10.5.2 Vorbereitende Aufgaben ........................................................................... 125 10.5.3 Versuchsdurchführung .............................................................................. 126
Inhaltsverzeichnis
IX
11 Entwurf digitaler IIR-Filter ............................................................................................ 129 11.1 Einführung .............................................................................................................. 129 11.2 Entwurf eines Butterworth-Tiefpasses .................................................................... 132 11.2.1 Toleranzschema und Filtertyp ................................................................... 132 11.2.2 Zeitkontinuierlicher Butterworth-Tiefpass ................................................ 132 11.2.3 Dimensionierung des zeitkontinuierlichen Butterworth-Tiefpasses .......... 133 11.2.4 Vorbereitende Aufgaben ........................................................................... 134 11.2.5 Bilineare Transformation .......................................................................... 136 11.2.6 Vorbereitende Aufgaben ........................................................................... 138 11.3 Entwurf digitaler Tiefpässe nach Standardapproximationen analoger Tiefpässe .... 141 11.3.1 Einführung ................................................................................................ 141 11.3.2 Versuchsdurchführung .............................................................................. 142 11.4 Entwurf von Hochpass- und Bandpassfiltem und Bandsperren .............................. 146 11.4.1 Einführung ................................................................................................ 146 11.4.2 Versuchsdurchführung .............................................................................. 148 12 Stochastische Signale: Kenngrößen ................................................................................ 149 12.1 Einführung .............................................................................................................. 149 12.1.1 Experiment und stochastischer Prozess .................................................... 149 12.1.2 Zufallszahlen am Digitalrechner ............................................................... 153 12.2 Stochastische Signale .............................................................................................. 154 12.2.1 Vorbereitende Aufgaben ........................................................................... 154 12.2.2 Versuchsdurchführung .............................................................................. 157 12.3 Korrelation stochastischer Prozesse ........................................................................ 158 12.3.1 Korrelation, Korrelationsfunktion und Leistungsdichtespektrum ............. 158 12.3.2 Weißes Rauschen ...................................................................................... 159 11.3.3 Schätzung der Autokorrelationsfunktion .................................................. 160 11.3.4 Zeitkorrelation eines Chirp-Signals .......................................................... 161 11.3.5 Schätzung des Leistungsdichtespektrums ................................................. 164 11.3.6 Vorbereitende Aufgaben ........................................................................... 165 11.3. 7 Versuchsdurchführung .............................................................................. 167 13 Stochastische Signale: L TI-Systeme ............................................................................... 171 13.1 Lineare Abbildung stochastischer Signale .............................................................. 171 13.1.1 Einführung ................................................................................................ 171 13 .1.2 Vorbereitende Aufgaben ........................................................................... 174 13 .1.3 Versuchsdurchführung .............................................................................. 174 13.2 Stochastische Signale und LTI-Systeme ................................................................. 175 13.2.1 Einführung ................................................................................................ 175 13.2.2 Vorbereitende Aufgaben ........................................................................... 175 13.2.3 Versuchsdurchführung .............................................................................. 180 14 Analog-Digital-Umsetzung .............................................................................................. 182 14.1 Einführung .............................................................................................................. 182 14.2 Abtastung ................................................................................................................ 183 14.2.1 Abtasttheorem ........................................................................................... 183 14.2.2 Vorbereitende Aufgaben ........................................................................... 183 14.2.3 Versuchsdurchführung .............................................................................. 184
X
Inhaltsverzeichnis 14.3
Quantisierung .......................................................................................................... 185 14.3.1 Quantisierungskennlinie ............................................................................ 185 14.3.3 Maschinenzahlen....................................................................................... 185 14.3.3 Quantisierungsfehler ................................................................................. 189 14.3.4 Vorbereitende Aufgaben ........................................................................... 191 14.3.5 Versuchsdurchführung .............................................................................. 193
15 Reale digitale Filter: Koeftizientenquantisierung ......................................................... 197 15.1 15.2
15.3
Einführung .............................................................................................................. 197 FIR-Filter mit quantisierten Koeffizienten ............................................................. 198 15.2.1 Fehlermodell und Fehlerfrequenzgang ...................................................... 198 15.2.2 Vorbereitende Aufgaben ........................................................................... 200 15.2.3 Versuchsdurchführung .............................................................................. 203 IIR-Filter mit quantisierte Koeffizienten ................................................................. 205 15.3.1 Kaskadenform und Polausdünnung ........................................................... 205 15.3.2 Vorbereitende Aufgaben ........................................................................... 208 15.3.3 Versuchsdurchführung .............................................................................. 215
16 Reale digitale Filter: Quantisierte Arithmetik ............................................................... 216 16.1
16.2 16.3
Quantisierte Arithmetik ........................................................................................... 216 16.1.1 Addition: Überlauf und große Grenzzyklen .............................................. 216 16.1.2 Multiplikation: inneres Geräusch und kleine Grenzzyklen ....................... 217 16.1.3 Ersatzschaltbild für einen Block 2. Grades ............................................... 221 Vorbereitende Aufgaben ......................................................................................... 222 Versuchsdurchführung ............................................................................................ 232
17 Lösungen zu den Versuchen ............................................................................................ 237 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 17.10 17.11 17.12 17.13 17.14 17.15 17.16
Vorbemerkungen ..................................................................................................... 237 Lösungen zu Versuch 2: Zeitdiskrete Signale ......................................................... 237 Lösungen zu Versuch 3: Faltung und Differenzengleichung ................................... 238 Lösungen zu Versuch 4: Diskrete Fouriertransformation (DFf) ............................ 239 Lösungen zu Versuch 5: Schnelle Fouriertransformation (FFf) ............................. 241 Lösungen zu Versuch 6: Kurzzeit-Spektralanalyse: Grundlagen ............................ 244 Lösungen zu Versuch 7: Kurzzeit-Spektralanalyse: Beispiele ................................ 250 Lösungen zu Versuch 8: Lineare zeitinvariante Systeme: FIR-Systeme ................. 254 Lösungen zu Versuch 9: Lineare zeitinvariante Systeme: llR-Systeme .................. 256 Lösungen zu Versuch 10: Entwurf digitaler FIR-Filter ........................................... 264 Lösungen zu Versuch 11: Entwurf digitaler IIR-Filter ............................................268 Lösungen zu Versuch 12: Stochastische Signale: Kenngrößen ............................... 277 Lösungen zu Versuch 13: Stochastische Signale: LTI-Systeme .............................. 284 Lösungen zu Versuch 14: Analog-Digital-Umsetzung ............................................ 289 Lösungen zu Versuch 15: Reale digitale Filter: Koeffizientenquantisierung .......... 291 Lösungen zu Versuch 16: Reale digitale Filter: Quantisierte Arithmetik ................ 293
Formelzeichen und Abkürzungen ........................................................................................ 299 Literaturverzeichnis .............................................................................................................. 301 Sachwortverzeichnis .............................................................................................................. 303
1
1
Erste Schritte in MATLAB
Es liegt in der Natur der Sache, dass ein so mächtiges Werkzeug wie MATLAB weder auf wenigen Seiten beschrieben noch in allen Funktionen schnell beherrscht werden kann. Der folgende Text soll Sie deshalb bei Ihren ersten Schritten in MATLAB unterstützen. Anband einfacher Beispiele wird gezeigt, wie Sie arithmetische Ausdrücke verarbeiten, einfache Graphiken erzeugen, eigene Programme mit Unterprogrammen und Funktionen erstellen und benützen können. Im Laufe des Praktikums werden sich Ihnen mit zunehmender Übung die Möglichkeiten von MATLAB Schritt für Schritt weiter erschließen. Die kommentierten Programmbeispiele zu den einzelnen Versuchen und die ausführliche Online-Dokumentation von MATLAB werden Ihnen dabei helfen.
Programmstart und einfache Befehle MATLAB-Befehlsfenster (Corrunand Window) Nach dem Start von MATLAB erscheint der MATLAB - Desktop mit Menüleiste, Schaltknöpfen und den fünf Bedienfenstem, Launch Pad, Workspace, Current Directory Cornrnand Hi s tory und Cornrnand Window, wie in Bild 1-1 . I
1!I[o!J EI
• .' MA TI AB
3.d • x
• x セia
tlab@ セ@
To
CODunlCe.t.lons TOOlbOX
セ@ セ
•
iGc@
staz:t.e:d, sele:ct "JUTLAB Help" t[oa the Help
Toolbo.
セ@
Neural lIeeu.tl! Toolbox
セ@
Ptoc ... i!19 ToOlbO. .... Signal _. - - . •
アセエ@
»
Cone.,t"----''1!--''x
x[5] x[3] x[7]
Y - - - - - - - W 8 7 . - o X[7]
1. Stufe
2. Stufe
3. Stufe
Bild 5-2 "Vorläufiger" Signalflussgraph der Radix-2-FFf nach drei Zerlegungen mit Aufteilung im Zeitbereich (N = 8)
51
5.2 Radix-2-FFf -Algorithmus
Eine genaue Analyse des Signalflussgraphen zeigt, dass die Komplexität weiter reduziert werden kann. Man betrachte beispielsweise die Eingangswerte x[2] und x[6]. Aus ihnen werden ohne Verwendung weiterer Eingangswerte - in der ersten Stufe genau zwei ,,Ausgangswerte" berechnet. Die Eingangswerte werden danach zur OFf nicht mehr benötigt, so dass ihr Speicherplatz mit den ,,Ausgangswerten" überschrieben werden kann. Man spricht von einem [nplace-Algorithmus. Die Verknüpfung zweier Eingangswerte zu zwei Ausgangswerten stellt die Basisoperation der Radix-2-FFf dar. Sie tritt in allen Stufen auf. Bild 5-3 zeigt links die Basisoperation wie sie direkt aus dem Signalflussgraphen abgelesen werden kann. Dem Aussehen entsprechend hat sich für sie die aus dem Englischen stammende Bezeichnung Butterfly durchgesetzt. Die zwei komplexen Multiplikationen in Bild 5-3 links lassen sich auf eine zurückführen, da in jeder Stufe stets (5.14) gilt. Damit erhält man den Butterfly in Bild 5-3 rechts.
Knoten ッN m ZMセ]J
o@
Knoten m
Knoten m
Knoten m
Bild 5-3 Basisoperation (Butterfly) der Radix-2-FFf in der Stufe s mit zwei (links) bzw. einer komplexen Multiplikation (rechts) mit I E {O, 1, ... , 2s' I _1}
In Bild 5-4 sind die Überlegungen zum Signalflussgraphen der Decimation-in-time (DIT) Radix-2-FFT zusammengefasst. Näherungsweise sind pro Stufe NI2 komplexe Multiplikation und N komplexe Additionen bzw. Subtraktionen erforderlich. Im Vergleich mit (5.13) reduziert
sich der Rechenaufwand noch mal etwas. RRadix-2-FFT "" SN log2 (N)
FLOPs
(5.15)
Es ist offensichtlich, dass in den ersten beiden Stufen keine echten Multiplikationen erforderlich sind, so dass die Zahl der Multiplikationen noch etwas reduziert werden kann. Für die FFf werden in der Literatur werden verschiedene Modifikationen vorgeschlagen, die je nach Anwendung unterschiedlichen Zielvorstellungen gehorchen, wie kleiner Speicherplatzbedarf, große Rechengenauigkeit, kompaktes Programm, optimale Ausnutzung der Prozessorarchitektur, usw. Dabei werden auch unterschiedliche Voraussetzungen berücksichtigt, z. B. dass die OFf-Länge keine Zweierpotenz ist (Split-Radix-Algorithmus), dass die Eingangsfolgen rein reell sind oder nur einige wenige Werte des Spektrums (Goertzel-Algorithmus) gesucht werden.
5 Schnelle Fouriertransfonnation (FFf)
52
x[O]
X[O]
x[4]
X[l]
x[2)
X[2]
x[6]
X[3]
x[l]
X[4J
x[5]
X[5]
x[3J
X[6]
x[7]
X[7]
Bild 5-4 Signalflussgraph der DIT-Radix-2-FFf für die DFf-Länge N
=8
Ihrer Bedeutung gemäß wird die FFf beim Design von Signalprozessoren oft berücksichtigt, so dass sie besonders schnell ausgeführt werden kann. Im Beispiel des Signalprozessors TMS320C6x von Texas Instruments aus dem Jahr 1997 wird für eine FFf der Länge 1024 in Festkomma-Arithmetik eine Rechenzeit von 70 Ils angegeben. Für Ende 2002 wurde in der Zeitschrift Computertechnik, c't 11/2002, ein Prozessor angekündigt, der die FFf der Länge 1024 bei 16 Bit Wortlänge in 1.7 Ils berechnen soll.
5.3
Programmierung der DIT-Radix-2-FFT
Die für die Realisierung der DIT-Radix-2-FFf wichtigen beiden Verarbeitungsschritte lassen sich in Bild 5-4 erkennen: Erstens das Ordnen der Eingangsfolge und zweitens die Signalverarbeitung im Signalflussgraphen. Beide Schritte können getrennt vorgenommen werden. Nachfolgend werden beide Schritte genauer betrachtet. In der Versuchsvorbereitung sollen Sie dann selbst ein MATLAB-Programm zur FFf erstellen.
5.3.1
Ordnen der Eingangsfolge (Bit-reversed Ordering)
Die für die DFf-Länge N = 8 notwendige Ordnung der Eingangsfolge ist Bild 5-4 zu entnehmen. Es ergibt sich von oben nach unten die Reihenfolge x[O], x[4], x[2], usw. Der allgemeine Zusammenhang wird der besseren Anschaulichkeit wegen nun am Beispiel der Transfonnationslänge N = 2P = 16 entwickelt. Den Ausgangspunkt bildet die Aufspaltung der DFf in zwei Teilsummen mit jeweils den geraden und den ungeraden Indizes in (5.4). Die Aufteilung wird für die DIT-Radix-2-FFf solange fortgesetzt, bis die Wertepaare für die Basisoperationen vorliegen, s. Tabelle 5-1. Es ergeben sich in der letzten Zeile die Paarungen 0 und 8, 4 und 12,2 und 10, usw.
5.3 Programmierung der DIT-Radix-2-FFf
53
Entsprechend dem Signalflussgraphen in Bild 5-4 ist das Folgenelement x[8], s. erste Zeile in Tabelle 5-1, am Eingang 2, s. vierte Zeile in Tabelle 5-1, einzuspeisen usw.
Tabelle 5-1 1 2 4
0 0 0 0
2 4 8
I4
8
Ordnen der Eingangsfolge (Indizes) für die DIT-Radix-2-FFf der Länge N = 16 in drei Schritten von oben nach unten 3
6
4 8
12 2 12 1 2
5 10 6 10
I
6 7 12 14 10 14 6 14
8
9
10
3 5
5 9 5
9
I
11 7 13 13
12 9
I3 3
13 11 7 11 ,
14 13 11 7
15 15 15 15
Der in Tabelle 5-1 entwickelte Zusammenhang lässt sich in einen effizient Algorithmus fassen. Dazu werden die Indizes I der Eingangsfolge mit Hilfe der Dualzahlen des BCD-Codes (Binary Coded Decimals) (5.16)
p-I
1=
Lb ·2 i
i
Tabelle 5-2
i=O
mit bi E {0,1} und p = IdN
-
(5.17)
p-I
J=
Lb ·2 i
P- 1- i
i=ü
erhält man z. B. aus I = 1 10 setzen 1000BcD = 8 10 =J.
0 1-
0000 0001
1000
セ i@
2
0010
0100
4 ---
BCDBit-reversed Darstellung Order
I
in Tabelle 5-2 dargestellt. Liest man jetzt den BCD-Code in umgekehrter Reihenfolge, Bit-reversed Order genannt,
= 0001 BcD nach Um-
Bit-reversed-Ordnung für die DIT-Radix-2-FFf
0000
8
3
0011
1100
12
4
0100 0101
0010 1010
2 10
0110
6
0111
0110 1110
14 ---
1000 1001
0001 1001
9
0101
5
5 6 7
i
Der Vergleich der Spalten für die Indizes I und J mit der ersten bzw. letzten Zeile in Tabelle 5-1 zeigt, dass der Index J die benötigte Anordnung der Eingangsfolge für die DIT-Radix-2-FFf liefert. Der Zusammenhang gilt unabhängig von der Transformationslänge N.
11
1011
1101
Anmerkung: Da die FFf einer der wichtigsten Algorith-
12
1100
0011
men der digitalen Signalverarbeitung ist besitzen manche digitale Signalprozessoren ein Adressenrechenwerk mit Bit-reversed-order-Funktion.
13 14
8 9 10
15
I
I
1010
=tl*+l011 1110
0111
1111
1111
,
1--1 I I
!
I
13 ! 3 I
11
--
7 セ@
II 15 !I
Für die Programmierung in höheren Programmiersprachen existiert für das Bit-reversed-orderSortieren ein kompaktes Programm ohne Bitbefehle, z. B. das FORTRAN-Programm in [OpSc95]. Das Programm benützt Gesetzmäßigkeiten in Tabelle 5-2, die im Folgenden aufgezeigt werden.
•
54
5 Schnelle Fouriertransformation (FFT)
Zunächst wird festgelegt, die Eingangsfolge für I von 0 bis N-l abzuarbeiten und sequenziell die Plätze zu tauschen. Es resultiert die Struktur einer Laufanweisung, einer FüR-Schleife in MATLAB mit den Indizes I und J wie in Tabelle 5-2, der Eingangsfolge x und der temporären Hilfsvariablen T.
Programmbeispiel 5-1 Bit-reversed ürder (Programmausschnitt) % bit-reversed ordering for DIT-Radix-2-FFT J = 0;
for I=O:N-l % exchange values x (J+l) ; x (I+1) ; x(J+l)
T
x (I+1)
T;
end
Anmerkungen: Beachten Sie, dass die Feldindizierung in MATLAB stets mit 1 beginnt. Um das Programm etwas zu beschleunigen, d. h. die Addition der Indizes mit 1 zu vermeiden, können Sie auch die
Schleifenanweisung anpassen. Durch das Tauschen der Plätze braucht kein neues Datenarray angelegt zu werden. Bei Eingangsfolgen der Länge 1024 und weit darüber ist die Speicherplatzersparnis ein wichtiger Vorteil bei der Implementierungen auf digitalen Signalprozessoren oder kundenspezifischen Schaltkreisen. Im obigen Programmausschnitt fehlt die Zuordnung der jeweils richtigen Indizes I und J. Hier hilft ein Blick in Tabelle 5-2 einen "inkrementellen" Algorithmus zu entwickeln, der die Änderung des Index J von Zeile zu Zeile widerspiegelt. Für den Übergang von "geraden" Indizes I auf ungerade, z. B. 1= 0 auf 1 und von 2 auf 3, ergibt sich für alle korrespondierenden J stets ein Zuwachs von N/2, im Beispiel von 0 auf 8 bzw. von 4 auf 12. Der Zuwachs um N/2 resultiert aus dem Setzen des Bits mit niedrigster Wertigkeit im Index I, des Least Significant Bit (LSB) bo = 1. Nach der Regel der Bit-reversed-orderSortierung (5.17) ergibt sich daraus das Most Significant Bit (MSB) bp _1 = I, mit der Wertigkeit 2P- 1 =N/2. Der Übergang von ungeraden auf gerade Indizes I gestaltet sich etwas aufwändiger, da die Addition des LSB zu unterschiedlichen Bit-Überträgen führen kann. Vergleichen Sie beispielsweise den Übergang des Index I von 1 auf 2 und von 3 auf 4. Im ersten Fall gibt es einmal einen Übertrag im zweiten Fall zweimal.
1=310
= 0011 BCD
bit-reversal -7
l100 BCD
=1210 = J
OOlOBCD
= 210 = J
nächster Schritt
1=410
=OlOOBCD
bit-reversal -7
5.3 Programmierung der DIT-Radix-2-FFf
55
Die notwendige Fallunterscheidung kann folgendermaßen berücksichtigt werden. Zuerst wird geprüft, ob der aktuelle Index J größer oder gleich NI2 ist, also der aktuelle Index I ungerade ist. Ist dies nicht der Fall, gibt es im nächsten Schritt /' = 1+ 1 keinen Bit-Übertrag. Der neue Index l' resultiert aus dem Vorgänger durch Addition von N/2, d. h. l' = J + N12. Ist J セ@ N/2 tritt in /' = 1+ 1 ein Bit-Übertrag auf, d. h. für das LSB gilt dann bo = O. Weil das LSB von I zum MSB von l' wird, muss letzteres auch null sein. Dies entspricht im Index J der Subtraktion von N/2, also J' = J - N/2. Nun kann, wie im Beispiel, ein Bit-Übertrag einen weiteren Bit-Übertrag nach sich ziehen. Es muss deswegen die Überlegung für Bit bo mit Bit bj, b2 , usw. wiederholt werden, bis kein BitÜbertrag mehr auftritt. Wegen der jeweils um den Faktor 2 abnehmenden Wertigkeiten der Bits in J, ist das geschilderte Verfahren mit der Subtraktion der Konstanten N14, N18, usw. fortzusetzen. Tritt kein Bit-Übertrag mehr auf, so wird das Verfahren abgebrochen und das entsprechende Bit gesetzt. Der Algorithmus lässt sich folgendermaßen zusammenfassen:
Programmbeispiel5-2 Bit-rever ed Order (Programmaus chnitt)
% bit-reversed ordering for DIT-Radix-2-FFT J 0; for I=O:N-l
% update index
K = N/2; while (K
Bild 12-5 Musterfolge eines in [-1,1] gleich- (oben) bzw. normalverteilten (unten) weißen Prozesses
12.3.3
Schätzung der Autokorrelationsfunktion
Die Schätzung der AKF und des LDS spielt in vielen Anwendungen eine wichtige Rolle. Je nach Randbedingungen und Aufgabenstellung werden unterschiedliche Methoden eingesetzt. Wir beschränken uns in diesem Versuch beispielhaft auf den grundlegenden Algorithmus und seine effiziente Anwendung. Zur Bestimmung der AKF kann - Ergodizität vorausgesetzt - als Schätzfunktion der Zeitmittelwert in Tabelle 12-4 über einen Signalblock der Länge N herangezogen werden.
1
N-l
(12.12)
Rxx[l]=- Lx[n+l]x[n] Nn=ü
Wie in Versuch 2 schon erwähnt, kann die Schätzfunktion als Faltung, genauer Pseudofaltung, der Musterfolge der Länge N interpretiert werden.
12.3 Korrelation stochastischer Prozesse
161
Da die AKF eines reellen Prozesses eine gerade Funktion ist, reicht es, die Berechnung für nicht negative Werte der Verschiebung I durchzuführen. Man beachte, dass je nach Implementierung durch die Blockgrenze die Zahl der Mittelungen mit wachsender Verschiebung abnimmt. Ist die Blocklänge viel größer als die maximale Verschiebung, kann dieser Effekt vernachlässigt werden. Zur Erhöhung der Zuverlässigkeit können die Schätzwerte mehrerer Blöcke gemittelt werden. Das Programmbeispiel12-3 zeigt eine mögliche Implementierung.
Programmbeispiel 12-3 Berechnung der Zeit-AKF eines Signalblocks function tacf = timeacf(x,M) % dsp laboratory - assignment 12 % estimation of the time auto-correlation function (tacf) of a % real-valued sequence % function tacf = timeacf(x,M) % x: signal sequence % M: number of coefficients of the tacf (number of shifts - 1) % timeacf.m * February 2001 * mw N = length (x) ; % signal block length i f M>N % check error condition error('!!! ERROR in timeacf.m M>N!! !') end tacf = zeros(1,M); % allocate memory for k=0:M-1 tacf(1+k) = sum(x(1:N-k) .*x(k+1:N))/(N-k); % time correlation end % end
12.3.4
Zeitkorrelation eines Chirp-Signals
Das Konzept der Korrelation spielt in vielen Gebieten der Wissenschaft und Technik eine herausragende Rolle, da praktisch überall statistische Daten erhoben werden und nach Zusammenhängen gesucht wird. Das Beispiel der Ortungsschreie von Fledermäusen zeigt das die Anwendung der Korrelation auch in der Natur verbreitet ist. Fledermäuse würden verhungern, würde ihr Orientierungssinn nicht bei Dunkelheit und im Flug funktioniert. Sie senden Schreie im Ultraschallbereich aus und erkennen Objekte anhand der zurückgeworfenen Echos. Wie Experimente zeigen, gelingt es den Fledermäuse damit unter verschieden fliegenden Insekten ihre ,,Lieblingsspeise" zu erkennen und im Flug zu erbeuten. Letzteres impliziert, dass die Fledermäuse sogar die Geschwindigkeit der Beute erfassen, um sie später ergreifen zu können. Hierbei gelingt es den Fledermäusen Robustheit gegen Störgeräusche mit einer hohen Zeitauflösung zu verbinden. Das Geheimnis der Fledermäuse steckt in der besonderen Form des Ortungsschreies. Da die Lautstärke beschränkt ist, kann die benötigte hohe Signalenergie nur durch eine "längere" Dauer des Schreies erzielt werden. Andererseits stört eine langer Schrei die Objekterkennung, da sich dann viele Echos unterschiedlicher Objekte überlagern. Die Lösung liefert die Kombination aus einem speziell frequenzmodulierten Signal, Chirp-Signal genannt, und dem Korrelationsempfang.
12 Stochastische Signale: Kenngrößen
162
Das Ortungsverfahren mit Hilfe der Zeitautokorrelationsfunktion wird im Versuch durch eine MATLAB-Simulation nachvollzogen. Dazu verwenden wir das Chirp-Signal der Länge N c[n) =cos(U[n) · n)
für
(12.13)
n=O : N-l
mit der linear modulierten normierten Momentankreisfrequenz (12.14) u[n)=UO .(l-
n ) 2(N -1)
Für die Anwendung ist wichtig, dass die momentane Kreisfrequenz von ihrem Maximalwert U o während der Signaldauer genau auf den halben Wert fällt. Anmerkung: Eine detaillierte Diskussion über mögliche Formen von Chirp-Signalen und ihre Eigenschaften würde den hier vorgegebenen Rahmen sprengen.
Da die Phase des Chirp-Signals wegen der linearen Modulation der Momentankreisfrequenz von n2 abhängt, spricht man von einem quadratischen Chirp-Signal. Das Prograrnmbeispiel 12-4 beschreibt die MATLAB-Simulation. Zuerst wird das Chirp-Signal erzeugt. In Bild 12-6 oben ist das Resultat dargestellt. Deutlich ist die abnehmende Momentankreisfrequenz an den sich auseinanderziehenden Halbwellen zu erkennen. Mit einer dreieckförmigen Amplitudenbewertung wird ein weiches Ein- und Ausschalten erzielt.
_1 L-____
____ セ@
o
__ 100 セ@
50
______ ______ 150 200 250 セ@
セ@
セ@
n -+
セ
i
セ@
Mセ
Mセ@
イッ@
I
I
I
Mセサ@
Eッ
M
MイG
M
I
lM
- - _1- _ _ _ _ _ _ 1_ _ _ _
- -
I
イMセ
" -ro
ü
I
-
Mセ@
Mセᄋah -
Q セ UP M
M
I
I
RP セM
-
-
-
-
R セ UP セM
-1- -
Mイセ@ -
-
-
- -I- -
セ セ ]M
-
-
セ ]Mセ@
i セ@
I I
セ@
0.5
I I
- - -.- - - T - -
ッ
lMセ@
o
__ 0.1
セ@
__ 0 .2
セ@
I
I
I
I
I
I
I
MイセQ
I
__ 0 .3
セ@
__ 0.4
セ@
__ セ@
__
0.5 0 .6 Q 1 11 -+
I
__ セ@
0 .7
0 .8
セ
MjN@
0 .9
Bild 12-6 Chirp-Signal (oben) und seine Zeitautokorrelationsfunktion (mitte) und Betragsquadrat des Spektrums (unten) (linear interpolierte Darstellungen mit "plot")
Die Zeitautokorrelationsfunktion des Chirp-Signals, also das Detektionssignal das sich nach Empfang des ungestörten Echos und dessen Korrelation mit dem Chirp-Signal ergibt, ist in der Mitte zu sehen. Man erkennt die enorme Verdichtung im Detektionssignal. Sie beruht auf der besonderer Form des Chirp-Signals, vgl. Barker-Codes in Versuch 2. Das Maximum der Zeit-
12.3 Korrelation stochastischer Prozesse
163
korrelationsfunktion liefert definitionsgemäß die Energie des Chirp-Signals als deutlich erkennbare Signalüberhöhung. Zusätzlich ist in Bild 12-6 unten das Betragsquadrat des Spektrums abgebildet. Das ChirpSignal erscheint darin als breitbandiges Bandbass-Signal mit dem Frequenzschwerpunkt bei der Hälfte des Maximalwertes der Momentankreisfrequenz. Der lineare Übergang der normierten Momentankreisfrequenz wird im Spektrogramm in Bild 12-7 klar sichtbar. Deutlich erkennt man auch den Maximalwert von 0.4· 21C . Hinweis: Durch die beim Druck erfolgte Umwandlung des Farbbildes in ein Graustufenbild können störende dunkle Bildanteile auftreten. Im Farbbild (Bildschirm) sind diese Flächen tief blau für kleine Werte, wohingegen die dominanten Spektralanteile in der nach unten links verschobenen Diagonalen tief rot dargestellt werden.
spectrogram 01 chirp signal
a
o
50
100
150
n .....
Bild 12-7 Spektrograrnm des Chirp-Signals
Programmbeispiel12-4 Chirp-Signal % dsp laboratory - assignrnent 12 % time auto-correlation function of the chirp signal % dsplab12_3.m * August 2002 * mw % chirp signal
.8*pi;
n
=
= 256; = N - 1; 0:NM1;
% start value for normalized radian frequency % length of chirp signal % normalized time
164
12 Stochastische Signale: Kenngrößen
% instantenous normalized radian frequency
Omega = Omega_o*(ones(size(n)) - (1/(2*NM1))*n); c = cos(Omega.*n); % chirp signal c = c.*triang(N)'; % windowing (triangular shapeJ y = conv(fliplr(c) ,cl; % matched filter receiver (pseudo convolutionJ % graphics FIG1 = figure('Name' ,'dsplab12_3 : chirp signal' ,'NumberTitle' ,'off', ... 'Units' ,'normal' ,'position' , [.4 .3 .55 .65]); subplot(3,1,1), plot(n,c), grid axis([O NM1 -11]); xlabel('n \rightarrow'), ylabel('c[n] \rightarrow') title('chirp signal') subplot(3,1,2) ,plot(N/2:3*N/2-1,y(N/2+1:N+N/2)), grid axis([N/2 3*N/2-1 -30 50]); xlabel('n \rightarrow'), ylabel('c[n]*c[-n] \rightarrow') title('time auto-correlation function') SC = abs(fft(c,N)) .A2; SC = SC/max(SC); w=0:NM1; w=2*pi*w/N; subplot(3,1,3) ,plot(w(1:N/2)/pi,SC(1:N/2)), grid axis([O 1 0 1]); xlabel('\Omega / \pi \rightarrow'), ylabel(' IC(eA{j\Omega}) I A2 / C_o \rightarrow' ) title('spectrum') % spectrogram FIG2 = figure('Name', 'dsplab12_3 : spectrogram', 'NumberTitle',_ 'off', 'Units', 'normal', 'position', [.4 .3 .55 .65]); specgram(c,32,1,gausswin(32) ,16), grid title('spectrogram of chirp signal') ylabel('\Omega / 2\pi \rightarrow') xlabel('n \rightarrow') % end
12.3.5
Schätzung des Leistungsdichtespektrums
Aus der gemessenen Zeit-AKF lassen sich Schätzwerte für das LDS mit Hilfe der DFf berechnen. Voraussetzung dafür ist, dass die AKF für alle wesentlichen Werte von I erfasst wurde, d. h., (12.15) Anderenfalls ergeben sich Fehler ähnlich der Fensterung in der Kurzzeit-Spektralanalyse. Darüber hinaus kann das LDS durch Zero-padding in einem engeren Frequenzraster dargestellt werden. Im Prograrnmbeispiel 12-5 wird eine hierzu geeignete MATLAB-Kommandozeile gezeigt. Man beachte die spezielle Anordnung der Daten für den "ff t "-Befehl. Den Ausgangspunkt bilden die M Schätzwerte der AKF "Rxx" für 1 =0 : L - 1. Die symmetrisch fortgesetzten Werte der AKF für 1 =- L+ 1 : - 1 werden zeitlich gespiegelt angehängt. Das Zero-padding geschieht durch Einfügen von Nullen.
165
12.3 Korrelation stochastischer Prozesse
Programmbeispiel12-S Berechnung de LDS au Schätzwerten der AKF % compute pds from acf estimates Rxx with zero'padding to length 1024 M = length(Rxx]l; Sxx = fft([Rxx zeros(l,1024'(2*M-1ll Rxx(M:-1:2l]l;
Anmerkung: Das LDS eines reellen Prozesses ist stets rein reell und nicht negativ da es die mittlere Leistung in jedem Frequenzteilband wider gibt.
Alternativ zu obigem Weg, können Schätzwerte für das LDS mit Hilfe der FFf direkt aus den Musterfolgen bestimmt werden. Ein wegen seiner Einfachheit oft verwendetes Verfahren beruht auf dem Periodogramm [OSW99]. Dabei wird das LDS durch die Betragsquadrate der DFfKoeffizienten eines Signalblockes geschätzt. Aufgrund der stochastischen Natur des Signals können benachbarte Messwerte stark schwanken. Zur Glättung des Ergebnisses wird in der Regel sowohl eine Fensterfunktion, häufig das Harnming-Fenster, als auch eine Mittelung über mehrere Signalblöcke verwendet. Das Verfahren ist in Bild 12-8 illustriert. Aus der Musterfolge x[n] werden mit Hilfe einer Fensterfolge w[n] Blöcke der Länge N herausgeschnitten. Für jeden Block wird die DFf berechnet. Die Betragsquadrate der DFf-Koeffizienten werden über die Blöcke gemittelt.
Signalblock i ,",, , ,
II
I "• J \I
I
,
",,'I I
"
•
1\
,
I
... '"
!
"
,
,
."'"\,',-,\
.
w(n]
'Vi
\ /
1\
,
\
J \ I,
,
J,
I 1l,+N-l
J
,
,
i
11 Die Signalblöcke überlagern sich dabei mittig um Ilj bei relativ kurzen Musterfolgen genügend Blöcke für die Mittelung zur Verfügung zu haben. Ist die Musterfolge sehr lang, so kann auf das Überlappen Bild 12-8 Zerlegung einer Musterfolge mit der Fensterfolge w[n] in der Blöcke verzichtet werden. Da dann keine SigBlöcke der Länge N nalwerte doppelt verwendet werden, nimmt in diesem Fall die statistische Zuverlässigkeit des Ergebnisses zu. Für eine effiziente Berechnung wird eine Blocklänge verwendet, die eine Radix-2-FFf zulässt.
12.3.6
Vorbereitende Aufgaben
A12.3-l In den Programmbeispielen 12-6 und 12-7 wird ein Beispiel zur Schätzung der bidimensionalen WDF gegeben. Machen Sie sich mit den Programmen soweit vertraut, dass Sie sie in der Versuchsdurchführung anwenden und die Ergebnisse interpretieren können.
Programmbeispiell2-6 Schätzung der bidimensionalen WDF % % % %
dsp laboratory - assignment 12 estimation of the bidimensional probability density function (pdfl of uniformly or normally distributed random sequences dsplab12_4.m * February 2001 * mw
N
=
10000;
% number of samples per block
166
12 Stochastische Signale: Kenngrößen
% number of blocks Block = 50; % number of bins for (l-dim.) pdfs 1 or 2 Nl=30; N2=30; MIN1=-3; MIN2=-3; % minimum value of bin centers MAX1=3; MAX2=3; % maximum value of bin centers h = [N1,MIN1,MAX1,N2,MIN2,MAX2]; % parameter vector for function hist2 Histo = zeros (N2,N1) ; % simulation loop for k=l:Block fprintf{'loop counter: %g of %g\n' ,k,Block) x = randn{l,N); % normally distributed random sequenee [NN,h1,h2] = hist2{x,1,h); % 2-dim. histogram (absolute frequency) Histo = Histo + NN; end % normalization (pdf) D1 = (MAX1-MIN1)/{N1-1); % width of bins for xl D2 = (MAX2-MIN2)/{N2-1); % width of bins for x2 % normalization (relative frequeney) Histo = Histo/{D1*D2*N*Block); % graph i es FIG = figure{'Name' ,'dsplab12_4: bidim. pdf' ,'NumberTitle', ... 'off', 'Units', 'normal', 'position', [.54 .4 .45 .55]); grid, surfl{h1,h2,Histo) % pdf xlabel{'x_1 \rightarrow'), ylabel{'\leftarrow x_2') zlabel{'f_{X_1X_2} (x_1,x_2) \rightarrow') FIG = figure{'Name' ,'dsplab12_4 : contour lines of bidim. pdf', ... , NumberTitle' , 'off', 'Units', 'normal', 'Position', [.54 .37 .45 .55]); v = [.01 .04 .08 .12 .14 .16]; [CS,CH] = contour{h1,h2,Histo,v); grid % contour lines clabel (CS, CH, V) ; xlabel{'x_1 \rightarrow'), ylabel{'x_2 \rightarrow') % end
Progranunbeispiel12-7 2-dimen ionales Histogramm (absolute Häufigkeiten) function [NN,X1,X2] = hist2{x,y,h) % dsp laboratory - assignment 12 % bidimensional histogram with equidistant bin center spacing function % [NN,h1,h2]=hist2(x,m,h) or hist2{x,y,h) input sequence 1 % x % shift factor, i.e., histogram of pairs x[n] and x[n+m] m y input sequence 2, i.e., histogram of pairs % x[n] and y[n] if x and y are two arrays of equal length % parameters for bin settings h % h = [N1,MIN1,MAX1,N2,MIN2,MAX2] % N1, N2 % number of bins % MIN1, MIN2 : minimum value of bin centers % MAX1, MAX2 : maximum value of bin centers histogram (absolute frequency) % NN bin centers with respect to xl h1 %
12.3 Korrelation stochastischer Prozesse
167
h2 : bin centers with respect tü x2 hist2.m * February 2001 * mw length(x) ; Lx (h (3) - h (2) ) / (h (1) -1) ; D1 % width of bins of xl (h(6) -h(5)) / (h(4) -1); D2 % width of bins of x2 h(2)+D1* (O:h(l) -1); Xl h (5) +D2* (O:h (4) -1) ; X2 NN zerüs(h(4) ,h(l)l; % histogram B1 h(2) -D1/2; B2 h(5) -D2/2; if length(y)==Lx % 2 saquences x and y x=ceil((x-B1)/D1); x=min(x,h(l)); x=max(x,l); y=ceil((y-B2)/D2); y=min(y,h(4)); y=max(y,l); für n=l:Lx NN(y(n),x(n)) = NN(y(n) ,x(n)) + 1; end else % 1 sequence x (y=x[n+m}) m = y; y=ceil((x(l+m:Lx) -B2)/D2); y=min(y,h(4)); y=max(y,l); x=ceil((x(l:Lx-m) -B1)/D1); x=min(x,h(l)); x=max(x,l); für n=l:Lx-m NN(y(n),x(n)) = NN(y(n),x(n)) + 1; end end % end %
%
A12.3-2 Im Versuch soll die Erkennung des Chirp-Signals bei additiver normal verteilter Störung durch Rauschen untersucht werden. Damit die Ergebnisse aussagekräftig sind, ist das Verhältnis von Signalleistung und Rauschleistung einzustellen. Mit welchem Amplitudenfaktor ist das Chirp-Signal nach der Fensterung zu Multiplizieren, damit die Leistung, d. h. die Energie des Signals bezogen auf seine Dauer, im Programmbeispiel 12-4 gleich eins ist? Geben Sie eine geeignete MATLAB-Befehlszeile für das Programmbeispiel 12-4 an.
12.3.7
o
Versuchsdurchführung Verwenden Sie die Programmbeispiele 12-6 und 12-7 zur Schätzung einer bidimensionalen WDF einer normalverteilten Zufallszahlenfolge. (a) Welche Ortskurven beschreiben die Höhenlinien? (b) Welchen Schluss können Sie daraus für den Korrelationskoeffizienten p in (12.3) ziehen? (c) Was folgt daraus für die stochastischen Variablen Xl und X2 bzw. die Wertepaare (XI,x2) der Folge?
168
12 Stochastische Signale: Kenngrößen
o
Testen Sie, ob der MATLAB-Rauschgenerator "randn" korrelierte Zufallszahlen erzeugt. Füllen Sie dazu Tabelle 12-5 aus. Hinweis: Für die Überprüfung verwenden Sie das Programm "dsplab12_7", das auf den Algorithmus zur Schätzung der AKF in Programmbeispiel12-3 fußt.
Tabelle 12-5 Schätzwerte für die AKF Rxx[l] der durch den MATLAB-Befehl "randn" erzeugten Zufallszahlenfolge für den Stichprobenumfang N
N
Rxx[O]
maxI
Rxx[l]
105 106 107
I
I
I) maximaler Wert des Betrages der AKF Rxx[l] für I = 1,2, ... , 20
o
Bestimmen Sie die AKF und das LDS des Sprachsignals in der Datei "dsplab_speech. wav". Hinweis: Verwenden Sie das Programmbeispiel12-8 "dsplab12_5".
Welche Grundfrequenz hebt sich im LDS deutlich hervor? Hat dies Auswirkungen auf die AKF?
Über welchen Zeitraum liegt eine starke Korrelation vor. Als Schätzwert verwenden Sie die Verschiebung bis die AKF 50% ihres Maximalwertes erstmalig unterschreitet.
Vergleiche Sie die Ergebnisse auch mit den Resultaten in Versuch 7, Abschnitt 7.2
o
In diesem Versuchsteil sollen Sie einen Eindruck gewinnen, wie Robust die Detektion eines Chirp-Signal mit einem Korrelationsempfanger gegen eine additive Rauschstörung ist. (a) Normieren Sie zuerst das Chirp-Signal in Programmbeispiel 12-4 "dsplab12_3" auf die Signalleistung eins. Prüfen Sie Ihre Änderung durch eine Simulation nach.
12.3 Korrelation stochastischer Prozesse
169
(b) Addieren Sie nun additives weißes und normal verteiltes Rauschen mit ebenfalls der Leistung eins. Damit stellen Sie ein Signal-Rauschverhältnis von -10 dB ein. Ist die Signalüberhöhung im Detektionssignal noch deutlich zu erkennen?
o
Machen Sie das Chirp-Signal und das Störsignal mit Hilfe des MATLAB-Befehls "sound" hörbar. Schreiben Sie dazu ein kleines Programm. Dabei können Sie die Dauer des Chirp-Signals erhöhen, z. B. bei einer Abtastfrequenz von 16 kHz auf 1024 oder mehr.
Programm beispiel 12-8 Bestimmung der AKF und des LDS eines Sprach ignal % % % % %
dsp 1aboratory - assignment 12 estimation of the auto-corre1ation function (acf) and computation of the power density spectrurn (pds) using the estimated acf and the dft with zero-padding for a speech signal dsp1ab12_5.m * February 2001 * mw
% speech signal [X,fs,bits] = wavread('dsp1ab_speech'); % load wave file soundsc(X,fs,bits) ; % measurement parameters M = 201; % number of acf coefficients Rxx = timeacf(X,M); % block acf (time auto-correlation function) fprintf('Rxx[O] = %g\n' ,Rxx(1)); % compute pds from acf estimates with zero-padding to length Ndft Ndft = 1024; Sxx = fft([Rxx zeros(1,Ndft- (2*M-1)) Rxx(M:-1:2)]); Sxx = abs(Sxx); % compensate for numerical impairments % graphics FIG1=figure('Name' ,'dsp1ab12_4: estimates of acf and pds' ,'NurnberTit1e' ,'off', ... 'Units', 'normal', 'Position', [.5 .4 .45 .55]); subp1ot(3,1,1), stern(0:M-1,Rxx/Rxx(1)), grid axis([O M-1 -1 1]); x1abe1('1 \rightarrow') ,y1abe1('R_{XX} [1] / R_{XX} [0] \rightarrow') f = 2*(0:Ndft/2-1)/Ndft; subp1ot(3,1,2), p1ot(f,Sxx(1:Ndft/2)/Rxx(1)), grid x1abe1('\Omega/\pi \rightarrow') ,y1abe1('S_{XX} (\Omega) / R_{XX} [0] \rightarrow' ) subp1ot(3,1,3), semi1ogy(f, (Sxx(1:Ndft/2)/Rxx(1))+0.0001), grid x1abe1('\Omega/\pi \rightarrow') ,y1abe1('S_{XX} (\Omega) / R_{XX} [0] \rightarrow' ) % end
12 Stochastische Signale: Kenngrößen
170
Hinweise zu MATLAB-Funktionen und M-Files Im Folgenden werden für die Versuchsdurchführung nützliche MATLAB-Befehle und -Funktionen aufgelistet, zu denen Sie sich mit Hilfe der Help-Funktion Erläuterungen und Beispiele am Bildschirm anzeigen lassen können, s. a. vorherige Versuche. •
Befehle zur Programmablaufsteuerung isempty
•
elementare mathematische Funktion erf, erfinv
•
elementare Befehle der digitalen Signalverarbeitung rand, randn, hist
•
vorbereitete M-Files dsplab12_1.m bis dsplab12_7.m, dsplab12_2_.m, hist2 .m, dsplab_speech.wav
171
13
Stochastische Signale: LTI -Systeme
Dieser Versuch knüpft an den Untersuchungen über statistische Kenngrößen stochastischer Prozesse an. Im Mittelpunkt steht die Frage nach den Veränderungen der Kenngrößen bei Filterung der Prozesse durch LTI-Systeme. LernzieLe: Nach Bearbeiten die e Versuches können Sie
•
den linearen Mittelwert und die Varianz einer stochastischen Variablen durch eine lineare Abbildung einstellen
•
den linearen Mittelwert und die Varianz am Au gang eines LTI-Systems berechnen
•
Die Zeitautokorrelationsfunktion und die Lei tung übertragung funktion eines LTISystems berechnen
•
die Autokorrelationsfunktion und da Lei tung dichte pektrum einer Zufallsfolge am Ausgang eines LTI-Sy tems angeben
•
die Bedeutung de Korrelation koeffizienten anband der zweidimensionalen WDF einer Normalverteilung erläutern
13.1
Lineare Abbildung stochastischer Signale
13.1.1
Einführung
Stochastische Signale treten in der digitalen Signalverarbeitung an vielen Stellen auf: •
Informationstragende Signale sind von zufalligem Charakter, ansonsten wären sie bekannt und bräuchten nicht übertragen oder verarbeitet zu werden.
•
Informationstragende Signale treten aufgrund der physikalischen Rahmenbedingungen häufig zusammen mit Störsignalen auf, wie z. B. thermisches Rauschen in Verstärkern.
•
Reale digitale Systeme arbeiten mit endlicher Wortlänge, so dass beispielsweise nach einer Multiplikation das sogenannte Rundungsrauschen auftreten kann.
Die Verarbeitung stochastischer Signale erzeugt neue stochastische Signale mit neuen Eigenschaften. Man spricht von einer Abbildung stochastischer Variablen oder Prozesse. In der Informationstechnik ist es wichtig, derartige Abbildungen zu verstehen, um beispielsweise gezielt störunterdrückende Maßnahmen anwenden zu können. Um den Rahmen des Praktikums nicht zu sprengen, beschränken wir uns im Folgenden auf die Basisoperationen von LTI-Systemen: die Multiplikation eines Signals mit einer Konstanten und die Addition von Signalen.
M. Werner, Digitale Signalverarbeitung mit MATLAB © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, Braunschweig/Wiesbaden 2003
13 Stochastische Signale: LTI-Systeme
172
•
Lineare Abbildnng einer stochastischen Variablen
Wir betrachten zunächst die Multiplikation der stochastischen Variablen X mit der reellen positiven Zahl a. Ein anschauliches Beispiel liefern die WDFen bei der Abbildung einer gleichverteilten stochastischen Variablen in Bild 13-1. Wichtig ist, dass die Flächen unter den WDFen als Maß für die Wahrscheinlichkeiten vor und nach der Abbildung stets eins ergeben müssen. Dementsprechend ergibt sich für die allgemeine
lineare Abbildung
, -2
1/3
,
-I
J rX(X セ@ 0
/äChe= 1
'1 "2 Ir (y)
3
I
4
•
x
Fläche = 1
1/6
-2
-I
0
2
3
4
Y
Bild 13-1 WDP vor und nach der Abbildung Y=2X
(13.1)
Y=a·X+b die neue WDF
(Y-b)
1 fy(y)=-·fx -
lai
(13.2)
a
Für den linearen Mittelwert und die Varianz folgt aus der Erwartungswertbildung
•
f.1y
=a· f.1x +b
(13.3)
2 CTy
= a 2 ·CTx2
(13.4)
Addition zweier stochastischer Variablen
Die Addition zweier stochastischer Variablen (13.5)
gestaltet sich etwas komplizierter. Wir betrachten im Folgenden die Verbund-WDF fXj X 2 (xbx2) und berechnen die WDF der neuen stochastischen Variablen fy (y). Die Wahrscheinlichkeit, dass die stochastische Variable Yeinen Wert kleiner oder gleich einem beliebig vorgegebenen Wert y annimmt, ist (13.6)
Mit Hilfe Definition der WVF in Abschnitt 12 und der anschaulichen Überlegung in Bild 13-2 kann die WVF von Y berechnet werden.
JJ
00
Fy(y) =
(13.7)
Y-Xj
!Xj X 2 (Xj,x2)
dx2 dxl
Die gesuchte WDF ergibt sich aus der WVF durch Differenzieren nach y, wobei y auf der rechten Seite nur in der oberen Integrationsgrenze bzgl. X2 auftaucht. Nach den Rechenregeln für die Differentiation von Parameterintegralen [BSMM99] ergibt sich schließlich
13.1 Lineare Abbildung stochastischer Signale
d fy(y)= dy
00
y-x\
-00
-00
f f !X\X2(Xl,X2)
dx 2dx1 =
173
f !X\X2 (XbY- Xl)
(13.8) dXl
Im wichtigsten Sonderfall unabhängiger stochastischer Variablen faktorisiert die Verbund WDF, so dass die gesuchte WDF als Faltung der WDFen der Summanden resultiert. (13.9)
Ein einfaches Beispiel liefert die Addition zweier unabhängiger gleichverteilter stochastischer Variablen. Für den Fall der Addition zweier unabhängiger stochastischer Variablen, Y =aX 1 + bX 2, ergibt sich
"günstige Ereignisse"
I
Bild 13-2 Integrationsgebiet für die Verbund-WDF
unabhängig von den jeweiligen Verteilungen für den linearen Mittelwert und die Varianz der Summe.
(13.10) (13.11) Anmerkung: Für gewisse Anwendungen ist es manchmal nützlich zu wissen, dass jede Linearkombination gemeinsam normalverteilter stochastischer Variablen wieder auf eine Normalverteilung führt. Wendet man beispielsweise die FFf auf einen Block gaußverteilter stochastischer Variablen an, so sind die DFfKoeffizienten ebenfalls normalverteilt.
•
Zentraler Grenzwertsatz
Auf der Addition unabhängiger stochastischer Variablen beruht auch der zentrale Grenzwertsatz der Wahrscheinlichkeitsrechnung. Unter relativ allgemeinen Bedingungen kann gezeigt werden, dass die Überlagerung einer Vielzahl in ihrer Wirkung verschwindend kleiner zufälliger Beiträge auf eine normal verteilte Summenwirkung führt. Ein physikalisches Beispiel ist das thermische Rauschen in einem Widerstand, bei dem sich die irregulären Wärmebewegungen der Elektronen zu einer am Widerstand messbaren normalverteilten Spannung überlagern. Wir betrachten den Sonderfall unabhängiger identisch verteilter stochastischer Variablen mit den linearen Mittelwerten
11 und den Varianzen a 2 . Nach dem Grenzwertsatz von Lindeberg-
Levy [BSMM99] erhalten wir mit der Abbildung N
_ 1 セ@ Xj-J.l Y--..i..J-N j=l (J /.JN für N セ@
00
eine normierte normal verteilte stochastische Variable Y.
(13.12)
174
13 Stochastische Signale: LTI-Systeme
13.1.2
Vorbereitende Aufgaben
A13.1-1
Der MATLAB-Befehl "randn" erzeugt eine Musterfolge eines normierten Gaußprozesses. Geben Sie die nötigen MATLAB-Befehle an, um eine Musterfolge eines Gaußprozesses mit Varianz 0.5 und linearem Mittelwert 0.5 zu erzeugen.
MセN@ AI3.1-2 Betrachten Sie die Addition zweier unabhängiger in [0,1] gleichverteilter stochastischen Variablen. Zeichnen Sie in Bild 13-9 die resultierende WDP der Summe ein.
Hinweis: keine lange Rechnung erforderlich.
Bild 13-3 WDF der Summe zweier unabhängiger in [0,1] gleichverteilter stochastischer Variablen
13.1.3
o
Versuchsdurchführung Erzeugen Sie mit Hilfe von MATLAB jeweils zwei Musterfolgen, xr[n] und xz[n], von gegenseitig und in sich unabhängigen, in [0,1] gleichverteilten stochastischen Prozessen Xr[n] und Xz[n]. Durch Addieren der Elemente der beiden Musterfolgen, y[n] = xr[n] + x2[n], erzeugen Sie eine Musterfolge des Summenprozesses Y[n] = Xt[n] + Xz[n]. Messen Sie die WDP des Summenprozesses. Welche WDP ergibt sich? Geben Sie Ihr Messergebnis und die theoretische WDP gemeinsam graphisch aus. Hinweis: Verwenden Sie das Programm "dsplab13_1", das im Wesentlichen dem Programm "dsplab12_2" aus dem vorhergehenden Versuch entspricht.
o
Wiederholen Sie den Versuch für die Addition mehrerer Prozesse, z. B. 10. Welche WDP ergibt sich jetzt näherungsweise und warum? Kontrollieren Sie auch den linearen Mittelwert und die Varianz des Summenprozesses. Geben Sie Ihr Ergebnis und die approximierende WDP graphisch aus. Hinweis: Modifizieren Sie dazu das Programm "dsp1 ab 13_1" in geeigneter Weise.
o o
Kontrollieren Sie mit MATLAB Ihr Ergebnis aus der Vorbereitung A13.I-I. Addieren Sie nun elementweise die Musterfolgen zweier unabhängiger normalverteilter Prozesse X([n] und Xz[n] mit linearem Mittelwert 0.5 und Varianz 0.5. Welche WDP ergibt sich jetzt näherungsweise? Geben Sie Ihr Messergebnis und die theoretische WDP gemeinsam graphisch aus. Kontrollieren Sie auch den linearen Mittelwert und die Varianz des Summenprozesses Y[n].
I
13.2 Stochastische Signale und LTI-Systeme
o
175
Stören Sie das Sprachsignal "dsplab_speech. wav" mit additivem weißem gaußschen Rauschen. Stellen Sie das Verhältnis der Signalleistung zur Rauschleistung SNR (Signal-to-Noise Ratio) von 3 dB ein und hören Sie sich das verrauschte Signal an. Probieren Sie auch andere Werte für das SNR. Hinweis: Zur Einstellung des SNR benötigen Sie die mittlere Leistung des Sprachsignals und des Störsignals. Verwenden Sie das Programm "dsplab13_2".
13.2
Stochastische Signale und LTI-Systeme
13.2.1
Einführung
Durch Filterung eines stochastischen Prozesses mit einem zeitdiskreten kausalen und reellen LTI-System entsteht ein neuer Prozess, dessen Kenngrößen vom Eingangsprozess und dem System abhängen. Die wichtigsten Zusammenhänge zwischen den Prozesskenngrößen am Eingang und am Ausgang eines LTI-Systems sind in Tabelle 13-1 zusammengestellt. Besonders einfach ist der Fall weißen Rauschens am Eingang, da dann die Korrelation am Systemausgang bis auf einen konstanten Faktor, der Leistung am Eingang, durch das LTISystem bestimmt wird. Am Ausgang ergibt sich für die AKF des Prozesses die Zeit-AKF der Impulsantwort Ryy[l] = l-LSB fprintf('Error: coefficient overflow') end hq round(h*m)/m; hd = h - hq;
% quantized impulse response % impulse response error
202
15 Reale digitale Filter: Koeffizientenquantisierung
fprintf('impulse response\n') fprintf('index : design quantized : error\n') for k=l:length(h) fprintf (' %4i %7.4f %7.4f\n' ,k,h(k),hq(k),hd(k)) %7.4f end fprintf (' \n') % frequency response M = 1024; [H,f] = freqz(h,l,M); H = H.*(exp(j*(n/2)*f)); [Hq,f] = freqz(hq,l,M); Hq = Hq.*(exp(j*(n/2)*f)); [Hd,f] = freqz(hd,l,M); Hd = Hd.*(exp(j*(n/2)*f)); % maximum frequency deviation MAX = max(abs(real(H) -real(Hq))); fprintf('maximum deviation of magnitude of frequency response \n') fprintf('and upper error bound: %g
"0
.3 ·c Cl ca
0 0
E
2.5
f [Hz]
---7
2000
o
t [51
---7
254
17.8
17 Lösungen zu den Versuchen
Lösungen zu Versuch 8: Lineare zeitinvariante Systeme: FIR-Systeme
A8.2-1 Spiegelung der Nullstelle am Einheitskreis (Kehrwert des Betrages)
A8.2-2 Pole und Nullstellen von H I (z)
0- ,
Im
ZOI,Z
=-1 ± j-fi = J3 e±jZ.1863
Zool,Z
=0
(doppelter Pol) Re
A8.2-3 Das System H 1(z) ist maximalphasig A8.2-4 Impulsantwort
{h1[n J} ={I, 2, 3}
A8.2-S Signalflussgraph
A8.2-6 Impulsantworten korrespondierender minimal- und maximalphasiger Systeme Da das Systeme reell ist, gilt vor
ZOI
= pe jrp
und
ZOZ
= pe - jrp
und nach der Spiegelung
ZOlg
1'rp =-ei = zoz1
und
p
1 - jrp
ZOZ =-e g
P
-1
= ZoI
Für die Übertragungsfunktion mit den gespiegelten Nullstellen folgt daraus
H (z)= g
(z-zoi)(z-zül) zZ
ZZ(Z02- Z- I )(ZOI-Z-I)
=
Z
ZOlzOZz
I
=-_. ZoI ZOz
(zozz-I)(ZOlz-l)
I
=---z zOIZoZz
=
zZ
(Z-I-zoz)(z-I-zot)
-z
'-'_ _----'z-v. _ _ _-' H(z-l)
Die Impulsantwort erhält man aus der Rücktransformation der Übertragungsfunktion. Dabei [WerOO); für die Zeitverschiebung, sind die Sätze der z-Transformation, z. B. in x[n - no) HZ-no X (z) , und die Zeitumkehr, x[ -n) H X (z -I) , anzuwenden. Es ergibt sich
255
17.8 Lösungen zu Versuch 8: Lineare zeitinvariante Systeme: FIR-Systeme
1 hg [n]=--·h[-n+2] ZOlZo2 A8.2-7 Für das System mit den gespiegelten Nullstellen folgt -1)( -I) 2 (-I -I) -I-I - ( Z- Zol Z- z02 _ Z - ZOI + Z02 Z+ ZOI Z02 _ H Ig () Z -
z2
Z2
2 -I 1 -2 =1+_·Z 2 -I +_·Z 1 -2 =1--cosq>'z +_·Z
p2
P
3
3
und somit für die Impulsantwort
{hlg[n]} =
{l,j,±}
Kontrolle nach A8.2-6
AS.2-S Gruppenlaufzeit
Wir fassen die Beiträge einer Nullstelle pe- jtp und ihrer Spiegelung am Einheitskreis !e- jtp
p
zur Gruppenlaufzeit (8.17) zusammen und erhalten nach kurzer Zwischenrechnung, wie zu zeigen war, eine Konstante.
p-2 - p-I cos(D.-q» p2 _ pcos(D.-q» ----=._---'----'---'---'---- + 1- 2pcos(D.-q» + p2 1- 2p-1 cos(D. _q» + p-2
=
p2_pcos(D.-q» 1- 2pcos(D. -q» + p2
KセM⦅]N
=
1-pcos(D.-q» p2 - 2pcos(D.-q» + 1
= 1-2pcos(D.-q»+p2 =1 1- 2pcos(D. _q» + p2 Ein konstanter Beitrag in der Gruppenlaufzeit bedeutet wegen des differentiellen Zusammenhangs (8.16) einen linearen Beitrag zum Frequenzgang der Phase. AS.2-9 Kaskadenschaltung zu einem linearphasigen System.
1m
Mエ セ
n iセ@
mit den gespiegelten Nullstellen des Systems H I (z)
ZOI,2
1 ±j2.l863
= ..J3 e
- - -\;--- 19 .1=-"---"f--
Re
256
17 Lösungen zu den Versuchen
A8.2-10 Kaskadenschaltung von H 1(z) und H 2 (z) H3(Z)=Hl(Z).Hlg(Z)=(1+2Z-1
]セNHSKsコMQ@
= H 1g (z)
KSコMRINセHQ@
+Z-2)=
+ 14z-2 +Sz-3 +3z-4 ) 1 3
{h3 [nJ} = - ·{3,S,14,S,3} A8.2-11 Frequenzgang und Phase von H 3 (z) H 3(e jQ ) =セNH@
]セN・MェRqH@
3+8e- jQ + 14e- j2Q +8e- j3Q +3e- j4Q ) = 3e j2Q +8e jQ + 14+Se- jQ +3e- j2Q ) =
=.!... e- j2Q . (6cos(20) + 16cos(0) + 14) 3
Da der Term in der Klammer stets positiv ist, gilt für den Frequenzgang der Phase 1>.3(0) = 20
A8.2-12 Lineare Phase Bei linearem Verlauf des Phase treten keine Phasenverzerrungen auf, d. h. kein zeitliches Auseinanderlaufen der Spektralkomponenten, s. Beispiel in [WerOO]. zu 8.8.3 Versuchsdurchführung s. Programme "dsplab8_11", "dsplab8_12" und "dsplab8_13". Das minimalphasige System ist auch das "Minimum-delay"-System.
17.9
Lösungen zu Versuch 9: Lineare zeitinvariante Systeme: URSysteme
A9.5-1 Die Impulsantwort lässt sich mit Hilfe des Blockdiagramms bestimmen, wenn man die Werte der Signale an den entsprechenden Stellen Takt für Takt einträgt.
17.9 Lösungen zu Versuch 9: Lineare zeitinvariante Systeme: UR-Systeme
257
n=O
セ@
... 0. O. 0.1
n=O
セ@
.... 0.288. 1.0.8.1
Tabelle 9-1 Impulsantwort h[n] des Systems H 3(z)
i{ョ} セ@
h[n]
0
1
0.8
0.8
0
0.36 -0.512
1
1
0
-0.64
0.288
0.288
n
x[n]
x2[n]
0
1
0
I
0
2
3
g I
--_.-
A9.5-2 Die Zustandsgrößen beschreiben die inneren Speicher des Systems und müssen deshalb für eine kontinuierliche Verarbeitung gemerkt und wiederverwendet werden. s. Programm "iirdf2 t" und Testprograrnm "dsplab9_11" % filtering for k=1:1ength(x) y(k) = b(1)*x(k) + XI (1); XI(1) = b(2)*x(k) - a(2)*y(k) + XI(2); XI(2) = b(3)*x(k) a(3)*y(k); end xf = XI; % final conditions
A9.5-3 Nullstellen und Pole zu H 3 (z) ZOI,2 =±j
Zool,2 = 0.4 ± jO.6928
258
17 Lösungen zu den Versuchen
A9.5-4 Impulsantwort h3 [n] セ@
H 3 (z)
Partialbruchzerlegung, wobei die Symmetriebeziehungen für konjugiert komplexe Polpaare benutzt wird, z. B. [WerOO] Z2 +1 BO Bt B; -------,;-*-= -+---+--*Z(Z-Zool)(Z-Zool)
Z-Zool
Z
Z-Zool
mit · B0= 11m コセッ@
Z
2
+1
*
(z - zool )(z - Zool)
_1_ =_1_ =1.5625 * 0.64 Zool Zool
und BI
=
2 zセッャ@
tim
Z
z(z -
+;
=-0.2813 -
jO.7397
Zool)
Somit ergibt sich für die Übertragungsfunktion
Die Rücktransformation liefert h3 [n]
=BOt5[n] + (B1Z'::' l +.Bt*(Z:I)n)u[n] = =1.5625t5[n] + 0.8 n . (-Q.5626cos(1.0472n) + 1.4794sin(1.0472n) )u[n]
Kontrolle durch Auswerten obiger Gleichung mit MATLAB {h 3 [n]} = {I, 0.8,1,0.288, -0.4096, -0.5120, -0.1475, 0.2097, ... }
A9.5-5 Berechnung der Impulsantwort für einfache Pole, wie z. B. für System H 3(z) s. Programm "dsplab9_12" b
=
[1 0 1);
a= [1, -.8 _64); [r,p,k) = residue(b,a); %
n = 0:20; h = zeros(size(n)); for m=1:1ength(r) h = h + r(m)*p(m) .An; end if isempty(k)-=l h(l) = h(l) + k; end
% partial fraction expansion (residues, poles, and direct term) % normalized time variable % allocate memory for the impulse response % include all poles % add pole contribution to impulse response % add contribution of direct term
17.9 Lösungen zu Versuch 9: Lineare zeitinvariante Systeme: IIR-Systeme
259
A9.5-6 Berechnung der Sprungantwort für einfache Pole, wie z. B. für System H 3 (z) Für die Sprungantwort gilt h_ 1[n]
H(Z)l . Die Multiplikation des Nenners mit (I-i l ) kann l-zin MATLAB bei der Eingabe der Koeffizienten des Nennerpolynoms einfach berücksichtigt werden. Mit der Programmzeile a =
[a 0]
H
[0 a] ;
vor dem Befehl "residuez" erhält man die Sprungantwort, s. Programm "dsplab9_12". A9.5-9 Pol-Nullstellen-Diagramme mit dem minimalphasigen System links und dem AllpassSystem rechts
Im
Im
MセKNr・@
zu 9.7 Versuchsdurchführung SystemH3(z), s. Programme ,,rnagtfiir" con1our 1108$ of lH(z)1 _,.- - "'1- -
-T-,1_
_ .... iMセ@
5
" 4
I
_ J... "" {- .... -',
I
i
3
セR@
........1-"" :
⦅Miセ@
: I ..J _ ...... I I __
セM@
I
.... ,... I .... 1....
I
_
- -.-
セ@
'_..!.."',
.... J.I
I
I
1..... 1
,.....
I ....1...
..... ,I I I I .... ..J
.... 1....
I
I
....... I ..,
,'.J
I
.J
.... 1.... I I.... I 'i, I
I
:
セ@ セL@
...
I
セ@
, , , , セ@
o
1.5
mal part
-
Jmagtnary part r---j
raal part セ@
17 Lösungen zu den Versuchen
260 System H 3(z), s. Programme "dsplab9_13" Der Frequenzgang des Systems H 3(z) zeigt deutlich den Einfluss des konjugiert komplexen Polpaares und des konjugiert komplexen Nullstellenpaares mit den Betragsüberhöhungen bei den normierten Kreisfrequenzen der Pole ±1TI3 und den Nullstellen bei ±j, d. h. ±n:
1
i
セ@
Ferner sind die Gruppenlaufzeit und der Betragsfrequenzgang miteinander korreliert. Die Gruppenlaufzeit nimmt näherungsweise die größten Werte dort an, wo der Betragsfrequenzgang seine steilsten Flanken aufweist. Impulsantwort und Sprungantwort zeigen das für Tiefpässe typische Verhalten. Die Impulsantwort beginnt mit einem ausgeprägten Hauptbereich, der im Wesentlichen für die Glättung des Signals bei der Tiefpassfilterung (Faltung) verantwortlich ist.
4 イMセL@ Mセ@
,,""
... "
c:-
セG@
0
2!
I
1)("
0.5 '-' - - - -
I
:
."'5
3
.! - - - - '-'
|セ@
1- - - - - 4 - - - - -I
I
"5
'J
I -
-
-
'T - -
I
·1
N セ@
I
1\ l.l -
--0.5
-
-
x,,'
L
i =2 セ@
1
_ ::: :-. - -
- - - :: -
·1
Der Betragsfrequenzgang weist in erster Näherung TiefpassverhaIten auf. Signale bzw. Frequenzkomponenten mit normierten Kreisfrequenzen betragsmäßig größer ungefähr 1TI2 werden gedämpft, während Frequenzkomponenten bei kleineren Kreisfrequenzen verstärkt werden. Man beachte auch die Phasensprünge in den Nullstellen um den Wert Ir, da dort ein Vorzeichenwechsel im stetigen Frequenzgang auftritt.
- - -
I
I,
oL-----"-_----'---_-'-----' ·1 o
I
0 real part ....
0 111 ..... 6.-------
- 2 '----....,0\ - - - - - ' Om .....
Ohr .....
r/;,{ -j---" -- +--セM -L
Q セM⦅@
T ,;
E: 0 .s:::.
--
セU@
ᄋQ
セM
o
「jZGセB@
__
I セ@
___
" , ""
I I L ___ セ@
I
I
I
5
10
15
3
I セ@
__
I
___
セ@
I
,
t
,
20 n .....
25
30
__ _
,I
_I ___ -t _ _ _ "'" _ _ _ I- _ _ _ 1_ 1
I
35
40
Mセ@
, -
I
セ@
Mlセ@
T イMセ
i
___
I
-
-I -
-
-
.... -
I
I
I
25
30
35
-
-
E:2 セ@
5
10
15
20 n .....
40
Die Impulsantwort zeigt ebenfalls deutlich das typische Ausschwingen mit der dominanten Eigenkreisfrequenz des Systems. Im Beispiel ist die normierte Kreisfrequenz gleich der Phase des Polpaares von 1TI3. Die zugehörige Periode ist 21i/ (1TI3) = 6. Sie kann für n = 4 bis 9 und 10 bis 15 gut erkannt werden. Letzteres gilt auch für die Sprungantwort. Die Sprungantwort nimmt für große n den Wert des Übertragungsfaktors für eine Konstante ("Gleichspannung") am Eingang an, H(tf!) = H(z=l). Die Sprungantwort zeigt näherungsweise das Verhalten eines Tiefpasses.
17.9 Lösungen zu Versuch 9: Lineare zeitinvariante Systeme: IIR-Systeme
261
System H 5(z), s. Programme "dsplab9_13" 1.5 , - - - - - - - - - - ,
1
I
セ@ ;!; 0.5 -1
0
real part ..... T
0.5
i :J;.
-
i
g
0
a
セ。@
?i
イMセ⦅L@
0
_____ . . _____ _ I
-{I.S
.2 '--_ _--'-_ _---l
-1 -1
-1
0
0
Olle -+
Oh, .....
0.6 イMセ⦅L@ 0.4
I
.!.s 0.2 セ@ .s::::.
o Mサi
N R
1-'---.. ---.. ---.. --
セ@
o
I
セ@
-: - - I
Qt
I
- - -
I f.""I_1
LJt;8'tQ,
QU
イMセ@
Q Ilt-> T イMセ@
!3
---,---r--
22
__ ...J _ _ _ _ _ ...J __ _
I
}
,
T
I
セー@
I
,
ᄚP セM
,
I
- - - r----, - - -
o セN U Mセ
....
i セN U Mj@
0
1.5
0 .5
2
i セ@
c
"E
---.-..&'1- . . I
i !
1:
--,---
1.5
.'"
--
, ..
iセ@
I
I
.§ -I
2
3
a
I"....
-I
-2
0
1
' I
1
'
14 , I ° l---I---Y---,--,
.s Iif
0.5
0
2
Q In ....
Q I lt->
l/I I
'
;
I
I
I
2
0 real part .....
4
8
セ@
0
2
,
-I
1.5
,
--,---r-
.(l.5
]I
0.5
-
0.5
f
0
1.5
0.5
nlrt .....
Q In ....
2
Ci ]I
0
__ J ___
2.2
,
T
I
50 dB
-
4"ill == rnin(bO.os)
8min = 0.005
.1n =ns - n D a = -20 Ig o:" i" dB
t .1n = 0.06 1l a/dB = 46.02 dB
ß = 0.1102 · (a- - 8.7) ß = P N sXTR
NHセM
dB
RQ IPNT@
-
I
dB
21dB ::; a < 50dB
-
+
a
+0.07886 · ( - -21) dB
a< 2IdB
ß=O
Hilf größe
D = (aldB - 7.95) 114.36
I Filtergrad I)
N = 27d) / 6n Inächst größere oder gleiche gerade Zahl
ß= 4,091 D = 2.651 N=89
1) Ein gerader Filtergrad ist nicht unbedingt erforderlich.
zu 10.4.3 Versuchsdurchführung für den Entwurf wurde N = 92 gewählt, s. Programm "dsplabl 0_12" zu 10.5.3 Versuchsdurchführung Der FIR-Tiefpassentwurf mit dem Remez-Algorithmus und N = 56 erfüllt das Toleranzschema, s. Programm "dsplab1 0_1" Durch das "vollständige" Ausnutzen der Toleranzen kann das Toleranzschema hier bereits bei einem Filtergrad N = 56 statt 92 für die Fourier-Approximation mit Kaiserfenster realisiert werden.
267
17.10 Lösungen zu Versuch 10: Entwurf digitaler FIR-Filter FIR-Filterentwurf mit dem Remez-Algorithmus "dspl ab 1 0_1"
0.4 MセA
セ@ セ@
-+-セ@ セ@
0
10
t 0.2 '2
::e -0.2
セ@ Qセ@ セ@ セtイZャヲ@
+セ@ セ@ -+セ@ セ@
セ@ セ@ セ@
20
40
30 ョ
I I _ _ _ _ _ _ __ 1_ _ _ _ _ 1 _ _ _ _
t c:=
'Ql
セ@
__ __ L
0.5
OL-__
o
_
_ _ _ 1_
__ セ@
0.1
_ _ _ _ 1_
_ L_ _ _ _
0.2
I
..J ____ .J _ _ _ _ .J ___ _
_ _ _ ..J _ _ _ _ .J _ _ _ _
_ _ _ _ _ _ _ _ _ 1 _ _ _ _ _ 1 _ _ _ _ ..J _
__ l⦅Mセ@
0.3
50
セ@
____ セ@
0.4
0.5
__ セ@
0.6
,
__ セ@
__ セ@
0.7
0 .8
-',
-;
__ セ@
セ@
0 .9
Q itエセ@
I
I
,
t 60 ----r----r----r---äi セTP@ セ@
セ@
20
o o
,
}}\IJ\J'
}
}
\
::::f::::i:::::;:;;:::::i:::: I::: I:::;::::;:::: I
I
,
0.1
0.2
0.3
0.4
0.5 Q Qcセ@
0.6
0.7
0.8
0.9
268
17 Lösungen zu den Versuchen
Mit dem Programm "dsplabl0_13" (Remez-Algorithmus) wurde der unten gezeigte Entwurf für das Zweibandfilter durchgeführt.
I
I
I
I
----'-----r----'-----
0.4
- -
- -,- -
- -
-
T -
I
i
I
0.2
I
I
-
-
-
-,- -
-
-
.,.
-
I
I
I
I I
I
MGイtセL@
I
____
-0.2
o
I I セ@
I
I
_____ L ____ J __ _
I
I
10
20
_____ ⦅セ@
40
30 ョ
I
_____ L ____ セ@
I
j
I
I
I
I
50
60
70
80
セ@
- - - セ@ - - ,----X----r;:----'-"",,----;;;;:,-----. - - :- - - -
+- - - -'- - - - セ@ - - - -:- - - -
I
i 0.8 ----1.-aO.6
'Qj
セ@
0.4 0.2 0.1
0.2
0 .3
0.4
0.5
n Q Qエ
0.1
0.2
0.3
0.4
0.5
n Q Qエ
17.11
0.6
0.7
0.8
0.9
0.6
0.7
0.8
0.9
セ@
セ@
Lösungen zu Versuch 11: Entwurf digitaler UR-Filter
All.2-t Bode-Diagramme für Butterworth-Tiefpässe Mit a :J =-10 logto
IH (j"JI' =10 log 10 (I +[ セ@ j'N J ":""
20N -Iog to (
セ@
) wäch,t die
Dämpfung mit etwa 20·N dB pro Frequenzverzehnfachung (Dekade) bzw. 6·N dB pro Frequenzverdopplung (Oktave).
17.11 Lösungen zu Versuch 11: Entwurf digitaler UR-Filter
a(m)
i
269
TXセMイ@
dB
36 f----+-----+--I-+_+_ RTヲMKイWセ⦅N@
0 1/4
1/2
m/mo
All.2·2 Entwurfsparameter für den Butterworth-Tiefpass Durchlasstoleranz
8s = 0.0048
Sperrtoleranz セ]PNYU@
Durchlasskreisfrequenz ll!J = 21l" 3.4 kHz Sperrkreisfrequenz Hilfsparameter t: = 0.470 Filtergrad
lQ)
= 21l" 4 kHz
A= 208.3 3dB-Grenzkreisfre. ltb = 21l" 3.468 kHz
N =38
All.2·3 Entwurfsparameter für den Butterworth-Tiefpass mit reduzierten Anforderungen Durchlasstoleranz セ]PNQ@
Durchlasskreisfrequenz ll!J = 21l" 2 kHz Hilfsparameter t: = 0.484 N =3
Filtergrad
Sperrtoleranz
8s = 0.2
Sperrkreisfrequenz
lQ)
= 21l" 5 kHz
A = 4.899 3dB-Grenzkreisfre. ltb = 21l" 2.547 kHz
All.2·4 Pole des Butterworth-Tiefpasses mit reduzierten Anforderungen Index k Pol sセォ@
1 -2.547
2 2.547 . exp(j27t13)
3 2.547 . exp(-j27t13)
Im{s}
ReIs}
All.2·S Übertragungsfunktion des Butterworth-Tiefpasses mit reduzierten Anforderungen
17 Lösungen zu den Versuchen
270
All.2-6 Pole des zeitdiskreten Butterworth-Tiefpasses a=
1 O>JdB / %
.tan Q3dB 2
]⦅iNエ。ョセPQRWV@
2.547
10
Transformationsparameter a= 0.1276 Pole des zeitdiskreten zセャ@ = 0.5095 I Systems zセR@ = 0.6253 + jO.3934 zセS@
I
= 0.6253 - jO.3934
All.2-' u.8 Pole des zeitdiskreten Butterworth-Tiefpasses in der z-Ebene Im(z}
イKMエA
K
MKセ
セイG
GMLェ@
._--.. . . . , . . .
Re{z}
\
(dreifach)
⦅OセL@
\
j
nオャウ・ᄋMZAセC@ I
r-·--
I- . l - - - / ' - Ortskurve der Pole (Kreis)
All.2-9 Übertragungsfunktion des zeitdiskreten Butterworth-Tiefpasses in der z-Ebene HBW-TP(Z) =0.0181·
z3
3 2 Z +3z +3z+1 -1.7600· z2 + 1.1829· Z -0.2781
Zur Kontrolle des Filterentwurfs wurde das Programm "dsplabll_ll" erstellet. Neben den Pol-Nulstellendiagramm und den Freqeunzgängen in der s- und z-Ebene, wurden die untenstehenden Pole und Filterkoeffizienten berechnet. s1 -2.5000 + j * ( 0.0000) -1.2500 + j * ( 2.1651) s2 -1.2500 + j * ( -2.1651) s3 aO 1.0000 bO 0.0000 0.0000 a1 5.0000 ; b1 a2 12.5000 ; b2 0.0000 15.6250 ; b3 1.0000 a3 alpha = 0.129968
z1 z2 z3 aO a1 a2 a3
0.5095 + j * ( 0.0000) 0.6253 + j * ( 0.3934) 0.6253 + j * ( -0.3934) 1. 0000 bO 1. 0000 -1.7600 b1 3.0000 1.1829 b2 3.0000 -0.2781 b3 1. 0000
17.11 Lösungen zu Versuch 11: Entwurf digitalerIIR-Filter
271
zu 11.3.2 Versuchsdurchführung die Lösung von Al 1.2-9 lässt sich beispielsweise durch folgende Programmzeilen durchführen b = 0.0181* [1 3 3 1] i a = [1 -1. 76 1.1829 -0.2781] i iirplotfd(b,a) Anmerkung: Bei der Berechnung der Gruppenlaufzeit tritt ein numerischer Fehler bei "taug (1)" auf, weshalb das Programm im Vergleich zu Versuch 9 modifiziert wurde.
1
t
0.5
!i ä. 2:'
セOイ@
j" - - ',..---
I-----.F - - r
I
t
/"
I
I
- セ@
I
- - -:- -
- -", - -
"l!g.
:'
.E_ .(l.S
I ,
- -
"I "
I
I
I
i セ@
)(:
_1- - - '- I
I
iセ@
T
/
1
{ L
:f 0.5
I
I.;
I
",:.1:. __ !..
_1 -
.(l.5
·1
NL|セ@
I
:
-.J
,I
-1- - -,.. - -
,
L\
セ@ - - NAZセ@
.1
I
1.5 イMセL⦅@
I
-:-x-
I
I
0
,.... "
0
0 .5
real pari ..... T
NMLセ@
, - - -,-, - - -, -
3
- -
-,,-
- -
-I -
-
i
"2
-
-
,,
-1- _ _ _ _ -
Ci
"JS
1 o
lMセ@
- - -,-
·1
-
-
- -,- - - ... - - 1
,
o
.(l.S
0
0 .5
lMセ@
o
.(l.5
·1
0.5
Q l n .....
Q I n .....
IIR-Filterentwurf mit dem Programm "dsplabll_2" mit den Entwurfsparametem, s.
0= 2lrf 20kHz Durchlasskreisfrequenz (pass band) ,Qg / Sperrkreisfrequenz (stoppband) Os.. / ⦅Mセ
Durchlasstoleranz Sperrtoleranz
Os
8v
Ir
034 0.4
Ir セN@
0.095 0.0048
= i I
Bei der Berechnung der Nullstellen des Butterworth-Tiefpasses 30. Grades treten numerische Ungenauigkeiten auf, so dass nicht alle 30 berechneten Nullstellen bei -1 liegen. Vor einer praktischen Anwendung des Filters sollte von Hand eine entsprechende Korrektur der Zählerkoeffizienten vorgenommen werden.
17 Lösungen zu den Versuchen
272
Ebenfalls zu beobachten sind numerische Problem bei der Berechnung der Phase und der Gruppenlaufzeit im Sperrbereich bei sehr großen Dämpfungen, d. h. sehr kleinen Werten des Frequenzganges. Sie sind für die Anwendung bedeutungslos und können ignoriert werden.
Butterworth lowpass design 0.5
i .':! E
filter order N = 30 passband del.1ation Dp = 0.095
.Q.5
-
Qrlrt = 0.34
passband cutoff frequency
0
stopband cutoff frequency
w/rt= 0.4
stopband del.1ation Ds = 0.0048 -1
-2
0 Re{z} セ@
1.5 ,----.----,---r-,----r----,
,
i-=j:=-n---
i
N セ@
g
_1- -
-
L - --
-
,
,
____ ,____ L __ _
,
0.5
o セMl@
o
0.2
0.4
,
0.6
i
15
I':
::::. 10
c:
-
-
-
,
T -
LI 5 - - - TI -
0.8
0.2
-
-
r - - -
- -, - - - -.- - - -
r---
-
-
-1- -
-
I
I
0.4
0.6
-
I
0 .8
100 _______ l __ _
80
i
I
2 (;f
, ,
_ _ _ J. _ _
40
,
I
I
"
-.l.
_
_ ___ , ____ l. __ _
,
_ _ _ _ 1_ _ _ _
20 0
,
___ J. ___ .J ____ 1_ _ _ _ l __ _
äi 60 セ@
I
0
0.2
0.4 Q ヲ Qエセ@
0.6
1. __ _
0.8
40
i
9...
20
0 -20
, ,
,
___ .1. ___ J ____ ' ___ _
,,
___ J.. ___ J _ _ _ _ 1_ _ _ _ I
,
0.2
0.4 q
0.6 O Qエ
_ __
0.8
セ@
Auch bei der Berechnung der Nullstellen des Chebyshev-I-Tiefpasses 11. Grades treten numerische Ungenauigkeiten auf, so dass nicht alle 11 Nullstellen bei -1 liegen. Vor einer praktischen Anwendung des Filters sollte von Hand eine entsprechende Korrektur der Zählerkoeffizienten vorgenommen werden. Wieder zu beobachten sind numerische Probleme bei der Berechnung der Phase und der Gruppenlaufzeit im Sperrbereich bei sehr großen Dämpfungen, d. h. sehr kleinen Werten des Frequenzganges. Sie sind für die Anwendung bedeutungslos und können ignoriert werden.
17.11 Lösungen zu Versuch 11: Entwurf digitaler UR-Filter
r
.,-r . . . - ---r---
I
セU@
I
i
Mglイxセ
......
....
Chebyshev I lowpass design
I I
x,
I
セ@
I
X,,
セ@
t
X •
filter order N = 11 pass band cutoff frequency Qp/7t= 0.34
e-----:- ----4 - - -
o --セU@
Mセク[
,
"
t
MセZNG
-1
セ@
I
/
-1
セ^sG@
= 0.095
passband delAation 0p
stopband cutoff frequency ros'7t = 0.4 stopband delAation Os = 0.0048
t
0
273
1
Re{z} セ@
1.5 . - - - , - -- . - - - , - -,---...,
i
N セ@ セ@
1 I/" - - - -', - - - -
---f---iMセ@ ,
0
- - - -:.\- - - -
..(l.5
, 0 G MセZNq
M
-1
Chebyshev 11 lowp8ss design
>d
"
セ@
) セO@
- - I
filter order N = 11 passband cutoff frequency
---
n lTt = 0.34
pass band deloiation Dp = 0.095
----
stopband cutoff frequency
"
mirt = 0.4
stopband deloiation Ds =0.0048
-1
0 r・サコスセ@
3
1.5 ,--..,----,..----.,,----..,----,
, ,
g
,
,
LMGZセ 1----'-,- - \
i
N セ@
,
___ lI
0.5
o o
i ____ '" ____ L __ _
,
--
0.4
-'-_-'-_-I
0.6
0 .8
100 ,--,--".---,---.,-,---,
'"
40
o
___ 1 __ _
__ __ 1_ _ _ _
I
,
---: セ
o
,
I
a:0 -1
0.2
0
0.6
0.4
0.8
30
r - --
I
20
,
I
80 MセZ@
9.
,
___ 1____ L ___
セ@
_ _
0.2
, ,
___ l __
2
セMl@
0.2
L __ _
I
___ 1____ L __ _
-1 ----:- ---:- -I
o
I
0.4
n Qエ
0.6
0.8
セMl
o
0.2
Mセ@
0 .4
0.6
0.8
セ@
Die Abschätzung der Komplexität der Filter geschieht mit Hilfe der Zahl der notwendigen Multiplikationen. Bei einer Implementierung in der Direktform 11, s. Bild 11-1, benötigen IIRFilter vom Grad N genau 2N+ 1 Multiplikationen. Im Falle der FIR-Tiefpässe mit Grad N ergeben sich N+l Multiplikationen, s. Bild 10-1. Wegen der Symmetrie der Koeffizienten aufgrund der verallgemeinerten linearen Phase kann hier durch eine Realisierung mit Zusammenfassen von jeweils zwei Eingangswerten die Zahl der Multiplikationen etwa halbiert werden. Der Komplexitätsvorteil des Cauer-Tiefpasses verringert sich dann im Vergleich zum FIR-Tiefpass mit Chebyshev-Approximation auf etwa den Faktor 2.2. Eine Entscheidung für eine FIR- oder IIR-Implementierung sollte vor dem Hintergrund der "günstigen Eigenschaften" von FIR-Filtern und eventueller Implementierungsvorteile auf der Zielhardware, z. B. einem digitaler Signalprozessor, unter Berücksichtigung aller relevanten Faktoren sorgfältig abgewogen werden.
17.11 Lösungen zu Versuch 11: Entwurf digitaler IIR-Filter Tiefpass
r
Struktur I Grad
fセr@
Fourier-Approximation 1,3
..
275 relative Komplexität
I Zahl der Multiplika-
-92ヲMエゥッセョYOS@
z・HTWゥエIscィイセ⦅@
7.2 (3.6) 56 +-1. -5-7-(2-9-)--+---4-.4-(-2.-2)--B-u-tt-er-w-o-rt-h-----t---I-IR ---l!--3-0- I - --6-1---+---4-.-7- - -
MGセK
Mcィ・「ケウカZRGSエセfir@
セ@
irMゥャセ@
Chebyshev-I Chebyshev-U
UR
1:1 11!
Cauer
UR
6
23 23
j'
Mェセ@
M⦅NセK
\
1.8 1.8
13
1
I
I) Entwurf mit Kaiserfenster; 2) Entwurf mit Remez-Algorithmus; 3) Versuch 10
----:- -ö--.... ; I
0.5
i
N
-
-
-
セ@
-
-
-
X
,
-
1I
I
I
I
I'
I
- 7- - - セ@
I
I
-1-1 -
-
'\
-
-0.5
-
-
-
-1"\ -
I
MGセ
-1
'\
-
0.
-
-
,
-
-
X
'. \
X
I'I
I
/,'
I
-1
-
-
-
filter order N = 6 passband cutoff frequency np/rt = 0.34
t----
passband delAation 0p = 0.095
- ? T -
-
Cauer lowpass design
I
- .. ,. -
I I - - - -1- - - - - , - - - - -
0
E
-
-
-
-
-1- -
-
stopband cutoff frequency ros'1t = 0.4 stopband delAation Os = 0.0048
0 Re{z} セ@
1 V-
'\ /
\1
2 0.6
---
N セ@ i' 0.4
-
T--
-
- .- -
-
-
-
-.- -
, -
, -
-1- -
--
, ----.--------
,
-- -
-
,
- - - セ@ - -
0.2
,
,
- - - セ@ - -
0.8
I
-
1 - -
-
-
,
_1- _ _ _ 1_ _ _ _
-1
0.2 QP
0.4
0.6
0.8 UP
イMLセ⦅N@
セ@
---T----_1._-,
60 セ@
g '"
40
i
---t--
20 P
___ J ____ I _ _ _
__L __ _l⦅セ@
VM「セl⦅@
o
,
, ,
I
0.2
0.4
n iイエセ@
0.6
0.8
0 .4
- - -
セ@
! - I ,
10 セ@ - - - T セ@
,
, .. -
,
, -
-
-, -
, -
-
-1- -
-
-
1 - - - -' - - - -'- - - I I
I I
I I
I
I
0.4
0.6
0 .8
-I \: ----: ----:- ---
O L---L-__セ]@
o
0 .8
, - - - i - - - -,- - - -
, ---.---
30
0 .6
,
Mセ
g 20 _
0.2
イMNLセ@
40
80
.J.
o
0.2
n Qエセ@
276
17 Lösungen zu den Versuchen
zu 11.4.2 Versuchsdurchführung s. Programm "dspl ab 11_3 " Als Beispiel ist hier die Bandsperre angegeben. Sie können sich beispielsweise mit Hilfe der Zoom-Funktion in MATLAB das "Equiripple-Verhalten" im Durchlass- und im Sperrbereich genauer ansehen.
--NセLM@
I ,. - - - -1--'- -
0.5
i
E
Mセゥ
0
!:!-
IJ /
-x-
1 -1-
-x- -
1 I
:
セ|@
,x..,
セ@
-1 l,:-:...:.-..:...:--=.C--=--::":-セセZNゥ]j@
-1
filter order N = 12 lower passband edge frequency n p /1t= 0.35 lower stopband edge frequency cos/1t= 0.4 upper stopband edge frequency COs-}1t= 0.6 upper passband edge frequency n p-}1t= 0.7 passband deloiation 0p = 0.01 stopband deloiation Os = 0.001
-'-i\, - - - -
..x.. - _',セ@ - - -,>