137 57 9MB
German Pages 232 Year 2008
Martin Werner
Digitale Signalverarbeitung mit MATLAB-Praktikum
Aus dem Programm Informationstechnik
Mikrowellenelektronik von W. Bächtold Telekommunikation von D. Conrads Hochfrequenztechnik von H. Heuermann Signalverarbeitung von M. Meyer Grundlagen der Informationstechnik von M. Meyer Kommunikationstechnik von M. Meyer Digitale Signalverarbeitung mit MATLAB von M. Werner Nachrichtentechnik von M. Werner Nachrichten-Übertragungstechnik von M. Werner Netze, Protokolle, Schnittstellen und Nachrichtenverkehr von M. Werner Mikroprozessortechnik von K. Wüst
vieweg
Martin Werner
Digitale Signalverarbeitung mit MATLABPraktikum Zustandsraumdarstellung, Lattice-Strukturen, Prädiktion und adaptive Filter Mit 118 Abbildungen, 29 Tabellen und zahlreichen Praxisbeispielen
Studium Technik
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliographie; detaillierte bibliografische Daten sind im Internet über abrufbar.
1. Auflage 2008 Alle Rechte vorbehalten © Friedr. Vieweg & Sohn Verlag | GWV Fachverlage GmbH, Wiesbaden, 2008 Lektorat: Reinhard Dapper Der Vieweg Verlag ist ein Unternehmen von Springer Science+Business Media. 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. Technische Redaktion: FROMM MediaDesign, Selters/Ts. Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de Druck und buchbinderische Verarbeitung: MercedesDruck, Berlin Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Printed in Germany ISBN 978-3-8348-0393-1
V
Vorwort Von vielen unbemerkt hat sich die digitale Signalverarbeitung als Schlüsseltechnologie in unserem Alltag etabliert. Zum Beispiel sorgt sie für effizientere und umweltfreundlichere technische Prozesse im Motorenmanagement oder zusätzliche Sicherheit in Anti-BlockierSystemen. Als „intelligenter“ Teil eingebetteter Systeme rückt die digitale Signalverarbeitung nahe an die physikalischen Prozesse heran. Damit verbunden sind oft stark einschränkende Randbedingungen, die bei der digitalen Signalverarbeitung berücksichtigt werden müssen. Vor diesem Hintergrund will das Buch in Form eines Praktikums mit MATLAB®1 Inhalte und Kompetenzen vermitteln, die über den Rahmen eines üblichen Grundkurses hinausgehen. Es werden MATLAB-Versuche aus fünf Themenfeldern angeboten: x die Zustandsraumdarstellung und reale digitale Filter ) Versuche 1 bis 7 x die Lattice-Strukturen
) Versuche 8 und 9
x die lineare Prädiktion
) Versuche 10 und 11
x die Fehlerquadratmethode
) Versuche 12 und 13
x adaptive FIR-Systeme
) Versuch 14 bis 16
Die Zustandsraumdarstellung wird mit besonderem Blick auf reale digitale Filter in Festkomma-Arithmetik behandelt. Mit der rauschminimalen Normalform wird eine gegen Wortlängeneffekte robuste Implementierung bereitgestellt. Ein ausführliches Fallbeispiel fasst die Ergebnisse zusammen. Eine weitere Alternative zur Implementierung digitaler Filter stellen die Lattice-Strukturen dar. Auch sie sind relativ robust, besitzen jedoch weitere Eigenschaften, die sie besonders für die adaptive Audiotechnik, z. B. als Prädiktionsfilter, interessant machen. Die lineare Prädiktion verlangt die Anwendung statistischer Methoden und der Wahrscheinlichkeitsrechnung. Sie öffnet die Tür für die weiteren Themen des Praktikums. Die Fehlerquadratmethode ist der Basis-Algorithmus für viele Anwendungen, wie der Entzerrung, der Systemidentifikation und der adaptiven Signalverarbeitung. Am Beispiel von FIR-Systemen wird die Adaption vorgestellt. Zwei wichtige Algorithmen zur Adaption, der LMS- und der RLS-Algorithmus, werden behandelt. Zu jedem Versuch gibt es definierte Lernziele und eine kompakte Einführung. Die Versuchsvorbereitung ist ein wesentliches Element des Praktikums und kann je nach Vorkenntnissen unterschiedlich lang dauern. Die Versuche sind so gestaltet, dass bei guter Vorbereitung, die Bearbeitungszeit am PC etwa 4 Stunden nicht übersteigen soll. Es war leider nicht möglich, alle Versuche gleich aufwändig zu gestalten. Viele Aufgaben sind mit Lösungshinweisen versehen. Der ausführliche Lösungsteil am Ende des Buches unterstützt das effektive Erarbeiten des Lernstoffes und ermöglicht die Erfolgskontrolle. Zahlreiche Beispielprogramme und Simulationsbeispiele erleichtern das Bearbeiten der Versuche.
1
MATLAB® ist ein eingetragenes Warenzeichen der Firma The MathWorks, Inc., U.S.A., www.mathworks.com.
VI
Vorwort
Bei der Auswahl der Themen und der Gestaltung der Versuche wurde darauf geachtet, nur auf Kenntnisse eines typischen Grundkurses der digitalen Signalverarbeitung aufzubauen. Eine Bearbeitung der Versuche im Buch „Digitale Signalverarbeitung mit MATLAB. Grundkurs mit 16 ausführlichen Versuchen“ des Autors wird nicht vorausgesetzt. Gegebenenfalls sind fehlende Grundlagen in der digitalen Signalverarbeitung nachzuholen. Die Versuche werden mit der Simulationssprache MATLAB am PC durchgeführt. Erste Erfahrungen in MATLAB sind nützlich, aber nicht erforderlich. Bei Bedarf hilft der Anhang „Erste Schritte in MATLAB“ beim Einstieg. Zum besonderen didaktische Konzept des Praktikums gehört es, die Aufgaben mit elementaren MATLAB-Befehlen zu lösen, um so möglichst freien Blick auf die Algorithmen der digitalen Signalverarbeitung zu schaffen. Alle für das Praktikum erstellten Programme können leicht abgeändert und erweitert werden. Die Experimente lassen sich nach persönlichen Bedürfnissen und Interessen modifizieren. Zum Buch sind über 140 Programme und Datensätze entstanden, die auf den Web-Seiten des VIEWEG Verlages, www.vieweg.de, kostenlos erhältlich sind. Technische Hinweise und Softwarekompatibilität Um Verwechslungen vorzubeugen, werden Schreibweisen und Begriffe verwendet, wie sie in MATLAB gebraucht werden. Dies betrifft besonders den Dezimalpunkt und die Bereichsangaben für Laufindizes. MATLAB-Befehle, Programmvariablen u. Ä. werden durch die Schriftart kenntlich gemacht. Alle Programme wurden mit der MATLAB Version 7.3 (R2006b) getestet. Da möglichst einfache Befehle verwendet wurden, sollten die Programme auch mit der MATLAB Version 6 lauffähig sein. MATLAB verfügt über eine umfassende und gut organisierte Online-Hilfe. Aus diesem Grund wird hier nur ein kurzer Einführungsteil als Anhang mitgeliefert. Für manche Aufgaben und Beispielprogramme ist das Zusatzpaket Signal Processing Toolbox erforderlich. Es ist in der aktuellen Studentenversion 2007a enthalten. Weitere Informationen zu MATLAB sind über die Startseite der Firma The MathWorks Inc. (U.S.A.), www.mathworks.com oder bei der deutschen Niederlassung The MathWorks GmbH. www.mathworks.de, zu finden. Danksagung Für die freundliche Unterstützung bedanke ich mich bei der Fa. The MathWorks und beim Vieweg Verlag. Mein besonderer Dank gehört Herrn Dipl.-Ing. (FH) Bernd Heil für seine tatkräftige Unterstützung im Nachrichtentechnik-Labor der Hochschule Fulda.
Fulda, im September 2007
Martin Werner
VII
Inhaltsverzeichnis Vorwort ..............................................................................................................................
V
1
Zustandsraumdarstellung digitaler Systeme ............................................................ 1.1 Einführung .......................................................................................................... 1.2 Zustandsgrößen und Zustandsraumdarstellung ................................................... 1.2.1 Systeme 2. Ordnung................................................................................ 1.2.2 Systeme höherer Ordnungen................................................................... 1.3 Übertragungsfunktion ......................................................................................... 1.4 Eigenwert, Eigenvektor und charakteristisches Polynom ...................................
1 1 2 2 7 9 10
2
Diagonalform und Normalform ................................................................................. 2.1 Einführung .......................................................................................................... 2.2 Modalmatrix und Diagonalform.......................................................................... 2.3 Ähnlichkeitstransformation................................................................................. 2.4 Normalform.........................................................................................................
14 14 14 16 19
3
Skalierung und Koeffizientenquantisierung ............................................................. 3.1 Einführung .......................................................................................................... 3.2 Skalierung der Systeme....................................................................................... 3.2.1 Ziele der Skalierung................................................................................ 3.2.2 Überlaufwahrscheinlichkeit .................................................................... 3.2.3 Vorbereitende Aufgaben......................................................................... 3.2.4 Versuchsdurchführung............................................................................ 3.3 Koeffizientenquantisierung ................................................................................. 3.3.1 Zahlendarstellung im Zweierkomplement-Format ................................. 3.3.2 Vorbereitende Aufgaben......................................................................... 3.3.3 Versuchsdurchführung............................................................................ 3.4 Fallbeispiel: Cauer-Tiefpass 6. Ordnung............................................................. 3.4.1 Filterentwurf, Kaskadenform und Pol-Nullstellenaufteilung.................. 3.4.2 Versuchsdurchführung............................................................................
25 25 25 25 27 27 28 28 28 29 30 30 30 31
4
Skalierung der Zustandsvariablen............................................................................. 4.1 Einführung .......................................................................................................... 4.2 Impulsantworten.................................................................................................. 4.2.1 Impulsantwort des Systems..................................................................... 4.2.2 Teilimpulsantworten der Zustandsvariablen ........................................... 4.2.3 Skalierung der Zustandsvariablen nach der l2-Norm .............................. 4.2.4 Versuchsdurchführung............................................................................ 4.3 Kovarianzmatrix der Zustandsvariablen.............................................................. 4.3.1 Definition der Kovarianzmatrix K.......................................................... 4.3.2 Berechnung der Kovarianzmatrix K ....................................................... 4.3.3 Vorbereitende Aufgaben......................................................................... 4.3.4 Versuchsdurchführung............................................................................
35 35 35 35 36 38 38 41 41 42 44 44
VIII
Inhaltsverzeichnis
5
Quantisierte Arithmetik und inneres Rauschen ....................................................... 5.1 Einführung .......................................................................................................... 5.2 Quantisierte Arithmetik....................................................................................... 5.3 Inneres Rauschen ................................................................................................ 5.3.1 Lineares Ersatzsystem mit Akkumulatoren ............................................ 5.3.2 Vorbereitende Aufgaben......................................................................... 5.3.3 Versuchsdurchführung............................................................................ 5.4 Rauschzahl .......................................................................................................... 5.4.1 Leistung des inneren Rauschens ............................................................. 5.4.2 Berechnung der Leistungsübertragungsfaktoren..................................... 5.4.3 Vorbereitende Aufgaben......................................................................... 5.4.4 Versuchsdurchführung............................................................................
46 46 46 48 48 49 51 53 53 54 55 55
6
Rauschminimale Normalform.................................................................................... 6.1 Einführung .......................................................................................................... 6.2 Rauschzahl und Ähnlichkeitstransformation....................................................... 6.3 Systeme 2. Ordnung in rauschminimaler Normalform ....................................... 6.3.1 Konstruktion der rauschminimalen Normalform .................................... 6.3.2 Vorbereitende Aufgaben......................................................................... 6.3.3 Versuchsdurchführung............................................................................ 6.4 Abhängigkeit der Rauschzahl von der Lage der Pole.......................................... 6.4.1 Einführung .............................................................................................. 6.4.2 Vorbereitende Aufgaben......................................................................... 6.4.3 Versuchsdurchführung............................................................................
56 56 56 58 58 59 60 60 60 61 62
7
Fallbeispiel: Cauer-Tiefpass ....................................................................................... 7.1 Einführung .......................................................................................................... 7.2 Versuchsdurchführung: Ideales System .............................................................. 7.3 Versuchsdurchführung: Reales System............................................................... 7.4 Versuchsdurchführung: Kanonische Direktform II und DGL.............................
64 64 64 65 66
8
Lattice-Strukturen für FIR- und All-pole-Systeme.................................................. 8.1 Einführung .......................................................................................................... 8.2 FIR-Systeme in Lattice-Struktur ......................................................................... 8.2.1 Grundlagen ............................................................................................. 8.2.2 Vorbereitende Aufgaben......................................................................... 8.2.3 Versuchsdurchführung............................................................................ 8.3 All-pole-Systeme in Lattice-Struktur .................................................................. 8.3.1 Grundlagen ............................................................................................. 8.3.2 Vorbereitende Aufgaben......................................................................... 8.3.3 Versuchsdurchführung............................................................................
68 68 68 68 72 72 73 73 76 76
9
Lattice-Strukturen für IIR-Systeme .......................................................................... 9.1 Einführung .......................................................................................................... 9.2 Modifizierte Lattice-Strukturen........................................................................... 9.2.1 Grundlagen ............................................................................................. 9.2.2 Versuchsdurchführung............................................................................ 9.3 IIR-Systeme in Lattice-Struktur .......................................................................... 9.3.1 Grundlagen ............................................................................................. 9.3.2 Vorbereitende Aufgaben......................................................................... 9.3.3 Versuchsdurchführung............................................................................
77 77 77 77 79 79 79 82 82
Inhaltsverzeichnis 9.4
IX
Durchstimmbare rekursive Filter in Lattice-Struktur .......................................... 9.4.1 Grundlagen ............................................................................................. 9.4.2 Vorbereitende Aufgaben......................................................................... 9.4.3 Versuchsdurchführung............................................................................
83 83 84 85
10 Lineare Prädiktion ...................................................................................................... 10.1 Einführung .......................................................................................................... 10.2 Modellprozess ..................................................................................................... 10.3 FIR-Systeme zur Prädiktion ................................................................................ 10.3.1 Normalengleichungen............................................................................. 10.3.2 Orthogonalität ......................................................................................... 10.3.3 Prädiktionsgewinn .................................................................................. 10.3.4 Vorbereitende Aufgaben......................................................................... 10.3.5 Versuchsdurchführung............................................................................
86 86 87 89 89 91 92 92 93
11 Levinson-Durbin-Algorithmus und linearer Prädiktor in Lattice-Struktur.......... 94 11.1 Einführung .......................................................................................................... 94 11.2 Levinson-Durbin-Algorithmus............................................................................ 95 11.3 Linearer Prädiktor in Lattice-Struktur................................................................. 99 11.4 Vorbereitende Aufgaben ..................................................................................... 100 11.5 Versuchsdurchführung ........................................................................................ 100 12 Entwurf von nichtrekursiven Entzerrern mit der Fehlerquadratmethode............ 12.1 Einführung .......................................................................................................... 12.2 FIR-Systeme zur Kanalentzerrung ...................................................................... 12.3 Vorbereitende Aufgaben ..................................................................................... 12.4 Versuchsdurchführung ........................................................................................
102 102 102 104 104
13 Systemidentifikation mit der Fehlerquadratmethode .............................................. 13.1 Einführung .......................................................................................................... 13.2 FIR-Systeme zur Systemidentifikation ............................................................... 13.2.1 Grundlagen ............................................................................................. 13.2.2 Vorbereitende Aufgaben......................................................................... 13.2.3 Versuchsdurchführung............................................................................ 13.3 IIR-Systemidentifikation..................................................................................... 13.3.1 Grundlagen ............................................................................................. 13.3.2 Vorbereitende Aufgaben......................................................................... 13.3.3 Versuchsdurchführung............................................................................ 13.4 Sytemidentifikation mit den MATLAB-Funktionen lpc, prony und stmcb ........ 13.4.1 Grundlagen ............................................................................................. 13.4.2 Versuchsdurchführung............................................................................
106 106 106 106 108 109 110 110 112 113 113 113 115
14 Adaptives FIR-System ................................................................................................ 14.1 Einführung .......................................................................................................... 14.2 Grundlagen.......................................................................................................... 14.2.1 MMSE-Lösung ....................................................................................... 14.2.2 Adaptionsalgorithmus............................................................................. 14.2.3 Konvergenzverhalten und Lernkurve...................................................... 14.3 Vorbereitende Aufgaben ..................................................................................... 14.4 Versuchsdurchführung ........................................................................................
118 118 118 118 119 120 122 122
X
Inhaltsverzeichnis
15 Least-Mean-Square-Algorithmus .............................................................................. 15.1 Einführung .......................................................................................................... 15.2 Grundlagen.......................................................................................................... 15.2.1 Hauptachsentransformation und Inverse der Korrelationsmatrix ........... 15.2.2 Methode des steilsten Abstiegs............................................................... 15.2.3 LMS-Algorithmus................................................................................... 15.2.4 Varianten des LMS-Algorithmus............................................................ 15.2.5 Fehlanpassung......................................................................................... 15.3 Versuchsdurchführung ........................................................................................
126 126 127 127 128 129 130 131 133
16 Recursive-Least-Squares-Algorithmus...................................................................... 16.1 Einführung .......................................................................................................... 16.2 Grundlagen.......................................................................................................... 16.3 Vorbereitende Aufgaben ..................................................................................... 16.4 Versuchsdurchführung ........................................................................................
137 137 138 140 141
17 Lösungen zu den Versuchen ....................................................................................... 17.1 Vorbemerkung..................................................................................................... 17.2 Lösungen zu den Versuchen 1 und 2................................................................... 17.3 Lösung zu Versuch 3: Skalierung und Koeffizientenquantisierung ................... 17.4 Lösung zu Versuch 4: Skalierung der Zustandsvariablen ................................... 17.5 Lösung zu Versuch 5: Quantisierte Arithmetik und inneres Rauschen ............... 17.6 Lösung zu Versuch 6: Rauschminimale Normalform ......................................... 17.7 Lösung zu Versuch 7: Fallbeispiel: Cauer-Tiefpass............................................ 17.8 Lösung zu Versuch 8: Lattice-Strukturen für FIR- und All-pole-Systeme.......... 17.9 Lösung zu Versuch 9: Lattice-Strukturen für IIR-Systeme................................. 17.10 Lösung zu Versuch 10: Lineare Prädiktion ......................................................... 17.11 Lösung zu Versuch 11: LD-Algorithmus u. linearer Prädiktor in Lattice-Struktur ............................................................................................... 17.12 Lösung zu Versuch 12: Entwurf von nichtrekursiven Entzerrer ......................... 17.13 Lösung zu Versuch 13: Systemidentifikation mit der Fehlerquadratmethode..... 17.14 Lösung zu Versuch 14: Adaptives FIR-System .................................................. 17.15 Lösung zu Versuch 15: Least-Mean-Square-Algorithmus .................................. 17.16 Lösung zu Versuch 16: Recursive-Least-Squares-Algorithmus..........................
146 146 146 147 154 160 162 164 171 173 178
A
201 201 201 201 201 203 203 204 207 210 211 214 216
B
Erste Schritte in MATLAB ........................................................................................ A.1 Einführung .......................................................................................................... A.2 Programmstart und einfache Befehle .................................................................. A.2.1 MATLAB-Entwicklungsumgebung........................................................ A.2.2 Einfache arithmetische Operationen ....................................................... A.2.3 Konstanten und Variablen....................................................................... A.2.4 MATLAB help-Kommando.................................................................... A.2.5 Vektoren und Matrizen ........................................................................... A.2.6 Vordefinierte MATLAB-Funktionen und einfache Grafiken ................. A.2.7 Schreiben eines MATLAB-Programms im Editor/Debugger-Window .. A.2.8 Verkettete Programme und Unterprogramme......................................... A.2.9 MATLAB Help und MATLAB Demo ................................................... Formelzeichen und Abkürzungen..............................................................................
181 185 190 194 196 199
Literaturverzeichnis........................................................................................................... 219 Sachwortverzeichnis........................................................................................................... 221
1
1
Zustandsraumdarstellung digitaler Systeme
1.1
Einführung
Bei der Anwendung eines digitalen Systems steht meist das Eingangs-Ausgangsverhalten des Systems, also die Impulsantwort, die Übertragungsfunktion und der Frequenzgang, im Vordergrund. Typische Beispiele sind charakteristische Frequenzgänge, wie bei Tief-, Hoch- und Bandpässen sowie Bandsperren. Zum Entwurf der Systeme existieren Standardverfahren, die in MATLAB im Filter Design and Analysis Tool fdatool bereitgestellt werden. Geht es an die Realisierung, ist ein Blick in die Systeme wünschenswert. Bei der Zustandsraumdarstellung treten die inneren Zustände der Systeme in Erscheinung. Sie eröffnet die Anwendung der linearen Algebra auf praktische Problemstellungen der digitalen Signalverarbeitung. Die Zustandsraumdarstellung liefert nicht nur theoretische Erkenntnisse, sondern auch praktische Möglichkeiten zur Abschätzung der Komplexität der Realisierungen und wie störenden Wortlängeneffekten begegnet werden kann. Schließlich eröffnet die Zustandsraumdarstellung der Signalverarbeitung neue Anwendungen. Anmerkung: Eine weiterführende Behandlung der Zustandsraumdarstellung und ihre Anwendung, z. B. bei adaptiven Systemen in der Nachrichten- und Regelungstechnik, findet man in [Hay02], [RoMu87], [Sch94], [Schl88], [Schl92], [Unb98], [Unb02].
In diesem und den nächsten Versuchen werden die Zustandsraumdarstellung an Systemen 2. Ordnung vorgestellt. Die Ergebnisse der Versuche lassen sich direkt in die Praxis übertragen, da Systeme, wie beispielsweise Tiefpässe, häufig in der Kaskadenform aus Blöcken 2. Ordnung implementiert werden. Versuch 7 rundet schließlich das Thema mit einem Fallbeispiel ab. Da manche Leser mit MATLAB vielleicht noch nicht vertraut sind, wird in den ersten beiden Versuchen auf die Trennung von Vorbereitung und Versuchsdurchführung zugunsten integrierter MATLAB-Übungen verzichtet. Die angegebenen Programmbeispiele helfen beim ersten Umgang mit MATLAB. Sollte dies Ihr erster Kontakt mit MATLAB sein, so finden Sie im Anhang am Ende des Buches eine Unterstützung für die ersten Schritte. Lernziele Nach Bearbeiten des Versuchs können Sie x die Zustandsraumdarstellung mit der Zustandsgleichung und der Eingangs-Ausgangsgleichung eines Systems angeben und die Struktur des Systems durch ein Blockdiagramm und einen Signalflussgraphen veranschaulichen x die Berechnungsvorschrift für die Übertragungsfunktion aus der Zustandsraumdarstellung angeben und für Systeme 2. Ordnung anwenden x mit MATLAB ein System in Zustandsraumdarstellung realisieren und dessen Impulsantwort durch Simulation bestimmen x mit MATLAB die Pole, die Nullstellen und die Nenner- und Zählerkoeffizienten eines Systems berechnen x die Eigenvektoren der A-Matrix und ihre Eigenwerte am Beispiel eines Systems 2. Ordnung berechnen
2
1 Zustandsraumdarstellung digitaler Systeme
1.2
Zustandsgrößen und Zustandsraumdarstellung
1.2.1
Systeme 2. Ordnung
Den Ausgangspunkt für die Überlegungen zur Zustandsraumdarstellung bildet die normierte lineare Differenzengleichung (DGL) 2. Ordnung mit konstanten Koeffizienten y[n] a1 y[n 1] a2 y[n 2] b0 x[n] b1 x[ n 1] b2 x[ n 2] mit a0
1
(1.1)
Ist x[n] eine rechtsseitige Folge, d. h. x[n] = 0 für n < 0, so ist für eine eindeutige Lösung die Kenntnis der Anfangsbedingungen, die Werte y[–1] und y[–2], erforderlich. Beispiel System 2. Ordnung in transponierter Direktform II Die transponierte Direktform II leitet sich unmittelbar aus der Differenzengleichung ab. Das zugehörige Blockdiagramm ist in Bild 1-1 zu sehen. Das Eingangssignal x[n] wird von links in die Vorwärtszweige eingespeist und dort jeweils mit den Koeffizienten bi multipliziert. Die Ergebnisse werden an den entsprechenden Stellen der Kette aus Verzögerern zugeführt. Die beiden Verzögerer D (Delay) funktionieren als Speicher. Ihre Wirkung auf das Signal beschreibt der Verzögerungsoperator. D x[n]
x[n 1]
(1.2)
In den Rückwärtszweigen unten geschieht vergleichbares mit dem Ausgangssignal y[n]. Im System treten somit innere Größen, die Zustandsvariablen s1[n] und s2[n], auf. In Anlehnung an die englische Bezeichnung für die Zustandsraumdarstellung state-space representation und state variable für die Zustandsvariable (-größe) wählen wir den Formelbuchstaben s. Die Zustandsvariablen werden vom Ausgang her nummeriert. Der Index minus 1 entspricht der Zahl der Verzögerungen, die der Eingangswert des jeweiligen Verzögerers bis zu seinem Erscheinen am Ausgang erfährt. Die transponierte Direktform II ist eine Realisierung mit minimaler Anzahl von Speichern und Multiplikationen: N Speicher und 2N + 1 Multiplikationen für ein System N-ter Ordnung. Die daraus abgeleitete Zustandsbeschreibung weist die minimale Anzahl von Zuständen auf. Eine derartige Struktur wird minimale Realisierung oder kanonische Struktur genannt. x[n] b2
D –a2
Bild 1-1
b0
b1
s2[n]
D
s1[n]
y[n]
–a1
Blockdiagramm eines Systems 2. Ordnung in transponierter Direktform II mit den Zustandsvariablen s1[n] und s2[n] (Beobachtungsnormalform, 1. kanonische Form)
1.2 Zustandsgrößen und Zustandsraumdarstellung
3
Zur Analyse des Systems in Bild 1-1 stellen wir die Abhängigkeiten der Ausgangsgröße und der Zustandsvariablen in der Verzögerungskette von links nach rechts dar. s2 [n] D b2 x[n] a2 y[n] s1[n]
D s2 [n] b1 x[n] a1 y[n]
y[n]
s1[n] b0 x[n]
(1.3)
Unter Berücksichtigung des Verzögerungsoperators D ergibt sich für die Zustandsvariablen im nächsten Zeitschritt die Rekursion s2 [n 1]
b2 x[n] a2 y[n]
b2 x[n] a2 s1[n] b0 x[n]
s1[n 1]
s2 [n] b1 x[n] a1 y[n]
s2 [n] b1 x[n] a1 s1[n] b0 x[n]
(1.4)
Mit dem Vektor der Zustandsvariablen, Zustandsvektor oder auch kurz Zustand genannt, § s [ n] · s[n] ¨ 1 ¸ © s2 [ n ] ¹
(1.5)
wird die Rekursion in Matrixform kompakt geschrieben. § a s[n 1] ¨ 1 © a2
1· § b1 a1b0 · ¸ x[n] ¸ s[n] ¨ 0¹ © b2 a2 b0 ¹
(1.6)
Wir erhalten die Zustandsraumdarstellung mit der Ausgangsgleichung und der Zustandsgleichung y[n]
cT2t s[n] d x[n]
s[n 1]
A 2t s[n] b 2t x[n]
(1.7)
mit der A-Matrix und den Vektoren b, c und dem Durchgriff d. A 2t
§ a1 ¨ © a2
1· ¸ , b 2t 0¹
§ b1 a1b0 · ¨ ¸ , © b2 a2b0 ¹
cT2t
1
0 , d
b0
(1.8)
Der Index „2t“ bezieht sich auf die transponierte Direktform II, die der Herleitung aus Bild 1-1 zugrunde liegt. Man beachte auch, bei Systemen mit einem Ein- und Ausgang ist der Durchgriff vom Eingang zum Ausgang d ein von der Darstellungsform unabhängiger Skalar. In der Regelungstechnik wird hier von der Beobachtungsnormalform (observable canonical form) gesprochen. Alle Zustandsvariablen wirken, allenfalls verzögert, direkt auf den Ausgang, sind also dort im Ausgangssignal durch Messung beobachtbar, vgl. Beobachtbarkeit eines Systems, z. B. [Schl92]. Aus der Zustandsraumdarstellung folgt unmittelbar: Sind die Werte der Zustandsvariablen, der Zustand des Systems, zu einem Zeitpunkt bekannt, so sind bei gegebener Eingangsfolge alle zukünftigen Zustände des Systems und Ausgangswerte bestimmt. Insbesondere berücksichtigt der momentane Zustand die Vergangenheit des Systems vollständig. Oder anders herum, ein solcher Satz von Variablen, der das Ausgangssignal des Systems bei bekanntem Eingangssignal vollständig festlegt, wird Zustand des Systems genannt.
4
1 Zustandsraumdarstellung digitaler Systeme
MATLAB-Beispiel 1-1 Zustandsraumdarstellung eines Systems 2. Ordnung in transponierter Direktform II M1.1
Für ein Systems sind die Zählerkoeffizienten b0 = 1, b1 = 2 und b2 = 1 und die Nennerkoeffizienten a0 = 1, a1 = –1.4 und a2 = 0.74 der Übertragungsfunktion gegeben. Programmieren Sie das System in MATLAB in der Zustandsraumdarstellung für die transponierte Direktform II (1.7) und bestimmen Sie die Impulsantwort des Systems durch Simulation. Lösung: Siehe Programmbeispiel 1-1 und Bild 1-2. Anmerkung: Mit der MATLAB Version 7 wurde für die Programmentwicklung der nützliche Cell Mode eingeführt. Durch doppelte Prozentzeichen lassen sich Programmabschnitte als Zellen definieren, auf denen die Programmausführung beschränkt werden kann. Weitere Informationen zum Cell Mode liefert die Suche nach dem Begriff Rapid code iteration im MATLAB Help Navigator. 1
h[n] / MAX o
MAX = 5.02
0.5
0
-0.5
0
10
20
30
40
50
no
Bild 1-2 Impulsantwort des zeitdiskreten Systems 2. Ordnung (M1.1, lab1_1)
Programmbeispiel 1-1 Impulsantwort des Systems 2. Ordnung in der Zustandsraumdarstellung in transponierter Direktform II zu M1.1 % 2nd order filter in state-space representation in % transposed direct form II - impulse response % lab1_1.m * mw * 01/06/2007 b = [1 2 1]; a = [1 -1.4 .74]; % numerator and denominator %% State-space representation in transposed direct form II A = [-a(2) 1; -a(3) 0]; % matrix A B = [b(2)-a(2)*b(1); b(3)-a(3)*b(1)]; % vector b C = [1 0]; % vector cT D = b(1); % scalar d %% Filtering x = [1 zeros(1,50)]; % input signal (impulse) S = [0;0]; % state variables, initial values y = zeros(size(x)); % output signal for n=1:length(x) y(n) = C*S + D*x(n); % compute output signal S = A*S + B*x(n); % update state-space variables end
1.2 Zustandsgrößen und Zustandsraumdarstellung
5
%% Graphics – Impulse response FIG = figure('Name','lab1_1 : Impulse response',... 'NumberTitle','off'); stem(0:50,y/max(abs(y))), axis([0 50 -.5 1]); grid; xlabel('n \rightarrow'), ylabel('h[n] / MAX \rightarrow') text(.82*50,.86,['MAX = ',num2str(max(abs(y)))])
M1.2
Verifizieren Sie Ihr Ergebnis für die Impulsantwort aus M1.1 mit dem Befehl impz(b,a). Anmerkung: Mit dem MATLAB-Programm aus der Signal Processing Toolbox Filter Viewer fvtool(b,a)steht ein menügesteuert Programm zur grafischen Darstellung von charakteristischen Systemfunktionen zur Verfügung.
Beispiel System 2. Ordnung in Direktform II Die Direktform II leitet sich mit einem kleinen Umweg über die Direktform I aus der Differenzengleichung (1.1) ab [Wer05]. Alternativ kann auch von Bild 1-1 ausgegangen werden. Da die transponierte Direktform durch Umkehrung der Pfeilrichtungen und Vertauschen von Eingangs- und Ausgangsgröße entsteht, erhalten wir aus Bild 1-1 die nicht transformierte Form, indem wir diese Operationen nochmals durchführen. Bild 1-3 zeigt das Ergebnis, wobei das Eingangssignal wieder von links eingespeist wird. Wie noch gezeigt wird, bleibt das Übertragungsverhalten des Systems erhalten. Man beachte die Wahl der Zustandsvariablen. Sie sind Ausgangsgrößen der Verzögerer und werden wieder vom Ausgang her nummeriert. Im Vergleich zu Bild 1-1 liegen sie nun vertauscht.
b0
x[n]
D
s2[n]
D –a1
Bild 1-3
b2
b1
s1[n]
–a2
Blockdiagramm eines Systems 2. Ordnung in Direktform II mit den Zustandsvariablen s1[n] und s2[n] (Regelungsnormalform, 2. kanonische Form)
Aus Bild 1-3 folgt die Systembeschreibung s1[n]
D s2 [ n ]
s2 [ n ]
D a2 s1[n] a1s2 [n] x[n]
y[n]
(b2 a2 b0 ) s1[n] (b1 a1b0 ) s2 [n] b0 x[n]
(1.9)
Die Rekursion der Zustandsvariablen liefert wieder die Systembeschreibung in Matrix-Vektorform mit der A-Matrix und den Vektoren b, c und d.
6
1 Zustandsraumdarstellung digitaler Systeme
A2
§ 0 ¨ © a2
1 · ¸ , b2 a1 ¹
§0· ¨ ¸ , ©1¹
cT2
b2 a2b0
b1 a1b0 , d
b0
(1.10)
Der Index „2“ bezieht sich auf die Herleitung aus der Direktform II. In der Regelungstechnik bezeichnet man diese Form als Regelnormalform (controllable canonical form). Alle Zustände werden vom Eingang direkt, allenfalls verzögert, angesteuert, vgl. Steuerbarkeit eines Systems, z. B. [Schl92]. Der Zusammenhang zwischen den beiden Strukturen ist durch die Matrix-Vektor-Operationen gegeben. A 2t
§0 1· T §0 1· ¨ ¸ A2 ¨ ¸ , b 2t ©1 0¹ ©1 0¹
§0 1· ¨ ¸ c 2 , c 2t ©1 0¹
§0 1· bT2 ¨ ¸ ©1 0¹
(1.11)
Die Matrix A2 wird transponiert. Daher die Bezeichnung transponierte Direktform für die Struktur mit A2t. Die Matrix mit Nullen in den Hauptdiagonalen beschreiben die Vertauschung der Zustandsgrößen, vgl. Bild 1-1 und Bild 1-3. Sie wird Permutationsmatrix genannt. Die Berechnung von b2t aus c2 und c2t aus b2 entspricht der Vertauschung von Ein- und Ausgang. Der Durchgriff d ist von der Strukturänderung nicht betroffen. MATLAB-Beispiel 1-2 Zustandsraumdarstellung eines Systems 2. Ordnung in Direktform II M1.3
Führen Sie für das System in Aufgabe M1.1 die Umformung der Zustandsraumdarstellung in die Direktform II von Hand durch. Verifizieren Sie Ihr analytisches Ergebnis durch die Transformation mit MATLAB. Hinweis: Gehen Sie von (1.11) aus und lösen Sie zunächst die Beziehungen nach A2, b2 bzw. c2T auf. Beachten Sie dabei die Rechenregeln für die Multiplikation und die Inversion von Matrizen. Lösung: Siehe Programmbeispiele 1-1 und 1-2.
Programmbeispiel 1-2 Impulsantwort des Systems 2. Ordnung in Zustandsraumdarstellung für die Direktform II (Programmausschnitt) % Transform of transposed direct form II to non-transposed A2 = [0 1;1 0]*A2t’*[0 1;1 0]; B2 = [0 1;1 0]*C2t’; C2 = B2t’*[0 1;1 0];
M1.4
Verifizieren Sie Ihr Ergebnis, indem Sie die Impulsantwort des umgeformten Systems bestimmen. Was ist zu erwarten?
M1.5
Zur Berechnung der Zustandsraumdarstellung (state-space representation) aus der Übertragungsfunktion (transfer function) bietet MATLAB den Befehl tf2ss an. Verwenden Sie den Befehl und bestimmen Sie die Impulsantwort des Systems. Welcher Zusammenhang besteht zwischen der transponierten Direktform II und der Darstellung in MATLAB? Bestimmen Sie die Transformationsgleichungen der Zustandsraumdarstellung des MATLAB-Befehls tf2ss auf die Zustandsraumdarstellung in der Direktform II. Lösung: Siehe Programmbeispiele 1-3.
1.2 Zustandsgrößen und Zustandsraumdarstellung
7
Programmbeispiel 1-3 Abbildung der Zustandsraumdarstellungen [A,B,C,D] = tf2ss(b,a); % MATLAB built-in function % State-space representation according to direct form II A2 = [0 1;1 0]*A*[0 1;1 0]; B2 = [0 1;1 0]*B; C2 = C*[0 1;1 0]; D2 = D;
1.2.2
Systeme höherer Ordnungen
Die vorgestellten Zustandsbeschreibungen der Systeme 2. Ordnungen können auf Systeme höherer Ordnungen erweitert werden. Aus der DGL N-ter Ordnung in normierter Form N
M
k 0
l 0
¦ ak y[n k ] ¦ bl x[n l ]
mit a0
1 und N t M
(1.12)
folgt unmittelbar der Signalflussgraph zur transponierten Direktform II in Bild 1-4 (oben). x[n] bN s [n] D N
x[n]
Bild 1-4
b bN–1 b s [n] N–2 sN–2[n] N–3 D N–1 D
–aN
–aN–1
–aN–2
–aN–3
b0 s [n] D N
b1 s [n] D N–1
b2 s [n] D N–2
b3
–a1
–a2
–a3
D
D
b0
s1[n]
y[n]
y[n]
bN
s1[n]
–aN
Signalflussgraph eines zeitdiskreten Systems N-ter Ordnung in transponierter Direktform II (oben) und Direktform II (unten) mit den Zustandsvariablen s1[n], s2[n], …, sN[n] (a1 = 1)
Die Systembeschreibung N-ter Ordnung für die Struktur in transponierter Direktform II geschieht mit
A 2t
§ a1 ¨ ¨ a2 ¨ a3 ¨ ¨ # ¨ a © N
1 0 " 0· ¸ 0 1 % #¸ 0 0 % 0 ¸ , b 2t ¸ # # % 1¸ 0 0 " 0 ¸¹
§ b1 a1b0 · ¨ ¸ ¨ b2 a2 b0 ¸ ¨ b3 a3b0 ¸ , cT2t ¨ ¸ # ¨ ¸ ¨b a b ¸ N 0¹ © N
1
0 0 " 0 , d
b0
(1.13)
Entsprechendes gilt für die Direktform II. Der zugehörige Signalflussgraph wird in Bild 1-4 unten gezeigt.
8
1 Zustandsraumdarstellung digitaler Systeme
Für die A-Matrix der Direktform II erhält man eine Frobenius-Matrix, auch Begleitmatrix genannt. Sie ist von besonderem Interesse, da mit ihr der Zusammenhang zur charakteristischen Gleichung der DGL und den Eigenschwingungen des Systems hergestellt werden kann.
A2
cT2
§ 0 ¨ ¨ 0 ¨ 0 ¨ ¨ # ¨ 0 ¨¨ © aN
bN aN b0
1 0
0 1
0 0
0
0
0 aN 1
0 aN 2
1 % % " 0 " a2
bN 1 aN 1b0
"
0 · ¸ 0 ¸ # ¸ ¸ , b2 0 ¸ 1 ¸ ¸ a1 ¸¹
§0· ¨ ¸ ¨0¸ ¨0¸ ¨ ¸ , ¨#¸ ¨0¸ ¨¨ ¸¸ ©1¹
b N 2 aN 2b0 " b 1 a1b0 , d
(1.14)
b0
Wie an den Beispielen sichtbar wird, ergeben sich je nach Struktur unterschiedliche Lösungen für die Matrizen und Vektoren. Für eine Implementierung auf Mikroprozessoren kann das von entscheidender Bedeutung sein. Die Zustandsraumdarstellung selbst ist von einheitlicher Form mit der Ausgangsgleichung und der Zustandsgleichung
y[n]
cT s[n] d x[n]
s[n 1]
A s[n] b x[n]
(1.15)
Daraus leitet sich die allgemeine Struktur im Blockdiagramm in Bild 1-5 ab. Die Doppelpfeile deuten die Vektorgrößen und -operationen an. Da ein System mit nur einem Eingang und einem Ausgang vorausgesetzt wird, treten dort skalare Größen auf. Das nachfolgende Beispiel illustriert das Ergebnis für Systeme 2. Ordnung. d sNu1[n] x[n]
y[n]
D N
N
N (cNu1)T
bNu1 N ANuN Bild 1-5
Allgemeine Struktur eines zeitdiskreten Systems N-ter Ordnung mit der Zustandsraumbeschreibung mit dem Zustandsvektor s[n] und einem Eingang und einem Ausgang
Beispiel Allgemeine Struktur eines Systems 2. Ordnung Für ein System 2. Ordnung spezialisiert sich die allgemeine Struktur in Bild 1-5 auf das Blockdiagramm in Bild 1-6. Zu erkennen sind die Funktionen der Matrix A und der Vektoren b, c, und des Skalars d. Letzterer beschreibt den Durchgriff vom Eingang zum Ausgang. Der Vektor b definiert die (An-)Steuerung der Zustandsgrößen durch das Eingangssignal. Und der Vektor c legt fest, ob und mit welchem Gewicht die Zustandsgrößen jeweils am Ausgang beobachtet werden können.
1.3 Übertragungsfunktion
9
Die A-Matrix beschreibt die Rekursion der Zustandsgrößen. Sind alle Elemente der A-Matrix von null verschieden, so ergibt sich für das System 2. Ordnung die Struktur in Bild 1-6. Die Direktform II und ihre Transponierte in Bild 1-1 bzw. Bild 1-3 stellen Sonderfälle dar. Bei einer maximalen Besetzung der Matrix-Vektorform eines Systems N-ter Ordnung erhält man N 2 + 2N + 1 von null verschiedener Koeffizienten und damit Multiplikationen pro Zeitschritt. Dem gegenüber beträgt der Aufwand bei einer kanonische Realisierung nur 2N + 1 Multiplikationen. Im Beispiel eines Systems 2. Ordnung sind das 9 bzw. 5 Multiplikationen. Anmerkung: Steuerbarkeit und Beobachtbarkeit der Systeme spielen in den Anwendungen eine wichtige Rolle. Mehr zu den Definitionen und die Überprüfung der Eigenschaften anhand der A-Matrix und der Vektoren b bzw. c findet man in der in der Einführung angegebenen Literatur.
d
b1
a11
c1 D
x[n] b2
Durchgriff
s1[n]
a12 a21
y[n] c2 D
s2[n]
a22 Steuerung
Rekursion der Zustandsvariablen
Beobachtung
Bild 1-6
Allgemeine Struktur eines zeitdiskreten Systems 2. Ordnung in der Zustandsraumdarstellung mit dem Zustandsvektor s[n] und einem Eingang und einem Ausgang
1.3
Übertragungsfunktion
Aus der Zustandsbeschreibung (1.15) wird durch z-Transformation und Einsetzen aus der Zustandsgleichung in die Ausgangsgleichung die Übertragungsfunktion abgeleitet. Für das Verhältnis von Ausgangsgröße zu Eingangsgröße im Bildbereich der z-Transformierten, die Übertragungsfunktion, resultiert H ( z)
cT ( zI A) 1 b d
(1.16)
Damit der gefundene Zusammenhang für beliebige z im Konvergenzgebiet der Übertragungsfunktion gilt, muss die inverse Matrix (zI – A)–1 jeweils existieren. Dann ist die Übertragungsfunktion aus der Zustandsraumdarstellung eindeutig bestimmt. Anmerkungen: (i) Die Einheitsmatrix wird mit I bezeichnet, für englisch Identity matrix. (ii) Die Existenz der inversen Matrix wird vorausgesetzt. (zI – A) ist eine nicht-singuläre Matrix, d. h. det(zI – A) z 0.
10
1 Zustandsraumdarstellung digitaler Systeme
Beispiel System 2. Ordnung in der Direktform II Wir gehen von der Zustandsraumdarstellung der Direktform II aus und bestimmen die Übertragungsfunktion. Zuerst berechnen wir die inverse Matrix. ( zI A 2 )
1
§ z ¨ © a2
1 · ¸ z a1 ¹
1
§ z a1 1 · 1 ¨ ¸ z ( z a1 ) (1) a2 © a2 z ¹
(1.17)
Damit erhalten wir aus (1.16) nach kurzer Zwischenrechnung die bekannte Übertragungsfunktion eines Systems 2. Ordnung H ( z)
cT2 ( zI A 2 ) 1 b 2 d
b2 a2b0
1.4
b1 a1b0
§ z a1 1 · § 0 · ¨ ¸ ¨ ¸ b0 z a1 z a2 © a2 z ¹ © 1 ¹ 1
2
b0 z 2 b1 z b2
b0 b1 z 1 b2 z 2
z 2 a1 z a2
1 a1 z 1 a2 z 2
(1.18)
Eigenwert, Eigenvektor und charakteristisches Polynom
Nimmt man eine quadratische nicht-singuläre Matrix ANuN und multipliziert von rechts mit einem Spaltenvektor mit N Elementen, erhält man wieder einen Spaltenvektor. Die Matrix A definiert eine lineare Abbildung. Gilt Ax
Ox
(1.19)
mit einem Skalar O und einem vom Nullvektor 0 verschiedenen Vektor x, so spricht man von einem Eigenwert O und einem Eigenvektor x der Matrix A. Der Eigenvektor wird durch die Matrix bis auf den Faktor O auf sich selbst abgebildet. Die Gleichung für den Eigenvektor liefert die Umstellung mit der Einheitsmatrix I (O I A ) x
0
(1.20)
Die Matrix A besitzt nur dann von null verschiedene Eigenvektoren, wenn die Determinante zu (1.20) null ist. det O I A
P (O )
0
(1.21)
Es resultiert die charakteristische Gleichung der Matrix A mit dem charakteristischen Polynom. Die Nullstellen des charakteristischen Polynoms sind die Eigenwerte der Matrix A. Anmerkung: Mit dem charakteristischen Polynom der Matrix erhält man stets das charakteristische Polynom der DGL und den Nenner der Übertragungsfunktion. Da die Nullstellen (Wurzeln) des charakteristischen Polynoms die Pole zfi des Systems ergeben, ist damit auch das Ein- und Ausschwingen des Systems festgelegt.
1.4 Eigenwert, Eigenvektor und charakteristisches Polynom
11
Beispiel Pole, Nullstellen und Zähler- und Nennerpolynome eines Systems 2. Ordnung Der Anschaulichkeit halber wählen wir ein konkretes Zahlenwertbeispiel. Den Ausgangspunkt bildet die Übertragungsfunktion mit ihren Polen und Nullstellen. Wir geben ein reellwertiges, kausales und stabiles System 2. Ordnung vor. Dazu wählen wir eine Übertragungsfunktion mit zwei reellen Polen im Einheitskreis der komplexen z-Ebene und konjugiert komplexem Nullstellenpaar. H ( z)
z2 1
( z j )( z j ) z 1 2 z 1 4
(1.22)
z2 z 4 1 8
Daraus folgt mit (1.18) und (1.10) die Zustandsraumdarstellung zur Direktform II
A2
1 · § 0 ¨ ¸ , b2 ©1 8 1 4 ¹
§0· ¨ ¸ , ©1¹
cT2
9 8
1 4 , d
1
(1.23)
Die Struktur des Systems ist in Bild 1-7 zu sehen, vgl. Bild 1-6.
9/8 D
x[n]
s1[n]
y[n]
1/8
1/4 D
s2[n]
1/4 Bild 1-7 Struktur des Systems 2. Ordnung in (1.22) (zur Direktform II)
MATLAB-Beispiel 1-3 Pole, Nullstellen, Zähler- und Nennerpolynom eines Systems 2. Ord. M1.6
Geben Sie von den Polen und Nullstellen der Übertragungsfunktion des Systems 2. Ordnung in (1.22) aus und bestimmen Sie mit MATLAB die Koeffizienten des Nenner- bzw. Zählerpolynoms. Hinweis: MATLAB-Befehl poly, siehe Programmbeispiel 1-4.
M1.7
Überprüfen Sie Ihr Ergebnis aus M1.6 indem Sie von den berechneten Nenner- und Zählerpolynomen ausgehen und mit MATLAB die Pole bzw. Nullstellen bestimmen. Stellen Sie mit MATLAB die Lage der Pole und Nullstellen in der z-Ebene, das Pol-Nullstellendiagramm (PN-Diagramm), dar. Hinweis: MATLAB-Befehle roots und zplane, siehe Programmbeispiel 1-4.
12
1 Zustandsraumdarstellung digitaler Systeme
Programmbeispiel 1-4 Nullstellen, Pole, Zählerpolynom und Nennerpolynom des Systems 2. Ordnung und grafische Darstellung des PN-Diagramms z = [-j j]; p = [.5 -.25]; b = poly(z); a = poly(p); zplane(b,a);
% zeros and poles % numerator and denominator % zero-pole plot in z-plane
Wir fahren im Zahlenwertbeispiel (1.22) bzw. (1.23) fort und berechnen die Eigenvektoren zur A-Matrix. Dazu bestimmen wir zunächst die Eigenwerte der A-Matrix aus ihrer charakteristischen Gleichung, der quadratischen Gleichung zf1,2
1 a1 r a12 4a2 2
1 §1 1 4· ¨¨ r ¸ 2 ©4 16 8 ¸¹
1 1 r 3 8
(1.24)
Wir erhalten die beiden reelle Pole der Übertragungsfunktion (1.22) zf1
1 2
und
zf 2
1 4
(1.25)
Damit sind die Eigenwerte der A-Matrix bestimmt. Wir suchen die zugehörigen Eigenvektoren. Für zf1 ergibt sich aus (1.20) das Gleichungssystem ( zf1I A)x
1 §12 ¨ © 1 8 1 2 1
· § x1 · ¸¨ ¸ 4 ¹ © x2 ¹
§0· ¨ ¸ ©0¹
(1.26)
und somit aus x1 = 2x2 der Eigenvektor zu zf1 x1
§ 1 · ¨ ¸ ©1 2 ¹
(1.27)
Anmerkungen: (i) Der Eigenvektor ist bis auf einen Skalierungsfaktor eindeutig bestimmt. (ii) Dass der gesuchte Eigenvektor vorliegt, kann durch Multiplikation der Matrix A mit x1 verifiziert werden.
Entsprechend wird für den zweiten Eigenwert zf2 verfahren. Nach kurzer Zwischenrechnung ergibt sich
x2
§ 1 · ¨ ¸ © 1 4 ¹
(1.28)
Die berechneten Eigenvektoren spielen im nächsten Versuch noch eine wichtige Rolle. MATLAB-Beispiel 1-4 Eigenwerte und Eigenvektoren eines Systems 2. Ordnung M1.8
Zur numerischen Berechnung von Eigenvektoren und Eigenwerten quadratischer Matrizen A hält MATLAB den Befehl eig vor. Bestimmen Sie die Eigenvektoren und Eigenwerte zur A-Matrix in (1.23). Anmerkungen: (i) Existenz und numerische Berechnung von Eigenvektoren und Eigenwerten wird in der linearen Algebra bzw. numerischen Mathematik ausführlich behandelt, weshalb hier auf eine Diskussion verzichtet wird. (ii) Eigenvektoren sind bis auf einen multiplikativen Faktor eindeutig bestimmt. Eine Normierung der Komponenten des Eigenvektors auf den Maximalwert 1 ist deshalb o. B. d. A. möglich.
1.4 Eigenwert, Eigenvektor und charakteristisches Polynom
13
Programmbeispiel 1-5 Eigenvektoren und Eigenwerte des Systems 2. Ordnung A = [0 1; -a(3) -a(2)]; [V,D] = eig(A)
% matrix A % eigenvectors V and eigenvalues D
Bildschirmanzeigen für V und D V = -0.9701 0.2425
-0.8944 -0.4472
D = -0.2500 0
0 0.5000
M1.9
Gehen Sie von dem System 2. Ordnung mit den Zählerkoeffizienten b0 = 1, b1 = 2 und b2 = 1 und den Nennerkoeffizienten a0 = 1, a1 = –1.4 und a2 = 0.74 der Übertragungsfunktion aus, siehe auch Aufgabe M1.1. a) Geben Sie die Übertragungsfunktion an. b) Berechnen Sie die Pole und Nullstellen mit MATLAB und stellen Sie das PolNullstellendiagramm dar. c) Geben Sie Zustandsraumdarstellung in der Direktform II an. d) Bestimmen Sie die Eigenvektoren und Eigenwerte der A-Matrix mit MATLAB.
Hinweise zu MATLAB Im Folgenden werden für die Versuchsdurchführung nützliche und ergänzende MATLAB-Befehle und -Funktionen aufgelistet. Mit der Help-Funktion können Sie sich Erläuterungen und Beispiele am Bildschirm anzeigen lassen. Filter Design and Analysis Tool fdatool Signal Processing Toolbox
Filter Viewer Tool fvtool impz, tf2ss, zp2ss, zplane
MATLAB functions
eig, for … end, length, poly, roots, size, zeros, ‘, []
MATLAB graphics
axis, figure, stem, text, xlabel, ylabel
Þ Online-Ressourcen zum Versuch lab1_1.m, lab1_2.m, lab1_3.m, lab1_4.m und Programme mit Ergebnissen im HTML-Format
14
2
Diagonalform und Normalform
2.1
Einführung
Die Zustandsraumdarstellung digitaler Systeme macht die Anwendung der Methoden der linearen Algebra möglich. Zwei, sich daraus ergebende wichtige Alternativen der Systemrealisierung werden in diesem Versuch vorgestellt, die Diagonalform und die Normalform. Aus Sicht der Anwender sind Realisierungen mit geringer Komplexität anzustreben, also ein kleiner Speicherbedarf und wenige Rechenoperationen je Ausgangswert. Hinzu kommt der Wunsch, eine gegen Wortlängeneffekte robuste Implementierung zu finden. Inneres Rauschen und Überlauf der Zustandsvariablen können reale Systeme unbrauchbaren machen. Dieser Versuch legt den Grundstein, um in den nächsten Versuchen die angedeuteten Aufgaben zielgerichtet anzugehen. Anmerkung: Da manche Leser mit MATLAB vielleicht noch nicht ausreichend vertraut sind, wird in diesem Versuch auf die Trennung von Vorbereitung und Versuchsdurchführung zugunsten integrierter MATLAB-Übungen verzichtet. Die angegebenen Programmbeispiele helfen beim Umgang mit MATLAB.
Lernziele Nach Bearbeiten des Versuchs können Sie x die Ähnlichkeitstransformation und ihre Anwendung auf ein System erläutern x die Diagonalform und die Normalform am Beispiel eines Systems 2. Ordnung berechnen x ein Blockdiagrammen für Systeme in Diagonal- oder Normalform skizzieren x mit MATLAB die Zustände in der Zustandsebene grafisch darstellen und die Ergebnisse interpretieren x einfache MATLAB-Programme verstehen und selbst erstellen
2.2
Modalmatrix und Diagonalform
Zur Analyse der Systeme führen wir eine Diagonalisierung der A-Matrix durch. Dabei gehen wir von dem praktisch wichtigen Fall unabhängiger Eigenvektoren aus, bei dem die A-Matrix der Dimension NuN genau N unabhängigen Eigenvektoren x1, …, xN mit den von null verschiedene Eigenwerte O1, …, ON besitzt. Da die Eigenwerte gleich den Polen der Übertragungsfunktion sind, nennen wir sie im Folgenden auch zf1, …, zfN. Mit den N Eigenvektoren xi bilden wir die Matrix der Eigenvektoren, die Modalmatrix M
x1
x2 " x N
(2.1)
Die Eigenvektoren bilden die Spalten der Modalmatrix. Sind alle Eigenwerte verschieden, so sind die Eigenvektoren paarweise linear unabhängig.
2.2 Modalmatrix und Diagonalform
15
Die Überführung der A-Matrix in die Diagonalmatrix / gelingt mit der Transformation
M 1 A M
ȁ
§ zf1 ¨ ¨ 0 ¨ # ¨¨ 0 ©
0 zf 2 % "
0 · ¸ % # ¸ % 0 ¸ ¸ 0 zfN ¸¹ "
(2.2)
Anmerkungen: (i) Da alle Eigenvektoren unabhängig sind, ist M nicht-singulär, sodass M–1 existiert. (ii) (2.2) zeigt man schnell, indem man A M = M / prüft und dann mit M–1 von links multipliziert.
Die Berechnungsformel der Diagonalmatrix / (2.2) zeigt, wie die Zustandsraumdarstellung so umgeformt werden kann, dass die resultierende A-Matrix Diagonalform aufweist. Dann gibt es keine wechselseitige Beeinflussung der Zustandsgrößen. Das System zerfällt in eine Parallelschaltung aus N Teilsystemen 1. Ordnung. Fasst man bei reellwertigen Systemen die konjugiert komplexen Polpaare zusammen, entstehen daraus Teilsysteme 2. Ordnung für die Polpaare. Voraussetzung ist selbstverständlich, dass sich das Übertragungsverhalten des Systems dabei nicht ändert. Wir zeigen im Folgenden das Verfahren anhand eines Systems 2. Ordnung und holen die Rechtfertigung für die Vorgehensweise später nach. Beispiel Diagonalmatrix zu einem System 2. Ordnung mit zwei reellen Polen Den Ausgangspunkt bildet eine Übertragungsfunktion mit gegebenen Polen und Nullstellen. Zunächst berechnen wir die Zustandsraumdarstellung, danach die Eigenwerte und Eigenvektoren und dann die Modalmatrix. Zum Schluss bringen wir die Matrix A auf Diagonalform. Der Anschaulichkeit halber wählen wir das Zahlenwertbeispiel aus Versuch 1: das reellwertige, kausale und stabile System 2. Ordnung mit der Übertragungsfunktion z2 1
( z j )( z j ) ( z 1 2)( z 1 4)
H ( z)
(2.3)
z2 z 4 1 8
Mit (1.18) und (1.10) folgt die Zustandsraumdarstellung in Direktform II A2
1 · § 0 ¨ ¸ , b2 ©1 8 1 4 ¹
§0· ¨ ¸ , ©1¹
cT2
9 8
1 4 , d
1
(2.4)
Die Struktur des Systems kann in Bild 1-7 nachgeschlagen werden. Wir fahren im Zahlenwertbeispiel fort und berechnen die Eigenvektoren zur A-Matrix. Der Lösungsweg und das Ergebnis sind in Versuch 1 angegeben. Es resultieren die Eigenvektoren (1.28) und (1.29) x1
§ 1 · ¨ ¸ und x 2 ©1 2 ¹
§ 1 · ¨ ¸ © 1 4 ¹
(2.5)
zu den Eigenwerten zf1 = 1/2 bzw. zf2 = –1/4. Mit den beiden Eigenvektoren ist auch die Modalmatrix gegeben. M
x1
x2
1 · § 1 ¨ ¸ 1 2 1 4¹ ©
(2.6)
16
2 Diagonalform und Normalform
Im Falle von 2u2 Matrizen ist die Inverse schnell bestimmt.
M 1
1 · § 1 ¨ ¸ ©1 2 1 4 ¹
1
§ 1 4 1· 1 ¨ ¸ 1 4 1 2 © 1 2 1 ¹
1 §1 4 · ¨ ¸ 3 © 2 4 ¹
(2.7)
Anmerkung: Die Richtigkeit des Ergebnisses prüft man mit M M–1 = I.
Mit der Modalmatrix kann nun die A-Matrix in Diagonalform überführt werden ȁ
M 1 A 2 M
1 §1 4 · 1 §0 8· 1 §4 4 · ¨ ¸ ¨ ¸ ¨ ¸ 3 © 2 4 ¹ 8 © 1 2 ¹ 4 © 2 1¹
0 · §1 2 ¨ ¸ © 0 1 4 ¹
(2.8)
Wie erwartet, finden sich die Eigenwerten zf1 = 1/2 und zf2 = –1/4 auf der Diagonalen. Der Zusammenhang mit der Systembeschreibung wird im nächsten Abschnitt hergestellt. MATLAB-Beispiel 2-1 Modal und Diagonalmatrix zum System 2. Ordnung M2.1
Bestimmen Sie mit MATLAB die Modalmatrix, ihre Inverse und die Diagonalmatrix zum System 2. Ordnung in (2.3). Lösung: Siehe Programmbeispiel 2-1.
Programmbeispiel 2-1 Diagonalmatrix zum System 2. Ordnung % 2nd order filter % lab2_1.m * mw * 01/06/2007 z = [-j j]; p = [.5 -.25]; b = poly(z); a = poly(p); A = [0 1; -a(3) -a(2)]; [V,D] = eig(A); M = [V(:,1)/V(1,1) V(:,2)/V(1,2)]; M_1 = inv(M); L = M_1*A*M;
2.3
% zeros and poles % numerator and denominator % matrix A in direct form II % eigenvectors and eigenvalues % modal matrix % inverse modal matrix % diagonal matrix
Ähnlichkeitstransformation
Voraussetzung für die Anwendung alternativer Strukturen ist selbstverständlich, dass sich das Übertragungsverhalten des Systems dabei nicht ändert. Durch Einsetzen in die Zustandsgleichungen, d. h. linearen Abbildung des Zustandsvektors mit der inversen Modalmatrix, kann dies für die Diagonalform gezeigt werden. Aus der Transformation s d [n 1] M 1 s[n]
(2.9)
resultiert die Zustandsraumdarstellung y[n]
cTd s d [n] d x[n]
s d [n 1]
ȁ s d [n] b d x[n]
(2.10)
2.3 Ähnlichkeitstransformation
17
mit den Vektoren bd
M 1 b und cTd
cT M
(2.11)
Da die Eingangsgröße und die Ausgangsgröße dabei nicht verändert werden, liefert das modifizierte System mit dem Zustandsvektor sd[n] bei gleichen Eingangswerten die gleichen Ausgangswerte wie ohne Transformation. Damit wird es möglich, die innere Struktur des Systems gezielt an weitere Anwendungsbedingungen anzupassen. Anmerkungen: (i) Der Index d erinnert an die Transformation auf Diagonalform. (ii) Durch Einsetzten von (2.9) und (2.11) in (2.10) und Berücksichtigung von (2.2) kann in wenigen Schritten gezeigt werden, dass die ursprüngliche Zustandsraumdarstellung resultiert.
Beispiel System 2. Ordnung mit zwei reellen Polen (Fortsetzung) Wir führen das Zahlenwertbeispiel fort. Es ergibt sich der neue Zustandsvektor durch lineare Abbildung mit der Modalmatrix s d [n] M 1 s[n]
1 §1 4 · ¨ ¸ s[n] 3 © 2 4 ¹
(2.12)
und die Koeffizientenmatrizen bzw. -vektoren Ad
ȁ
0 · §1 2 ¨ ¸ , bd 0 1 4¹ ©
§ 43· ¨ ¸ , © 4 3 ¹
cTd
20 16
17 16 , d
1
(2.13)
Die Struktur des diagonalisierten Systems zeigt Bild 2-1, vgl. auch Bild 1-7. Die Zustandsgrößen sind nun entkoppelt. Es ergibt sich eine Parallelschaltung von unabhängigen Teilsystemen erster Ordnung. Man spricht deshalb auch von der Parallelform. Anmerkung: Treten neben reellen Polen konjugiert komplexe Polpaare auf, so können diese jeweils zu Blöcken 2. Ordnung zusammengefasst werden. Man erhält dann die A-Matrix in der Jordan-Form. Es resultiert eine der Parallelform ähnliche Struktur aus entkoppelten Blöcken 1. und 2. Ordnung.
4/3
1/2
20/16 D sd1[n]
x[n]
y[n] D –4/3
–1/4
sd2[n]
17/16
Bild 2-1 Struktur des zeitdiskreten Systems 2. Ordnung mit zwei reellen Polen in Diagonalform
18
2 Diagonalform und Normalform
MATLAB-Beispiel 2-2 Zustandsraumdarstellung des Systems 2. Ordnung in Diagonalform M2.2
Simulieren Sie mit MATLAB das System 2. Ordnung in (2.3) in der Zustandsraumdarstellung zur Diagonalform. Nehmen Sie die Impulsantwort auf und vergleichen Sie Ihr Ergebnis mit der Impulsantwort bei Realisierung in der Zustandsraumdarstellung mit dem MATLAB-Befehl zp2ss. Lösung: Siehe Programmbeispiel 2-2. Beachten Sie, für die Zustandsraumdarstellung wird eine MATLAB-Struktur (struct) eingeführt, die alle Daten zusammenfasst.
Programmbeispiel 2-2 Simulation des Systems 2. Ordnung in Zustandsraumdarstellung % 2nd order filter in parallel form % lab2_2.m * mw * 01/06/2007 %% State-space representation z = [-j j]; p = [.5 -.25]; % zeros and poles [A,B,C,D] = zp2ss(z,p,1); % state-space representation (MATLAB) ssr = struct('A',A,'B',B,'C',C,'D',D,'S',[0;0],'form','matlab'); %% Filtering N = 50; % number of simulation cycles = N + 1 x = [1 zeros(1,N)]; % input signal (impulse) [y,S] = ssr_filter(ssr,x) % filtering %% State-space representation in diagonal form (parallel form) [V,lambda] = eig(ssr.A); % eigenvectors, eigenvalues M = [V(:,1)/V(1,1) V(:,2)/V(1,2)]; % modal matrix M_1 = inv(M); % inverse of modal matrix L = M_1*A*M; % diagonal matrix ssr(2).A = L ; % matrix A in diagonal form ssr(2).B = M_1*B; % vector b ssr(2).C = C*M; % vector cT ssr(2).D = D; % scalar d ssr(2).S = [0;0]; % initialize state ssr(2).form = 'diagonal'; [yd,S] = ssr_filter(ssr(2),x) % filtering %% Compare impulse responses fprintf('\n') fprintf('lab2_2 : Impulse responses of 2nd order systems\n') fprintf(' n y[n] yd[n] \n') for n=1:10 fprintf('%2i : %-1.5e %-1.5e \n',n,y(n),yd(n)) end % digital filter in state-space representation % function [y,S] = ssr_filt(ssr,x) % ssr - state-space representation % structure with fields A, B, C, D, S (state), form % x,y,S - input signal, output signal, final state % ssr_filter.m * mw * 01/06/2007 function [y,S] = ssr_filter(ssr,x) S = ssr.S; % initial state y = zeros(1,length(x)); % output signal for n=1:length(x) y(n) = ssr.C*S + ssr.D*x(n); % compute output signal S = ssr.A*S + ssr.B*x(n); % update state variables end
2.4 Normalform
19
Im Beispiel bestätigt sich anhand der Impulsantwort, dass eine Transformation wie in (2.10) das Übertragungsverhalten des Systems nicht ändert. Man spricht von einer Ähnlichkeitstransformation. Voraussetzung dafür ist die Existenz einer nicht-singulären NuN Transformationsmatrix T mit st [n] T 1 s[n] mit A t
T 1 A T
(2.14)
Es resultiert die Zustandsraumdarstellung y[n 1]
cTt st [n] d x[n]
st [n 1]
At st [n] bt x[n]
(2.15)
Mit den Vektoren bt
T 1 b und cTt
cT T
(2.16)
Mit einigen wenigen Rechenschritten kann anhand der Übertragungsfunktion (1.16) allgemein gezeigt werden, dass sich das Übertragungsverhalten durch die Ähnlichkeitstransformation nicht ändert, z. B. [Wer05]. Anmerkung: Wir folgen hier der üblichen Definition der Ähnlichkeitstransformation in der Fachliteratur [RoMu87], [Sch94].
2.4
Normalform
Die Voraussetzung für die Ähnlichkeitstransformation (2.14) lässt viele Alternativen zu. In der digitalen Signalverarbeitung sind die Transformationen auf Diagonalform und Normalform von besonderer praktischer Bedeutung. Wir stellen Letztere am Beispiel eines Systems 2. Ordnung vor. Eine NuN-Matrix A heißt normal wenn gilt AT A
A AT
(2.17)
Anmerkung: Die Definition kann mit (A*)T A = A (A*)T auf Matrizen mit komplexen Elementen erweitert werden.
Geht man von der A-Matrix der Direktform II (1.10) mit einem konjugiert komplexen Polpaar zf1 = zf und zf2 = zf* aus, sind die Transformationsmatrix und ihre Inverse TN
1 0 · § 1 ¨ , TN1 Re Im z Im zf © f zf ¸¹
§ Im zf 0 · ¨ ¸ © Re zf 1 ¹
(2.18)
anzuwenden. Es ergibt sich die A-Matrix der Normalform AN
TN1 A 2 TN
§ Re zf Im zf · ¨ ¸ © Im zf Re zf ¹
(2.19)
Sie besitzt eine voll besetzte A-Matrix, aus der das konjugiert komplexe Polpaar direkt abgelesen werden kann.
20
2 Diagonalform und Normalform
Für die Vektoren b und c ergibt sich bN
cTN
cT2 TN
TN1b 2
§0· ¨ ¸ ©1¹
1 (b2 a2b0 ) (b1 a1b0 ) Re( zf ) (b1 a1b0 ) Im( zf ) Im zf
(2.20)
Anmerkungen: (i) Die unterschiedlichen Formen der Zustandsraumdarstellung und die sich daraus ergebenden Transformationsmöglichkeiten führen leicht zu Verwechslungen. (ii) Beispielsweise geschieht die Transformation auf Normalform bei der transponierten Direktform II durch
TN
1 · § 0 1 ¨ Im Re z Im zf © f zf ¸¹
Die Matrix A hat Normalform wie (2.19), die Vektoren b und c sind aber verschieden zu (2.20).
MATLAB-Beispiel 2-3 System 2. Ordnung mit konjugiert komplexem Polpaar in Normalform M2.3
Gehen Sie von dem System 2. Ordnung mit konjugiert komplexem Polpaar mit den Zählerkoeffizienten b0 = 1, b1 = 2 und b2 = 1 und die Nennerkoeffizienten a0 = 1, a1 = –1.4 und a2 = 0.74 aus, siehe auch M1.1. Stellen Sie das System in der Direktform II dar und berechnen Sie mit MATLAB die Zustandsraumdarstellung in Normalform. Lösung: Siehe Programmbeispiel 2-3.
M2.4
Skizzieren Sie die Struktur des Systems in einem Blockdiagramm. Lösung: Siehe Bild 2-2.
M2.5
Überprüfen Sie Ihr Ergebnis durch Simulation der Impulsantwort. Lösung: Siehe Programmbeispiel 2-3.
MATLAB-Beispiel 2-4 Darstellung der Zustandsvariablen im Zustandsraum für ein System 2. Ordnung mit konjugiert komplexem Polpaar Das folgende Beispiel stellt die bisherigen Ergebnisse zusammen und gibt Einblick in den Zustand der Systeme. Hierfür wählen wir wieder das System 2. Ordnung mit konjugiert komplexem Polpaar in M2.3. H ( z)
1 2 z 1 z 2 1 1.4 z 1 0.74 z 2
(2.21)
Wir simulieren das System in der Zustandsraumdarstellung, in der Direktform II und in der daraus abgeleiteten Normalform. Die Zustände der Systeme visualisieren wir über der Zeit im Zustandsraum. Dazu stellen wir die Zustandsvektoren s[n] = (s1[n], s2[n]) in der (s1, s2)-Ebene zu den Zeitpunkten n = 1, 2, … als Punkte dar.
2.4 Normalform
21
0.7
–5.28 D
x[n]
s1[n]
–0.5
y[n]
–0.5
3.4 D
s2[n]
0.7 Bild 2-2
Struktur des Systems 2. Ordnung mit konjugiert komplexem Polpaar in Normalform bei Transformation von der Direktform II
Programmbeispiel 2-3 System 2. Ordnung in Normalform % 2nd order filter in normal form % lab2_3.m * mw * 06/01/2006 %% State-space representation in direct form II und normal form b = [1 2 1]; a = [1 -1.4 .74]; % numerator and denominator ssr = struct('A',[0 1; -a(3) -a(2)],'B',[0;1],... 'C',[b(3)-a(3)*b(1) b(2)-a(2)*b(1)],'D',b(1),... 'S',[0;0],'form','DF2'); % transform to normal form p = roots(a); z=p(1); T = [-1 0; -real(z) imag(z)]/imag(z); T_1 = inv(T); % transform matrix ssr(2).A = T_1*ssr(1).A*T; ssr(2).B = T_1*ssr(1).B; ssr(2).C = ssr(1).C*T; ssr(2).D = ssr(1).D; ssr(2).S = [0; 0]; ssr(2).form = 'NF2'; %% Filtering N = 50; % number of simulation cycles = N + 1 x = [1 zeros(1,N)]; % input signal (impulse) [y,S] = ssr_filter(ssr(2),x); % filtering %% Graphics – Impulse response FIG1 = figure('Name','lab2_3 : impulse response (N)',... 'NumberTitle','off'); MAX = max(abs(y)); stem(0:N,y/MAX,'filled'); axis([0 N -.5 1]); grid; xlabel('n \rightarrow'), ylabel(['h[n] / MAX \rightarrow']) text(.82*N,.86,['MAX = ',num2str(MAX)]) title('Impulse response')
22
2 Diagonalform und Normalform
Die Umsetzung in eine MATLAB-Simulation zeigen die Programmbeispiele 2-4. Es wurde das Hauptprogramm (M-File) lab2_4 mit den drei Unterprogrammen (function) ssr_ABCD, ssr_filt_State und plot_State erstellt. Die Funktion ssr_ABCD erzeugt die Zustandsraumdarstellung. Die Simulation der Systeme wird mit der Funktion ssr_filt_State realisiert, wobei die Zustände gespeichert und an das aufrufende Programm zur weiteren Analyse übergeben werden. Die Funktion plot_State übernimmt die grafische Darstellung der Zustände im Zustandsraum. Die Darstellung der Zustände in Bild 2-3 zeigt für alle Realisierungen das für stabile Systeme erwartete Verhalten. Nach anfänglicher Auslenkung der Zustände aus dem energiefreien Nullzustand, s = 0, gehen die Zustände auf den für komplex exponentielle Größen typischen spiralförmigen Bahnen asymptotisch wieder in den Nullzustand über. Die Realisierungen unterscheiden sich deutlich in der Form der Spiralbahnen. Für den ersten Zustand gilt bei der Direktform II s[1] = (0,1). Beim Vergleich der Bilder beachte man auch die unterschiedlichen Maßstäbe. Die Zustände der Normalform werden gleichmäßiger ausgesteuert was an der Öffnung der Spirale erkennbar ist. Die Zustandsvariablen sind weniger korreliert als im Beispiel der Direktform. Mit der Zustandsraumdarstellung werden die inneren Zustände der Systeme einer Optimierung zugänglich. Darüber hinaus ist die Zustandsraumdarstellung der Ausgangspunkt für anspruchsvolle Anwendungen in der Regelungstechnik zur dynamischen Systemidentifikation und Prozessregelung. Anmerkung: Zur Kontrolle können die Impulsantworten nachträglich verglichen werden, siehe auch Bild 1-2. Die Impulsantworten sind identisch. Die Systeme sind in ihren Eingangs-Ausgangsverhalten äquivalent.
1
2
0.8
1.5
0.6 1
0.4 0.2 s 2[n] o
s 2[n] o
0.5 0
0 -0.2
-0.5
-0.4 -1
-0.6 -1.5 -2 -2
Bild 2-3
-0.8 -1
0 s 1[n] o
1
2
-1 -1
-0.5
0 s 1[n] o
0.5
Reaktion des Systems 2. Ordnung mit konjugiert komplexem Polpaar zf1,2 = 0.7 r j 0.5 im Zustandsraum entsprechend der Direktform II (links) und der Normalform (rechts) auf eine Impulserregung im energiefreien Zustand. Die Bilder zeigen jeweils die Zustandsvariablen im Symbolraum (s1, s2) für n = 1 bis 20 auf Spiralbahnen von außen nach innen laufend. (lab2_4)
1
2.4 Normalform
23
Programmbeispiel 2-4 Simulation des Systems 2. Ordnung im Zustandsraum % 2nd order filter in state-space representation with % respect to direct form II and normal form % lab2_4.m * mw * 01/06/2007 b = [1 2 1]; a = [1 -1.4 .74]; % numerator and denominator N = 30; % number of simulation cycles = N + 1 x = [1 zeros(1,N)]; % input signal (impulse) ssr = ssr_ABCD(b,a,'DF2'); % direct form II [yDF2,S,SmDF2] = ssr_filt_State(ssr,x); % filtering plot_State(SmDF2,'DF2') % graphics ssr(2) = ssr_ABCD(b,a,'NF2'); % normal form [yNF2,S,SmNF2] = ssr_filt_State(ssr(2),x); % filtering plot_State(SmNF2,'NF2') % graphics
% state-space representation of 2nd order systems % function ssr = ssr_ABCD(b,a,Form) % b, a - numerator and denominator coefficients % Form - form of state-space representation % 'DF2' direct form II -> normal form 'NF2' % 'TDF2' transposed direct form II -> normal form 'NFT2' % ssr - state-space representation unscaled % ssr_ABCD.m * mw * 01/06/2007 function ssr = ssr_ABCD(b,a,Form) % state space representation unscaled if strcmp(Form,'DF2') || strcmp(Form,'NF2') % direct form II ssr.A = [0 1;-a(3) -a(2)]; ssr.B = [0;1]; ssr.C =[b(3)-a(3)*b(1) b(2)-a(2)*b(1)]; ssr.D = b(1); if strcmp(Form,'NF2') % normal form p = roots(a); z=p(1); T = [-1 0; -real(z) imag(z)]/imag(z); T_1 = inv(T); % 2 -> N ssr.A = T_1*ssr.A*T; ssr.B = T_1*ssr.B; ssr.C = ssr.C*T; end elseif strcmp(Form,'TDF2') || strcmp(Form,'NFT2') % transposed ssr.A = [-a(2) 1;-a(3) 0]; ssr.B = [b(2)-a(2)*b(1); b(3)-a(3)*b(1)]; ssr.C = [1 0] ; ssr.D = b(1); if strcmp(Form,'NFT2') % normal form p = roots(a); z=p(1); T = [0 -1; imag(z) real(z)]/imag(z); T_1 = inv(T); % 2t -> N ssr.A = T_1*ssr.A*T; ssr.B = T_1*ssr.B; ssr.C = ssr.C*T; end else fprintf('ERROR : ssr_ABCD, incorrect form %s',Form) end ssr.S = [0; 0]; ssr.form = Form;
% simulation of filter in state-space representation with recording % of states for later analysis % function [y,S,Sm] = ssr_filt_State(ssr,x) % ssr - state space representation % structure with fields A, B, C, D, S (state), form % x,y,S - input signal, output signal, final state % Sm - state memory % ssr_filt_State.m * mw * 01/06/2007
24
2 Diagonalform und Normalform
function [y,S,Sm] = ssr_filt_State(ssr,x) S = ssr.S; % initial state y = zeros(1,length(x)); % output signal Sm = zeros(2,length(x)); % state memory for n=1:length(x) y(n) = ssr.C*S + ssr.D*x(n); % compute output signal S = ssr.A*S + ssr.B*x(n); % update state variables Sm(:,n) = S; % save state for later analysis end
% plot output signal and state variables of 2nd order system % function plot_hS(S,Text) % S : state variables % Text : text displayed at figure title % plot_State.m * mw * 06/01/2007 function plot_State(S,Text) FIG = figure('Name',['plot_State: State variables : ',Text],'NumberTitle','off',... 'Units','normalized','Position',[.3 .5 .325 .5]); M = 20; Max = max(max(abs(S(1,:)),abs(S(2,:)))); Mac = ceil(Max); plot(S(1,1:M),S(2,1:M),'k:',S(1,1:M),S(2,1:M),'o') axis([-Mac Mac -Mac Mac]); grid; xlabel('s_1[n] \rightarrow'),ylabel('s_2[n] \rightarrow') title(Text)
Hinweise zu MATLAB Im Folgenden werden für die Versuchsdurchführung nützliche und ergänzende MATLAB-Befehle und -Funktionen aufgelistet. Mit der Help-Funktion, z. B. help struct, können Sie sich Erläuterungen und Beispiele am Bildschirm anzeigen lassen; siehe auch Versuch 1. Signal Processing Toolbox
zp2ss
MATLAB functions
eig, fprintf, function, imag, inv, j, max, min, num2str, poly, real, strcmp, struct
Þ Online-Ressourcen zu Versuch 2 lab2_1.m, lab2_2.m, lab2_3.m, lab2_4.m, ssr_ABCD, ssr_filt_State, ssr_filt, plot_State und Programme mit Ergebnissen im HTML-Format
25
3
Skalierung und Koeffizientenquantisierung
3.1
Einführung
Trotz der Fortschritte der Mikroelektronik, oder gerade wegen der sich dadurch ergebenden neuen Anwendungen in Massenmärkten, sind manche Herausforderungen in der digitalen Signalverarbeitung über Jahrzehnte gleich geblieben: Niedrige Preise und sparsame Energieaufnahme werden mit stark eingeschränkter Zahlendarstellung und geringem Speicherumfang eingetauscht. Bei großen Stückzahlen und für Anwendungen, die an Leistungsgrenzen gehen, lohnt es sich oft die digitalen Systeme auf die Zielhardware zu optimiert. In diesem und im nächsten Versuch werden dafür wichtige Grundlagen gelegt. Problemstellungen bei realen Systemen werden analysiert und Lösungsansätze vorgestellt. Dabei werden Grundkenntnisse über die Zahlendarstellung auf Digitalrechnern und den Entwurf digitaler Filter vorausgesetzt. Die im Versuch benötigten Zusammenhänge werden deshalb nur kurz wiederholt. Lernziele Nach Bearbeiten des Versuchs können Sie x fünf Kriterien zur Skalierung der Systeme aufzählen und ihre Anwendung bewerten x die Bedeutung von Überläufen aufzeigen, den Begriff Scheitelfaktor erläutern und die Überlaufwahrscheinlichkeit berechnen x für Systeme 2. Ordnung die Impulsantwort und ihre Energie berechnen x eine Skalierung der Systeme nach der l2-Norm durchführen x die Impulsantwort des Systems aus der Zustandsraumdarstellung mit MATLAB berechnen x die Auswirkung der Koeffizientenquantisierung anhand von Systemen 2. Ordnung in der Direktform II und in der Normalform im Pol-Nullstellendiagramm darstellen und den Effekt der Polausdünnung veranschaulichen x die Koeffizientenquantisierung und Skalierung auf ein System höherer Ordnung anwenden
3.2
Skalierung der Systeme
3.2.1
Ziele der Skalierung
Beim Einsatz digitaler Systeme in Festkomma-Arithmetik spielt die Aussteuerung des Zahlenbereichs durch die Signale eine entscheidende Rolle [LBSL97]. Einerseits sind Übersteuerungen zu vermeiden, andererseits ist das am Ausgang wirksame Signal-Quantisierungsgeräuschverhältnis (SNR, Signal-to-Noise Ratio) klein zu halten. Beide Wünsche stehen sich entgegen: Schwächt man das Signal am Systemeingang soweit ab, dass Überläufe nicht mehr auftreten können, so verringert sich das SNR, da die Leistung des Quantisierungsgeräusches vom Eingangssignal unabhängig ist. Für die praktische Realisierung muss deshalb ein Kompromiss eingegangen werden. In Tabelle 3-1 werden für das Eingangssignal fünf typische Fälle betrachtet und Abschätzungen des Wertebereiches des Ausgangssignal idealer LTI-Systeme gegeben.
26
3 Skalierung und Koeffizientenquantisierung
Gehen wir von Maschinenzahlen aus, deren Betrag stets kleiner gleich 1 ist, kann für sinusförmige Eingangssignale ein Überlauf ausgeschlossen werden, wenn der Betragsfrequenzgang stets kleiner gleich 1 ist. Das System ist vorab entsprechend zu skalieren. Auch im zweiten Fall, ist der Betrag des Eingangssignals auf Werte kleiner gleich 1 beschränkt. Im ungünstigsten Fall haben alle Eingangswerte den Betrag 1 und überlagern sich alle konstruktiv, wobei sie noch durch die Impulsantwort gewichtet werden. Ist die Impulsantwort absolut summierbar, so ist der Betrag des Ausgangssignals stets kleiner höchstens gleich der l1-Norm der Impulsantwort. Sollen Überläufe ausgeschlossen werden, ist eine Skalierung des Eingangssignals nach der l1-Norm vorzunehmen. Die l1-Skalierung ist konservativ. Meist ist das Eingangssignal eine Musterfunktion eines mittelwertfreien stochastischen Prozesses mit quasi-zufällig wechselnden Vorzeichen, sodass sowohl die Beträge des Eingangssignals meist deutlich kleiner 1 sind, als auch sich in der Faltungssumme eine gewisse Kompensation aufgrund wechselnder Vorzeichen ergibt. Können gelegentliche Überläufe, insbesondere bei einem System mit Sättigungskennlinie, toleriert werden, so bietet sich eine Skalierung nach der l2-Norm an. Tabelle 3-1 Abschätzung des Wertebereichs für kausale LTI-Systeme mit Impulsantwort h[n] und Frequenzgang H(e j:) Eingangssignal x[n] Sinusförmiges Signal
x[n] = cos(:n) Betragsbegrenzung
|x[n]| d 1 Energiebegrenzung n
¦
x 2 [k ] d 1
Abschätzung des Wertebereichs des Ausgangssignals y[n]
y[n] d max H e j: :
y[n] d
f
¦ h[n]
h 1 (l1-Norm)
n 0
12
ªf º y[n] d « ¦ h 2 [n]» ¬n 0 ¼
h
2
(l2-Norm)
k f
Stationäres Eingangssignal mit Leistungsdichtespektrum
Effektivwert (Leistung am Systemausgang)
Sxx(:)
ª E y 2 [n] º ¬ ¼
Weißes Rauschen mit Varianz gleich 1
Effektivwert (Leistung am Systemausgang)
Sxx(:) = 1
ª E y 2 [ n] º ¬ ¼
12
12
ª 1 S j: « ³ S xx (:) H e «¬ 2S S
ª 1 S j: « ³ H e 2 S S ¬«
2
2
12
º d :» »¼
12
º d :» ¼»
h
2
Die Anwendung der l2-Skalierung wird in der Regel mit der letzten Zeile von Tabelle 3-1 begründet. Ist das Eingangssignal eine Musterfunktion eines weißen Zufallsprozesses mit der Varianz 1, so erhält man am Ausgang eine Musterfunktion eines Zufallsprozesses mit der Varianz gleich der Energie der Impulsantwort, der l2-Norm der Impulsantwort. Wegen dieses Zusammenhangs spricht man auch vom Leistungsübertragungsfaktor des Systems. Die Skalierung nach der l2-Norm bietet die Möglichkeit die Wahrscheinlichkeit für einen Überlauf abzuschätzen.
3.2 Skalierung der Systeme
3.2.2
27
Überlaufwahrscheinlichkeit
Gehen wir von einer mittelwertfreien Normalverteilung N(0,Vy2) der Ausgangsgröße y[n] des Systems aus, so kann die Wahrscheinlichkeit eines Überlaufes am Ausgang berechnet werden. Anmerkung: Am Ausgang von LTI-Systemen lässt sich meist eine Normalverteilungen beobachten, da in den Systemen Linearkombinationen von stochastischen Variablen gebildet werden. Werden viele stochastische Variablen addiert, wobei keine einen dominanten Beitrag liefert, so ist die Situation vergleichbar mit den Annahmen, die bei Herleitung des zentralen Grenzwertsatz der Wahrscheinlichkeitsrechnung benutzt werden. Letzterer führt auf eine Normalverteilung.
Mit der Varianz des Eingangssignals Vx2 gilt für die Varianz des Ausgangssignals
V y2
V x2 h
(3.1)
2
mit der l2-Norm der Impulsantwort, dem Leistungsübertragungsfaktor. Ein Überlauf tritt auf, wenn der Betrag des Ausgangssignals einen Wert größer als 1 annimmt. Die Wahrscheinlichkeit eines Überlaufes, englisch overflow, berechnet sich aus dem Integral der Wahrscheinlichkeitsdichtefunktion, der gaußschen Glockenkurve, zur N(0,Vy2)-Verteilung. Nach Zwischenrechnung ergibt sich über das gaußsche Fehlerintegral schließlich die Form f
Po
2 ³ f y ( x) dx 1
§ 1 · ¸ erfc ¨ ¨Vy 2 ¸ © ¹
(3.2)
mit der komplementären Fehlerfunktion (erfc, complementary error function). Letztere kann in MATLAB mit erfc direkt aufgerufen werden. In der Signalverarbeitung wird das Verhältnis von Maximalwert und Effektivwert Scheitelfaktor, englisch crest factor, genannt. Mit der Aussteuerungsgrenze gleich 1 und der Varianz des Signals V 2 gilt 1
Gc
(3.3)
V
Mit dem Scheitelfaktor als Parameter wird die Überlaufwahrscheinlichkeit Po
erfc G c
2
(3.4)
Ihr Verlauf ist in Bild 3-1 zu sehen. Üblich sind Scheitelfaktoren in Bereich von drei bis fünf, also Überlaufwahrscheinlichkeiten von 2.710–3 bis 5.710–7.
3.2.3
Vorbereitende Aufgaben
A3.1
Berechnen Sie analytisch die Impulsantwort h[n], die Zeit-Autokorrelationsfunktion (Zeit-AKF) Rhh[l] und den Leistungsübertragungsfaktor ||h||2 für ein stabiles, kausales System 2. Ordnung mit konjugiert komplexem Polpaar.
Hinweise: (i) Gehen Sie von der Übertragungsfunktion 2. Ordnung aus und berechnen Sie die Impulsantwort durch inverse z-Transformation mit der Partialbruchzerlegung. (ii) Die Zeit-Autokorrelationsfunktion der Impulsantwort ist
28
3 Skalierung und Koeffizientenquantisierung
Rhh [l ]
h[l ] h[l ]
f
¦
h[n]h[l n]
(3.5)
n f
Für die Zeit-AKF gehen Sie ähnlich vor. Bedenken Sie, dass diese eine gerade Funktion ist, sodass Sie zunächst nur den rechtsseitigen Anteil (l t 0) für die stabilen Pole im Einheitskreis bestimmen müssen (Residuensatz). 0
10
Po –2
10
–4
10
–6
10
–8
10
–10
10
2
3
4
5
6
Gc
Bild 3-1 Überlaufwahrscheinlichkeit Po in Abhängigkeit vom Scheitelfaktor Gc
3.2.4
Versuchsdurchführung
M3.1
Bestimmen Sie mit MATLAB die Impulsantwort und die Zeit-AKF des Systems 2. Ordnung mit den Koeffizienten b0 = 1, b1 = 2, b2 = 1, a0 = 1, a1 = –1.4 und a2 = 0.74. Stellen Sie die Folgen grafisch dar. Vergleichen Sie Ihre Ergebnisse mit den analytischen Werten nach A3.1.
3.3
Koeffizientenquantisierung
3.3.1
Zahlendarstellung im Zweierkomplement-Format
Digitale Systeme, wie Tiefpassfilter, werden in der Regel auf Computern mit relativ aufwändiger Zahlendarstellung entworfen. MATLAB stellt dazu u. a. das Werkzeug Filter Design and Analysis Tool (fdatool) und das Gleitkomma-Zahlenformat IEEE 754-1985 Double Precision zur Verfügen. Die Realisierung der Systeme geschieht jedoch häufig mit den eingeschränkten Möglichkeiten preiswerter und/oder energiegenügsamer Hardware, wie typische 16-Bit-Festkomma-Mikrocontroller. Wir betrachten darum im Weiteren Maschinenzahlen im gebräuchlichen Zweierkomplement-Format mit der Wortlänge von w Bit. x
w1
a0 20 ¦ ai 2i i 1
mit
ai {0,1} und 1 d x d 1 2 w1
(3.6)
3.3 Koeffizientenquantisierung
29
Die Umrechnung der Koeffizienten vom Filterentwurf auf die Zielhardware, auf das Zweierkomplement-Format, geschieht vor dem Betrieb der Systeme. Die dazu notwendige Koeffizientenquantisierung ändert in der Regel den Frequenzgang. Werden die Entwurfsvorgaben verletzt, lassen sich verschiedene Gegenmaßnahmen ergreifen. Beispielsweise kann, wenn die Mindest-Sperrdämpfung verletzt wird, ein Neuentwurf mit strengeren Toleranzvorgaben versucht werden, sodass die durch Koeffizientenquantisierung verursachten Abweichungen aufgefangen wird. Eine andere Methode ist, statt die Koeffizienten einfach zu runden, nach passenderen Maschinenzahlen in der Umgebung der idealen Koeffizienten zu suchen. Unter idealen Bedingungen lassen sich Systeme bei gleicher Übertragungsfunktion in unterschiedlichen Strukturen realisieren. Bei einem rekursiven System 2. Ordnung beispielsweise in der häufig verwendeten transponierten Direktform II oder in der Normalform. Da die Formen unterschiedliche Zahlenwerte für die Koeffizienten verwenden, liefert deren Darstellung als Maschinenzahlen verschiedene Systeme. Dabei können auch spezielle Probleme auftreten wie bei der Direktform II und ihrer Transponierten, wenn die Realisierung der Multiplikatoren auf Werte betragsmäßig kleiner 1 beschränkt sind. Es entstehen spezielle Varianten, wenn, wie in Bild 3-2, der Beschränkung des Koeffizienten a1 < 1 durch doppelte Addition abgeholfen wird. In kritischen Anwendungen können deshalb spezifische Überlegungen zu einer geeigneten Struktur sinnvoll sein. Anmerkung: Die nichtrekursiven Finite-Impulse-Response-(FIR-)Systeme erweisen sich als weniger empfindlicher gegenüber der Koeffizientenquantisierung als die rekursiven Infinite-Impulse-Response-(IIR-) Systeme. Insbesondere bleiben bei FIR-Systemen eventuelle Symmetrien zwischen den Koeffizienten, und damit die Linearphasigkeit, erhalten. Einführende Beispiele hierzu findet man in [Wer06].
x[n] b1
b2
D –a2
b0
D
y[n]
–a1/2
Bild 3-2
System 2. Ordnung in der transponierten Direktform II mit doppelter Addition des quantisierten Koeffizienten a1/2
3.3.2
Vorbereitende Aufgaben
A3.2
Am Beispiel der System 2. Ordnung soll die Koeffizientenquantisierung veranschaulicht werden. Kausale, stabile und reellwertige Systeme werden vorausgesetzt. Gehen Sie von einem konjugiert komplexen Polpaar aus und stellen Sie analytisch den Zusammenhang zwischen den Koeffizienten der Zustandsraumdarstellungen in transponierter Direktform II und Normalform und den Polen der zugehörigen Übertragungsfunktionen her. Hinweis: Bei der Realisierung der Systeme in Direktform II oder ihrer Transponierten wird dem Problem der Beschränkung des Koeffizienten a1 < 1 durch doppelte Addition abgeholfen, siehe Bild 3-2.
30
3 Skalierung und Koeffizientenquantisierung
3.3.3
Versuchsdurchführung
M3.2
Die Versuchsdurchführung knüpft an die Aufgabe A3.2 an. Stellen Sie für Systeme 2. Ordnung in der transponierten Direktform II und der Normalform die möglichen Lagen der konjugiert komplexen Pole in der z-Ebene grafisch dar. Gehen Sie von einer Koeffizientenquantisierung im Zweierkomplement-Format mit der Wortlänge von 5 Bit aus. Diskutieren Sie die Ergebnisse. Hinweise: (i) Die Zahl –1 wird als Maschinenzahl nicht zugelassen. Das zugehörige Bitmuster wird in Anwendungen manchmal zur Anzeige besonderer Ereignisse reserviert. (ii) Das System in transponierter Direktform II in Bild 1-1 wird so modifiziert, dass das Ergebnis der Multiplikation zum Koeffizient a1 doppelt addiert wird. Also tatsächlich aus der Übertragungsfunktion a1 / 2 verwendet und quantisiert wird. Der Fall a1 < 1 soll hier nicht gesondert betrachtet werden, was beispielsweise eine einheitlichen Softwarerealisierung unterstützt. (iii) Siehe MATLAB-Befehl scatter.
3.4
Fallbeispiel: Cauer-Tiefpass 6. Ordnung
3.4.1
Filterentwurf, Kaskadenform und Pol-Nullstellenaufteilung
In diesem Abschnitt wird der Wirkung der Koeffizientenquantisierung und Skalierung an einem Beispiel nachgegangen. Kenntnisse im Entwurf von Standardtiefpässen werden vorausgesetzt, weshalb im Folgenden nicht näher darauf eingegangen wird. Das Fallbeispiel kann jedoch auch ohne diese Kenntnisse nachvollzogen werden. Zunächst wird in Bild 3-3 die Realisierung des Filters in Kaskadenform vorgestellt. Theoretische Überlegungen und praktische Erfahrungen zeigen, dass eine Kaskade von Blöcken 1. und 2. Ordnung eine relativ robuste Realisierung liefert. Für die Übertragungsfunktion eines Systems 6. Ordnung mit konjugiert komplexen Polpaaren ergibt sich die Aufteilung in drei Blöcke 2. Ordnung. H ( z)
H1 ( z ) H 2 ( z ) H 3 ( z )
(3.7)
Es entsteht die Aufgabe eine geeignete Aufteilung der Pole und Nullstellen auf die Blöcke zu finden. Diese kann beispielsweise analytisch geschehen und bezüglich des später noch behandelten inneren Geräuschs optimiert werden [RoMu87]. Meist wird jedoch eine bewährte Faustregel angewandt, die auch in MATLAB eingesetzt wird. Leitgedanke dabei ist es, den Einfluss von Nullstellen und Polen auf den Frequenzgang der Blöcke möglichst auszugleichen, d. h. einen möglichst flachen Verlauf des Frequenzganges zu erreichen. Aus diesem Grund werden den konjugiert komplexen Polpaaren die jeweils nächsten konjugiert komplexen Nullstellenpaare zugeordnet. Üblicherweise wird mit dem Polpaar, das dem Einheitskreis am nächsten liegt, begonnen. Für die weiteren Blöcke wird entsprechend vorgegangen. Bild 3-4 illustriert die Vorgehensweise am Beispiel eines Cauer-Tiefpasses 6. Ordnung. Die Anordnung der Blöke in der Kaskade geschieht meist in der umgekehrten Reihenfolge, weshalb in Bild 3-4 die Nummerierung 3, 2 und 1 gewählt wurde. X(z)
H1(z)
H2(z)
HK(z)
Bild 3-3 Kaskadenform mit K Blöcken 1. und 2. Ordnung
Y(z)
3.4 Fallbeispiel: Cauer-Tiefpass 6. Ordnung
31
Imaginärteil z
e d c
Einheitskreis
Realteil
d e
Bild 3-4
Pol-Nullstellen-Diagramm zum Cauer-Tiefpass 6. Ordnung mit Aufteilung der Pole und Nullstellen in drei Blöcke 2. Ordnung nach der Faustregel
3.4.2
Versuchsdurchführung
Filterentwurf mit MATLAB M3.3
Es soll ein Cauer-Tiefpass (Elliptic filter) nach Vorgaben eines Toleranzschemas für den Betragsfrequenzgang entworfen werden. Es sei die normierte Durchlass-Kreisfrequenz :p = 0.2 und die normierte Sperr-Kreisfrequenz :s = 0.3. Die Durchlasstoleranz im logarithmischen Maß soll Ap,dB = 0.5 dB sein und die Sperrtoleranz soll As,dB = 60 dB betragen. Anmerkung: Im Englischen werden die entsprechenden Entwurfsparameter passband radian frequency :p, stopband radian frequency :s, passband ripple Ap und stopband attenuation As genannt.
Den Filterentwurf führen Sie mit dem MATLAB-Werkzeug Filter Design and Analysis Tool durch. Es öffnet sich nach Eingabe von fdatool im Command Window. Bild 3-5 zeigt die Benutzeroberfläche mit den notwendigen Einstellungen und dem sich ergebenden Betragsfrequenzgang. Nach dem Entwurf (Design Filter) resultiert ein IIR-System 6. Ordnung mit drei konjugiert komplexen Polpaaren. Sie können sich im Filter Design and Analysis Tool die Pole und Nullstellen in einem Pol-Nullstellen-Diagramm anzeigen lassen, siehe Bild 3-4. Anmerkung: Das Filter Design and Analysis Tool und das darin verwendete Filter Viewer Tool bieten in der Werkzeugleiste eine Auswahl von Anzeigen zu unterschiedlichen charakteristischen Systemfunktionen an: Betragsfrequenzgang, Frequenzgang der Phase, Frequenzgang der Gruppenlaufzeit, Impulsantwort, Sprungantwort, Pol-Nullstellen-Diagramm und Filterkoeffizienten.
32
3 Skalierung und Koeffizientenquantisierung
Bild 3-5 Filterentwurf mit dem MATLAB-Werkzeug Filter Design and Analysis Tool (fdatool)
M3.4
Nun übertragen Sie die Koeffizienten des Filters in den MATLAB Arbeitsspeicher, den Workspace. Dazu wählen Sie im Menü File die Option Export. Es öffnet sich das Menü-Fenster mit den gewünschten Standard-Einstellungen. Nach Anwahl der Bestätigung Export stehen die Filterkoeffizienten als Programmvariable SOS (Second order sections) und ein Skalierungsfaktor G (Gain) im Workspace zur Verfügung. Mit der Eingabe SOS werden die Koeffizienten angezeigt, siehe Tabelle 3-2. Es resultiert eine 3u6 Matrix. Jede Zeile enthält die Koeffizienten eines Blockes 2. Ordnung: zuerst die drei Zählerkoeffizienten b0, b1 und b2 und anschließend die drei Nennerkoeffizienten a0, a1 und a2. Der Skalierungsfaktor G(1) ist 0.0031697. Tabelle 3-2 MATLAB-Anzeige der Filterkoeffizienten als Programmvariablen SOS 1.0000 1.0000 1.0000
0.7724 -0.9573 -1.2851
1.0000 1.0000 1.0000
1.0000 1.0000 1.0000
-1.5743 -1.5520 -1.5629
0.6496 0.7965 0.9396
3.4 Fallbeispiel: Cauer-Tiefpass 6. Ordnung
33
Untersuchung der Blöcke 2. Ordnung M3.5
a) Stellen Sie die Pol-Nullstellen-Diagramme des Cauer-Tiefpasses und der Teilsysteme grafisch dar. Vergleichen Sie das Ergebnis mit der Aufteilung nach der Faustregel. Hinweise: (i) Mit dem MATLAB-Befehl sos2tf können die Blöcke zur Überprüfung wieder zum Gesamtsystem zusammengefasst werden. (ii) Verwenden Sie das MATLAB-Werkzeug Filter Viewer Tool (fvtool) oder den MATLAB-Befehl zplane, wie z. B. in der Programmzeile zplane(SOS(1,1:3),SOS(1,4:6))
b) Stellen Sie die Betragsfrequenzgänge der Blöcke im linearen und logarithmischen Maßstab grafisch dar. Überlagern Sie auch die Frequenzgänge gemäß der Kaskadenform und erstellen Sie ein Bild vom resultierenden Betragsfrequenzgang. Hinweis: Teilen Sie den Skalierungsfaktor G(1) gleichmäßig auf die Blöcke auf. Verwenden Sie das MATLAB-Werkzeug Filter Viewer Tool (fvtool) oder den MATLAB-Befehl freqz, wie z. B. in der Programmzeile [H1,w] = freqz(G(1)^.25*SOS(1,1:3),SOS(1,4:6),N);
c) Vergleichen Sie den Betragsfrequenzgang des Blocks 3 mit dem Betragsfrequenzgang des Systems 2. Ordnung, welches sich ergäbe, würde man dem Polpaar das entfernteste Nullstellenpaar zuordnen. Diskutieren Sie die Ergebnisse mit Blick auf die Faustregel und Skalierung der Blöcke. Skalierung der Blöcke 2. Ordnung M3.6
Da ein Tiefpass nach Vorschriften in Frequenzbereich entworfen wurde, dessen Betragsfrequenzgang auf den Maximalwert 1 begrenzen ist, wird diese Form der Skalierung auf die Blöcke übertragen, siehe Tabelle 3-1 für sinusförmige Eingangssignale. a) Skalieren Sie den erste Block so, dass das Maximum seines Betragsfrequenzgangs 1 wird. b) Skalieren Sie den zweiten Block so, dass das Maximum des Betragsfrequenzgangs der Kaskade aus Block 1 und 2 gleich 1 wird. c) Den dritten Block skalieren Sie so, dass das Gesamtsystem der Bedingung in Tabelle 3-1 für sinusförmige Eingangssignale entspricht. Stellen Sie die Betragsfrequenzgänge der skalierten Teilsysteme und des sich daraus ergebenden Gesamtsystems grafisch dar. Skalieren Sie die Koeffizienten der Teilsysteme entsprechend und stellen Sie die Koeffizienten in einer Tabelle zusammen.
Koeffizientenquantisierung für die transponierte Direktform II M3.7
Das System soll in der transponierten Direktform II realisiert werden. Bringen Sie die Koeffizienten der Blöcke auf das Zweierkomplement-Format mit einer Wortlänge von 8 bzw. 16 Bit. Stellen Sie die quantisierten Werte in einer Tabelle zusammen. Hinweis: Der Koeffizient a1/2 soll wie in Bild 3-2 vorgeschlagen quantisiert werden. In Programmbeispiel 3-1 wird eine mögliche Umsetzung der Koeffizientenquantisierung in MATLAB vorgestellt.
34
3 Skalierung und Koeffizientenquantisierung
Programmbeispiel 3-1 uQantisierung der Filterkoeffizienten [b,a] = sos2tf(SOSs); % direct form II scaled w = 8; LSB = 2^-(w-1); % word length and least significant bit SOSq(:,1:3) = LSB*round(SOSs(:,1:3)/LSB); % quantization SOSq(:,5) = 2* LSB*round(.5*SOSs/LSB); SOSq(:,6) = LSB*round(SOSs(:,6)/LSB); [bq,aq] = sos2tf(SOSq); % direct form II quantized fvtool(b,a,bq,aq) % filter viewer tool
M3.8
Bestimmen Sie die Betragsfrequenzgänge der quantisierten Blöcke und vergleichen Sie diese jeweils mit dem des ursprünglichen Blockes. Vergleichen Sie auch die Betragsfrequenzgänge des quantisierten Tiefpasses in Kaskadenform und des ursprünglichen MATLAB-Entwurfes.
Koeffizientenquantisierung für die Normalform M3.9
Wiederholen Sie die Aufgabe M3.7 für die Realisierung der Blöcke in Normalform. Hinweis: Gehen Sie für die Normalform von der Direktform II aus, siehe ssr_ABCD.
M3.10
Wiederholen Sie die Aufgabe M3.8 für die Realisierung der Blöcke in Normalform. Hinweis: Bestimmen Sie die Betragsfrequenzgänge der Einfachheit halber durch diskrete Fourier-Transformation aus den Impulsantworten zu den Blöcken, die Sie durch Simulation erhalten können, siehe ssr_filter und fft. Vergleichen Sie die Ergebnisse bei der Wortlänge von 8 Bit. Stellt die Koeffizientenquantisierung auf eine Wortlänge von 16 Bit ein kritisches Problem für mögliche Anwendungen dar? Anmerkung: Eine analytische Behandlung der Empfindlichkeit der Systeme bezüglich der Koeffizientenquantisierung findet man in Lehrbüchern der digitalen Signalverarbeitung, z. B. in [Mit98], [OSB99], [PrMa96], [RoMu87], [Sch94].
Hinweise zu MATLAB Siehe auch Versuche 1 und 2. Signal Processing Toolbox
fdatool, fvtool, filter, freqz, sos2tf, zplane
MATLAB functions
abs, angle, ceil, cos, erf, erfc, fft, fix, floor, imag, log10, max, min, pi, real, round, sin, sqrt, zeros, ones
MATLAB graphics
scatter, subplot, title
Þ Online-Ressourcen zum Versuch lab3_1.m, lab3_2.m, lab3_3.m, lab3_4.m, lab3_5, lab3_6, ssr_ABCD, ssr_filter und Programme mit Ergebnissen in HTML-Format
35
4
Skalierung der Zustandsvariablen
4.1
Einführung
Zwei wichtige Aspekte der Realisierung digitaler Systeme sind die Skalierung der Systeme und die Quantisierung der Koeffizienten. Dabei steht das Übertragungsverhalten der Systeme, ausgedrückt durch den Leistungsübertragungsfaktor und den Frequenzgang, im Vordergrund. Im letzten Versuch wurden die Skalierung und die Koeffizientenquantisierung am Fallbeispiel eines Cauer-Tiefpasses 6. Ordnung in Kaskadenform mit Blöcken 2. Ordnung demonstriert. In diesem Versuch bleibt die Skalierung das Thema. In den Mittelpunkt rücken nun die Zustände. Wir legen hierfür Systemrealisierungen in Kaskadenform zugrunde und betrachten im Folgenden die Blöcke 2. Ordnung genauer. Anmerkung: Eine ausführliche und weitergehende Darstellung der in diesem Versuch verwendeten Methoden sowie zahlreiche Literaturhinweise auf grundlegende Arbeiten findet man in [RoMu87], [Sch94].
Lernziele Nach Bearbeiten des Versuchs können Sie x das Konzept der Teilimpulsantworten f[n] und g[n] anhand eines Bildes vorstellen und die Teilimpulsantworten mit MATLAB berechnen x die Verteilung der Zustandsvariablen in der Zustandsebene beispielhaft skizzieren und den Zusammenhang mit der Form der Zustandsraumdarstellung aufzeigen x eine Skalierung der Zustandsvariablen nach der l2-Norm durchführen x die Wirkung der l2-Normierung im Zustandsraum erläutern x die Bedeutung der Kovarianzmatrix K für die Skalierung der Systeme aufzeigen und sie für Systeme 2. Ordnung berechnen
4.2
Impulsantworten
In den vorangehenden Versuchen wurde die Zustandsraumdarstellung vorgestellt, die Ausgangsgleichung und die Zustandsgleichung wurden eingeführt und der Zusammenhang mit der Übertragungsfunktion aufgezeigt. Es wurde die l2-Skalierung der Systeme behandelt und dazu die Impulsantwort verwendet.
4.2.1
Impulsantwort des Systems
In Tabelle 4-1 sind die Gleichungen der Zustandsraumdarstellung für ein kausales System mit einem Eingang und einem Ausgang nochmals zusammengestellt. In der letzten Zeile tritt die Impulsantwort als wichtige Systemfunktion hinzu. Sie lässt sich in wenigen Schritten aus der Zustandsraumbeschreibung ableiten. Zur Bestimmung der Impulsantwort betrachten wir die Reaktion des Zustandsvektors auf einen Impuls am Systemeingang. Dazu gehen wir zum Zeitpunkt n = 0 von einem energiefreien System, d. h. s[0] = 0, aus. Aus der Rekursion des Zustandsvektors in der Zustandsgleichung folgt
36
4 Skalierung der Zustandsvariablen
s[0] 0, s[1] b, s[2]
A b, s[3]
A 2 b, !
(4.1)
Für das Ausgangssignal gilt entsprechend h[0]
d , h[1] cT s[1] cT b, h[2] cT s[2] cT A b, h[3] cT A 2 b,
!
(4.2)
Also 0 n0 °° h[n] ®d n 0 ° T n 1 °¯c A b n ! 0
(4.3)
Mit der Impulsfunktion G[n] und der Sprungfunktion u[n] lässt sich die Impulsantwort in einer Zeile angeben, siehe Tabelle 4-1, (4.7). Tabelle 4-1 Systembeschreibung in der Zustandsraumdarstellung
y[n] cT s[n] d x[ n]
Ausgangsgleichung
s[n 1]
Zustandsgleichung
H ( z)
Übertragungsfunktion
A s[n] b x[n] 1
cT zI A b d
h[n] cT A n 1b u[n 1] d G [n]
Impulsantwort
(4.4) (4.5)
(4.6) (4.7)
An dieser Stelle ergibt sich ein Hinweis auf die Stabilität des Systems. Soll das System auf eine beliebige beschränkte Eingangsfolge mit einer beschränkten Ausgangsfolge antworten, so ist hinreichend, wenn die Grenzmatrix der A-Matrix null wird, d. h.
lim A n
nof
4.2.2
0
lim h[n] 0
n of
(4.8)
Teilimpulsantworten der Zustandsvariablen
Für die Realisierung der Systeme ist das Verhalten der Zustandsvektoren wichtig. Aus diesem Grund studieren wir zwei Fälle: die Impulserregung am Eingang und die (fiktive) Impulserregung in den Zuständen, siehe Bild 4-1. Zuerst betrachten wir die Reaktion des Zustandsvektors als innere Impulsantwort bei zunächst energiefreiem Zustand. Sie ist in (4.1) zu finden. Wir sprechen vom Vektor der Impulsantworten der Zustandsvariablen und schreiben 0 n 1 °° f [n] ®b n 1 ° n 1 °¯ A b n ! 1
(4.9)
4.2 Impulsantworten
37
Eingang Impuls
Eingang o Zustandsvariablen
G[n]
Zustandsvariablen o Ausgang
System
Ausgang
Zustand f[n]
Zustand s[n]
g[n]
Impuls G[n-1] Bild 4-1 Zur C harakterisierung des Systemverhaltens durch die Teilimpulsantworten f[n] und g[n]
Für die impulsförmige Erregung der Zustandsgrößen gehen wir wieder vom energiefreien Zustand im Zeitpunkt n = 0 aus. Statt einer Erregung am Eingang setzen wir die i-te Zustandsvariablen zu 1. Der Zustandsvektor s[1] ist dann gleich dem i-ten Einheitsvektor ei = (0,…0,1,0…0)T mit einer Eins in der i-ten Komponente und ansonsten lauter Nullen. Am Systemeingang ist die Erregung dabei stets null. Dann bestimmen wir das Ausgangssignal. yi [0] 0,
yi [1] ci ,
yi [2] cT s[2] cT A ei ,
yi [3] cT A 2 ei , !
(4.10)
Fasst man noch die Ausgangssignale zu allen Zuständen in einem Vektor g[n] zusammen, d. h. gi[n] = yi[n], so kann kompakt für die Impulsübertragung von den Zustandsgrößen zum Ausgang geschrieben werden
T
g [ n]
0 °° T ®c ° T n 1 °¯c A
n 1 n 1
(4.11)
n !1
Mit den beiden Teilimpulsantworten f[n] und g[n] sind zwei wesentliche Systemkenngrößen zur Skalierung realer digitaler Systeme gefunden. Abschließend halten wir noch der Vollständigkeit halber den Zusammenhang zwischen der Impulsantwort des Systems und den Teilimpulsantworten fest. 0 n 1 °° h[n] ®d n 1 ° T T °¯c f [n] g [n] b n ! 1
(4.12)
38
4.2.3
4 Skalierung der Zustandsvariablen
Skalierung der Zustandsvariablen nach der l2-Norm
Wir beschränken hier die Betrachtung auf den in der Praxis häufen Fall der Leistungs- bzw. Energieskalierung, auch Skalierung nach der l2-Norm genannt, siehe Tabelle 3-1. Erregt man ein System mit weißem Rauschen der Varianz V 2, so gilt für die Varianz der i-ten Zustandsvariablen
V i2
V 2 fi
2 2
(4.13)
mit dem Leistungsübertragungsfaktor vom Eingang zur i-ten Zustandsvariablen, der Energie der Teilimpulsantwort fi [n]. Anmerkung: Die betrachteten stationären Prozesse sind mittelwertfrei, sodass ihre Varianzen gleich den quadratischen Mittelwerten, den Leistungen, sind.
Soll für eine Zustandsvariable ein bestimmtes Verhältnis von Effektivwert zu Maximalwert, ein Scheitelwert, eingestellt werden, so ist eine entsprechende Transformation der Zustandsvariablen vorzunehmen. Dies kann durch eine Ähnlichkeitstransformation für den Zustandsvektor geschehen. st [n] T 1s[n]
(4.14)
Die Transformationsmatrix T
ª f « 1 «0 ¬
12 2
º » , 12 f 2 2 »¼
0
ª f « 1 «0 ¬
T1
1 2 2
0
º » 1 2 f 2 2 »¼
(4.15)
führt eine Normierung der Energie der Teilimpulsantworten auf den Wert 1 durch. Für die Koeffizienten der Zustandsraumdarstellung ergeben sich aus (2.14) bis (2.16) die Transformationsgleichungen T 1 A T , b t
At
T 1 b , cTt
cT T
(4.16)
4.2.4
Versuchsdurchführung
M4.1
Im Versuch 2 wurde das System 2. Ordnung mit den Koeffizienten b0 = 1, b1 = 2, b2 = 1, a0 = 1, a1 = –1.4 und a2 = 0.74 betrachtet. Es wurden die Systemdarstellungen in der Direktform II und der Normalform angegeben. Überprüfen Sie mit MATLAB, ob die jeweiligen A-Matrizen (4.8) genügen.
M4.2
Der zeitliche Verlauf der Teilimpulsantworten f[n] und g[n] soll für ein System 2. Ordnung mit MATLAB grafisch dargestellt werden. Verwenden Sie dazu das System aus M4.1 in der Direktform II und der Normalform. Führen Sie zuerst eine Skalierung nach der l2-Norm durch.
M4.3
Bestimmen Sie mit MATLAB die Energien der jeweiligen Folgen f[n] und g[n] in M4.2. fi
2 2
f
¦
n 0
fi 2 [n] und
gi
2 2
f
¦ gi2 [n]
n 0
(4.17)
4.2 Impulsantworten
39
Ist für weiße Prozesse am Systemeingang die Überlaufwahrscheinlichkeit in den Zuständen größer oder kleiner als am Systemausgang? M4.4
Der Wertebereich der Zustandsvariablen soll durch eine MATLAB-Simulation veranschaulicht werden. Betrachten Sie dazu wieder das System 2. Ordnung mit den Koeffizienten b0 = 1, b1 = 2, b2 = 1, a0 = 1, a1 = –1.4 und a2 = 0.74. Führen Sie zuerst eine l2-Skalierung des Systems durch. Wählen Sie als Eingangssignal eine in [–1,1] gleichverteilte, unkorrelierte Zufallszahlenfolge. Setzen Sie den Scheitelfaktor am Systemeingang zu Gc = 5. Stellen Sie die Zustandsvariablen in der Zustandsebene als Streudiagramm dar. Welche Formen haben die in der Zustandsebene erreichbaren Gebiete des Zustandsvektors? Schätzen Sie auch die linearen Mittelwerte und die mittleren Leistungen der Zustandsvariablen. Vergleichen Sie die Schätzwerte mit den zu erwartenden theoretischen Werten. Hinweise: (i) MATLAB-Befehle max, min, rand, mean, var, scatter. (ii) Bei zu vielen Punkten im Streudiagramm kann beim Drucken oder Speichern am PCein Problem auftreten. Dies kann umgangen werden, indem die Datenmenge durch ein vereinfachtes Histogramm, wie im Simulationsbeispiel in Bild 4-2 zu sehen, reduziert wird. Dazu teilt man die Zustandsebene in Teilflächen ein. Fallen mehrere Zustandsvektoren während der Simulation in eine Teilfläche, so wird am Ende nur ein Repräsentant aus der Teilfläche im Streudiagramm gezeigt. Alternativ können auch eine 2-dimensionale Häufigkeitsverteilung (hist2D) und ihre Höhenlinien (contour) dargestellt werden, siehe Simulationsbeispiel in Bild 4-3. Anmerkung: Bei der transponierten Direktform II enthält der Vektor b die Zählerkoeffizienten, sodass sich die l2-Skalierung des Systems direkt auf die Ansteuerung der Zustände auswirkt (1.8). In der Simulation bleiben die Zustandsgrößen deshalb auf Werte betragsmäßig kleiner 1 beschränkt. Die Simulation mit einem Stichprobenumfang von 106 liefert für sie die Varianzen 0.0395 bzw. 0.0217, was, verglichen mit der Varianz des Eingangssignals 1/25 = 0.04, einer geringen Abschwächung entspricht. Es tritt kein Überlauf auf. Allerdings wird der verfügbare Zahlenbereich nicht optimal genutzt, siehe s1 in Bild 4-2.
M4.5
In der Versuchsaufgabe M4.3 wurden die Energie der Folgen f[n] für das System in der Direktform II und der daraus abgeleiteten Normalform bestimmt. Gehen Sie wie in der Versuchsaufgabe M4.4 vor. Skalieren Sie zusätzlich die Zustandsvariablen nach der l2-Norm. Vergleichen Sie die neuen Ergebnisse mit denen aus der letzten Versuchsaufgabe M4.4. Hinweis: Bild 4-4 zeigt das Resultat für das System in transponierter Direktform II. Anmerkungen: (i) Zunächst ist daran zu erinnern, wie die transponierte Direktform II (2t) aus der Direktform II (2) entsteht: Eingang und Ausgang werden vertauscht und ebenso die Zustände, siehe Abschnitt 1.2.1. Demzufolge ergibt sich ein entsprechender Tausch für die Energien der Teilimpulsantworten. | f1| 22,2t = | g2| 22,2 = 0.98792 und | f2| 22,2t = | g1| 22,2 = 0.54180. (ii) Die l2-Skalierung der Zustandsvariablen führt zu einer gleichmäßigeren Aussteuerung. Die Spannweiten der Zustandsvariablen sind nun in Bild 4-4 in etwa gleich. (iii) Im Vergleich von Bild 4-2 und Bild 4-4 entspricht die l2-Skalierung geometrisch einer Drehung und Streckung des ellipsenförmigen Gebietes.
40
4 Skalierung der Zustandsvariablen 1 0.8 0.6 0.4
s2 o
0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1
Bild 4-2
-0.5
0 s1 o
0.5
1
Streudiagramm der Zustandsvariablen s[n] in der Zustandsebene für das System 2. Ordnung in transponierter Direktform II (Stichprobenumfang 106, vereinfachte Darstellung, M4.4, lab4_2)
10
f(s1,s 2) o
8 6 4 2 0 1 0.5
1 0.5
0
0
-0.5
m s2
Bild 4-3
-0.5 -1
-1
s1 o
Geschätzte Wahrscheinlichkeitsdichtefunktion der Zustandsvariablen s[n] in der Zustandsebene für das System 2. Ordnung in transponierter Direktform II (Stichprobenumfang 106, M4.4, lab4_2 mit hist2D)
4.3 Kovarianzmatrix der Zustandsvariablen
41
1 0.8 0.6 0.4
s2 o
0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1
-0.5
0 s1 o
0.5
1
Bild 4-4
Streudiagramm der Zustandsvariablen s[n] in der Zustandsebene für das System 2. Ordnung in transponierter Direktform II mit Skalierung der Zustandsvariablen nach der l2-Norm (Stichprobenumfang 106, vereinfachte Darstellung, M4.5, lab4_3)
M4.6
Es sollen die ersten 20 Werte der Zustandsvariablen in der Zustandsebene dargestellt werden, wenn das System 2. Ordnung aus der Versuchsaufgabe M4.3 mit einem Impuls erregt wird. Für den Fall der unskalierten Zustandsvariablen wurde das in Versuch 2 bereits durchgeführt. Die Ergebnisse sind in Bild 2-3 zu sehen. Wiederholen Sie die Untersuchung für die Direktform II und die Normalform mit nach der l2-Norm skalierten Zustandsvariablen. Vergleichen Sie die Ergebnisse mit Bild 2-3.
4.3
Kovarianzmatrix der Zustandsvariablen
4.3.1
Definition der Kovarianzmatrix K
Der Effekt des Überlaufs in den Zustandsvariablen kann mit der Reaktion der Zustandsvariablen auf einen Impuls am Systemeingang f[n] untersucht werden. Geht man von Musterfunktionen eines stochastischen Prozesses am Systemeingang aus, so sind die Zustandsvariablen ebenfalls Musterfunktionen stochastischer Prozesse. Die Autokorrelationsfunktionen (AKF) der Zustandsvariablen sind gleich der Faltung der Zeit-AKF der jeweiligen inneren Impulsantworten der Zustände f[n] mit der AKF des Eingangsprozesses. Ist der Eingangsprozess unkorreliert, ist die Zeit-AKF die gesuchte Korrelationsfunktion, was schon in Tabelle 3-1 benutzt wurde. Die Zeit-AKF und Zeit-Kreuzkorrelationsfunktionen (Zeit-KKF) lassen sich in einer Matrix kompakt zusammenstellen, der Kovarianzmatrix K.
42
4 Skalierung der Zustandsvariablen
K
f
¦ f [ n] f T [ n ] n 1
ªf 2 « ¦ f1 [n] «n 1 «f « ¦ f1[n] f 2 [n] «n 1 « «# « ¬
f
¦ f1[n] f 2 [n] n 1 f
¦ f 22 [n] n 1
º "» » » » » » %» » ¼
(4.18)
Die Elemente auf der Hauptdiagonalen sind die AKF der jeweiligen Zustandsvariablen an der Stelle null und somit gleich der Energie der Impulsantwort.
kii
f
¦ f i 2 [ n]
fi
n 1
2 2
(4.19)
Somit kann bei bekannten Diagonalelementen der Matrix K die l2-Skalierung der Zustandsvariablen wie im letzten Abschnitt vorgenommen werden. Anmerkungen: (i) K wird auch (Kreuz-)Kovarianzmatrix genannt, da mittelwertfreie Prozesse angenommen werden. (ii) Die Dimension der Matrix K ist gleich der Zahl der Zustände; bei einem System 2. Ordnung eine 2u2 Matrix.
4.3.2
Berechnung der Kovarianzmatrix K
Die Berechnung der Kovarianzmatrix K gestaltet sich für gewöhnlich kompliziert und wird numerisch mit einem iterativen Verfahren durchgeführt [RoMu87]. Für Systeme 2. Ordnung ist die Berechnung von Hand möglich, bzw. sind Lösungen in der Literatur zu finden. Wir leiten zunächst die grundlegende Gleichung ab und spezialisieren dann das Ergebnis auf die hier interessierenden Fälle. Den Ausgangspunkt der Herleitung bildet die Interpretation der Matrix K als Kovarianzmatrix der Zustandsvariablen bei einem unkorrelierten Eingangsprozess x[n] E x[n l ]x[n]
Rxx [l ] V 2 G [l ]
(4.20)
Daraus resultiert für die Erwartungswerte der Zustandsvariablen s[n] mit dem Vektor der Impulsantworten der Zustände f[n]
E s[n] sT [n]
f § f · E ¨ ¦ f [k ]x[n k ] ¦ f T [l ]x[n l ] ¸ l 0 ©k 0 ¹
f
f
k ]x[n l ] ¦ f x[n ¦ f [k ] E
k 0
2
V G [ k l ]
l 0
T
[l ] V
2
f
¦ f [k ] f
(4.21) T
2
[k ] V K
k 0
Da der Erwartungswert des Eingangsprozesses verschwindet wenn k z l, ist die Behauptung gezeigt. Betrachten wir nun die Kovarianzmatrix für den Zeitpunkt n + 1, so müssen bei stationären Eingangsprozessen alle Zustandsvariablen eines LTI-Systems ebenfalls stationär sein. Es muss sich also wieder die Kovarianzmatrix K ergeben. Wir setzen zunächst an
4.3 Kovarianzmatrix der Zustandsvariablen
V 2K
E s[n 1] sT [n 1]
43
E > As[n 1] bx[n 1]@ > As[n 1] bx[n 1]@ T
E > As[n 1] bx[n 1]@ ª¬sT [n 1]AT bT x[n 1]º¼
(4.22)
Ausmultiplizieren unter der Erwartungswertbildung liefert vier Summanden, für die der Erwartungswert einzeln bestimmt werden darf. Dabei verschwinden die Mischprodukte, da bei mittelwertfreiem und unkorreliertem Eingangsprozess die Zustandsvariablen zum Zeitpunkt n und die zukünftigen Eingangswerte x[n+1] orthogonal zueinander sind. Der Erwartungswert vereinfacht sich zu
V 2K
E As[n 1]sT [n 1]AT E bx[n 1]bT x[n 1]
A E s[n 1]sT [n 1] AT b E x[n 1]x[n 1] bT
2
(4.23)
V
V 2K
Zusammengefasst resultiert die implizite Gleichung für die Kovarianzmatrix K
A K A T b bT
(4.24)
Für Systeme 2. Ordnung kann die Gleichung in ein lineares Gleichungssystem 3. Ordnung umgeformt und gelöst werden. Für ein System in der Direktform II resultiert die Kovarianzmatrix in kompakter Form [RoMu87] K2
§1 a2 a1 · 1 ¨ ¸ 1 a2 ¹ (1 a2 )(1 a1 a2 )(1 a1 a2 ) © a1
(4.25)
Die Kovarianzmatrix der aus der Direktform II abgeleiteten Normalform ergibt sich ebenfalls in kompakter Form [RoMu87], [Sch94]
KN
§ § 1 1 Re ¨ ¨ 2 ¨ 1 z2 f © 1 ¨ 1 zf ¨ 2 ¨ § 1 · ¨¨ Im ¨¨ 2 ¸ ¸ © 1 zf ¹ ©
· ¸ ¸ ¸ § 1 ·¸ Re ¨ 2 ¸ ¨ ¸¸ © 1 zf ¹ ¹¸
· § 1 ¸¸ Im ¨¨ 2 ¹ © 1 zf 1 1 zf
2
· ¸¸ ¹
(4.26)
mit dem Pol zf des konjugiert komplexen Polpaares. Nützlich ist auch der Zusammenhang nach Ähnlichkeitstransformation des Systems mit der Transformationsmatrix T. Für die Kovarianzmatrix Kt des transformierten Systems gilt Kt
T
T1 K T1
(4.27)
Anmerkung: Die Kovarianzmatrix (4.26) gilt nur für die aus der Direktform II abgeleitete NormalformDarstellung. Legt man beispielsweise der Normalform die transponierte Direktform II zugrunde, ergibt sich eine andere Kovarianzmatrix, was beim Vergleich mit Ergebnissen aus der Literatur leicht zu Verwechslungen führen kann. Für die Darstellung in transponierter Direktform II führt die Rechnung auf das Gleichungssystem der Elemente der Kovarianzmatrix
44
4 Skalierung der Zustandsvariablen §1 a12 2a1 1· § k11 · ¨ ¸ ¨ ¸ ¨ a1a2 1 a2 0 ¸ ¨ k12 ¸ ¨ 2 ¸ ¨ ¸ ¨ a2 0 1 ¸¹ © k22 ¹ ©
§ · >b1 a1b0 @2 ¨ ¸ ¨ >b1 a1b0 @>b2 a2b0 @ ¸ ¨ ¸ ¨ >b2 a2b0 @2 ¸¹ ©
(4.28)
Das Gleichungssystem kann mit MATLAB oder von Hand mit der cramerschen Regel gelöst werden.
4.3.3
Vorbereitende Aufgaben
A4.1
Zeigen Sie, dass (4.25) gilt. Hinweis: Gehen Sie von (4.24) aus und lösen Sie das Gleichungssystem für die Koeffizienten der K-Matrix. Benutzen Sie zur Vereinfachung die Symmetrie der Kovarianzmatrix k12 = k21.
4.3.4
Versuchsdurchführung
M4.7
Berechnen Sie mit MATLAB die Kovarianzmatrizen K2 und KN zum System 2. Ordnung in M4.1. Verifizieren Sie die Zusammenhänge durch Vergleich der Diagonalelemente mit den in M4.3 bestimmten Energien der Impulsantworten der Zustandsvariablen f. Verifizieren Sie (4.27) am Beispiel der Normalform-Darstellungen.
M4.8
Das Programmbeispiel 4-1 fasst die bisherigen Überlegungen zusammen. Es stellt als Funktion die Zustandsraumdarstellungen für Systeme 2. Ordnung in der Direktform II und der davon abgeleiteten Normalform bereit. Es wird im nächsten Versuch verwendet. Überprüfen Sie die Funktion des Programmes.
Programmbeispiel 4-1 Zustandsraumdarstellung eines Systems 2. Ordnung mit l2-Skalierung %% 2nd order system b = [1 2 1]; a = [1 -1.4 .74]; % numerator and denominator h = filter(b,a,[1 zeros(1,100)]); % impulse response b = b / sqrt(sum(h.^2)); % l2 scaling ssr(1) = ssr_ABCD(b,a,'DF2'); % direct form II ssr(2) = ssr_ABCD(b,a,'NF2'); % normal form %% l2 scaling of states K2 = [1+a(3) -a(2); -a(2) 1+a(3)]/((1-a(3))*(1a(2)+a(3))*(1+a(2)+a(3))); T2 = [sqrt(K2(1,1)) 0; 0 sqrt(K2(2,2))]; ssr(1) = ssr_trans(ssr(1),T2); p = roots(a); z = p(1); % pole K11 = 1/(1-abs(z)^2) - real(1/(1-z^2)); K12 = - imag(1/(1-z^2)); K22 = 1/(1-abs(z)^2) + real(1/(1-z^2)); KN2 = .5*[K11 K12; K12 K22]; TN2 = [sqrt(KN2(1,1)) 0; 0 sqrt(KN2(2,2))]; ssr(2) = ssr_trans(ssr(2),TN2); %% Subfunction function ssr = ssr_trans(ssr,T) T_1 = inv(T); % inverse transform matrix ssr.A = T_1*ssr.A*T; ssr.B = T_1*ssr.B; % transform ssr.C = ssr.C*T; ssr.D = ssr.D; % transform ssr.form = strcat(ssr.form,'_T');
4.3 Kovarianzmatrix der Zustandsvariablen
Hinweise zu MATLAB MATLAB functions
eye, rand, strcat, mean, var
MATLAB graphics
clabel, contour, surfl, axis('square')
Þ Online-Ressourcen zum Versuch lab4_1, lab4_2, lab4_3, lab4_4, lab4_5, hist2D, plot_State, ssr_ABCD, ssr_filt_State, ssr_trans und Programme mit Ergebnissen im HTML-Format
45
46
5
Quantisierte Arithmetik und inneres Rauschen
5.1
Einführung
Reale digitale Systeme benutzen begrenzte Zahlendarstellungen. Besonders bei der Festkomma-Arithmetik, können die Koeffizientenquantisierung und der Überlauf zu unbrauchbaren Systemen führen. Im 3. Versuch wurde die Wirkung der Koeffizientenquantisierung anhand eines Cauer-Tiefpasses vorgestellt. In Versuch 4 wurde als effektive Maßnahme gegen Überläufe die Skalierung der Zustandsvariablen nach der l2-Norm untersucht. In diesem Versuch steht ein weiteres, sich aus der begrenzten Zahlendarstellung ergebendes Problem im Mittelpunkt: das innere Rauschen. Es tritt im laufenden Betrieb durch Wortlängenverkürzungen nach den Multiplikationen auf. Lernziele Nach Bearbeiten des Versuchs können Sie x die Einschränkungen der quantisierten Arithmetik auf digitale Systeme aufzeigen x für Systeme 2. Ordnung ein Blockschaltbild skizzieren, dass die Wortlängeneffekte berücksichtigt x die Begriffe inneres Rauschen und Rauschzahl erläutern x die Rauschzahl eines Systems 2. Ordnung berechnen x ein System 2. Ordnung in quantisierter Arithmetik mit MATLAB simulieren und analysieren x die Bedeutung der Struktur der Systeme für die spätere Anwendung einschätzen
5.2
Quantisierte Arithmetik
Wie in den vorangehenden Versuchen gehen wir für die Realisierung der digitalen Systeme von Maschinenzahlen im gebräuchlichen Zweierkomplement-Format (3.1) ausiehe Das Zweierkomplement-Format wird häufig auf digitalen Festkomma-Signalprozessoren mit binären Wortlängen von typisch 16 oder 24 Bit eingesetzt. Für spezielle Anwendungen auf Mikrocontrollern sind jedoch auch 8 Bit von Interesse. Beim Zweierkomplement-Format erhält man mit der Wortlänge w in bit die kleinste positive Maschinenzahl gleich der Wertigkeit des niederwertigsten Bit (least significant bit, LSB). Q
2 ( w bit 1)
(5.1)
Im Betrieb der Systeme ist die quantisierte Arithmetik zu beachten. Es werden zwei Effekte unterschieden: y Der Zahlenüberlauf (overflow) durch das Überschreitung des darstellbaren Zahlenbereichs nach einer Addition und y das Quantisierungsrauschen (round-off noise) durch die Verkürzung der Wortlängen nach einer Multiplikation in die hardwarespezifische Wortbreite.
5.2 Quantisierte Arithmetik
47
Beiden Effekte modellieren wir in einem Ersatzsystem. Bild 5-1 veranschaulicht das Konzept an einem System 2. Ordnung in Normalform. Der Zahlenüberlauf bewirkt eine nichtlineare Operation. Üblicherweise wird die größte bzw. die kleinste darstellbare Zahl eingesetzt. Man spricht von einer Betragsbegrenzung oder auch einer Nichtlinearität mit Sättigungskennlinie. Überläufe führen zu nichtlinearen Signalverzerrungen, die das System für die Anwendung unbrauchbar machen können. In Versuch 4 wurde die l2-Skalierung der Zustandsvariablen eingeführt, um Überläufe weitgehend zu vermeiden. In Verbindung mit der Sättigungskennlinie, die die negative Wirkung von Überläufen mildert, lassen sich für die Anwendung geeignete Systeme entwerfen. Anmerkung: Der kritischere Fall des Zweierkomplement-Überlaufs wird hier nicht betrachtet, siehe [Wer06]. Digitale Signalprozessoren unterstützen die Sättigungskennlinie hardwaremäßig, sodass sie im Betrieb optional zugeschaltet werden kann.
d
V 2a11
b1
V 2d
a11
V 2b1
c1 D
V 2a12
V 2c1
s1[n]
a12
x[n]
y[n]
V 2a21
a21
b2
c2 D
V 2b2
s2[n]
V 2c2 V 2a22
a22
Bild 5-1 System 2. Ordnung in Normalform mit inneren Rauschsignalquellen und Begrenzern
Die Wortlängenverkürzung nach der Multiplikation wird durch eine additive Rauschsignalquelle nachgebildet. Nimmt man eine Gleichverteilung der Multiplikationsergebnisse im abgeschnittenen Bereich an, resultiert bei Runden der Ergebnisse eine Gleichverteilung im Quantisierungsintervall Q, welches gleich der Wertigkeit des LSB ist. Der Quantisierungsfehler ist somit eine mittelwertfreie Zufallsvariable mit der Varianz
48
5 Quantisierte Arithmetik und inneres Rauschen
V q2
Q2 12
22 w bit 3
(5.2)
Bei üblichem Betrieb wird vereinfachend von unkorrelierten Quantisierungsfehlern ausgegangen. Die Wirkung der Quantisierung kann somit durch eine in [–Q/2, Q/2] gleichverteilte additive Rauschsignalquelle nachgebildet. Der zugrunde gelegte stochastische Prozess ist mittelwertfrei, unkorreliert und besitzt die Varianz V q2. Bild 5-1 veranschaulicht die Modellierung der quantisierten Arithmetik im System. Die Quantisierungsfehler beim Runden der Multiplikationsergebnisse werden durch mittelwertfreie und unkorrelierte additive Rauschsignale berücksichtigt. Die Rauschsignale werden gegenseitig als unabhängig angenommen.
5.3
Inneres Rauschen
5.3.1
Lineares Ersatzsystem mit Akkumulatoren
Die in den Systemen nach Multiplikation erforderlichen Wortlängenverkürzungen lassen sich als additive Rauschsignalquellen modellieren, siehe Bild 5-1. Man spricht von inneren Rauschsignalquellen und fasst ihre Summenwirkung am Ausgang als inneres Rauschen (output product round-off noise) zusammen, welches sich dem Nutzsignal als Störung überlagert. Dabei wird vorausgesetzt, dass keine Überläufe auftreten. Somit können die Begrenzer in Bild 5-1 weggelassen werden. Das System vereinfacht sich zu einem idealen LTI-System und wir können es mit den bekannten Methoden der Signalverarbeitung analysieren. Anmerkung: In der Audiotechnik wird bei zu kleiner Wortlänge die Störung durch das innere Rauschen hörbar. Man spricht deshalb historisch auch von Geräuschsignal und innerem Geräusch. Die hier behandelten Effekte sind unabhängig von der Anwendung der Systeme. Sie gelten beispielsweise auch bei der Bildverarbeitung, weshalb hier den vielleicht allgemeineren, nicht zuletzt kürzeren Bezeichnungen der Vorzug gegeben wird.
Zunächst betrachten wir die Zahl der inneren Rauschsignalquellen. Im Beispiel des Systems 2. Ordnung in der Zustandsraumdarstellung in Bild 5-1 treten bis zu neun innere Rauschsignalquellen auf. Bei der kanonischen transponierten Direktform II sind es nur fünf. Dies spricht für eine Implementierung in einer kanonischen Struktur, d. h. mit minimaler Anzahl von Multiplizierern wie die transponierte Direktform II nach Bild 1-1. Andererseits wurde in Versuch 3 gezeigt, dass eine Realisierung im Zweierkomplement-Format die doppelte Addition des Multiplikationsergebnisses zum Koeffizienten a1 erfordern kann. Eine Signalamplitudenverdopplung entspricht einer Vervierfachung der Signalleistung, so dass eine effektiven Zahl von acht Rauschsignalquellen realistisch ist. In vielen Anwendungen werden digitale Signalprozessoren eingesetzt, deren Hardware auf die Besonderheiten der digitalen Signalverarbeitung angepasst ist. In der Regel steht der Befehl Multiply-and-Accumulate (MAC) zur Verfügung. Er ermöglicht es, in einem Takt einen Signalwert aus dem Datenspeicher mit einem Koeffizienten aus dem Programmspeicher zu multiplizieren und in ein Register mit vergrößerter Wortbreite, dem Akkumulator, zu addiert. Der Akkumulator besitzt meist die doppelte Wortlänge eines einfachen Datenwortes plus einiger Reservebit zur Überlaufbehandlung [LBSL95]. Für eine solche Hardware bietet es sich an, Additionen in Bild 5-1 im Akkumulator zusammenzufassen und die Wortlängenverkürzung erst beim Speichern der Zustandsvariablen bzw. des Ausgangswertes vorzunehmen. Damit reduziert sich das innere Rauschen wesentlich. Es resultiert das modifizierte Ersatzmodell in Bild 5-2.
5.3 Inneres Rauschen
49 d
a11 2
Vq b1
c1 D
Akku
s1[n]
a12
x[n]
Akku
y[n]
a21 b2
c2 D
Akku
Vq2
s2[n]
Vq2 a22 Bild 5-2
System 2. Ordnung in Normalform mit inneren Rauschsignalquellen und Begrenzern bei Verwendung eines Akkumulators (Akku) zur Speicherung von Zwischenergebnissen
Bei der Beurteilung des inneren Rauschens ist ferner zu beachten, dass es in den Anwendungen meist auf ein möglichst großes Verhältnis von Nutzsignalleistung zu Störsignalleistung, dem SNR (signal-to-noise ratio), ankommt. Hierbei spielt die Skalierung der Systeme eine wichtige Rolle. Skalierung und inneres Rauschen müssen gemeinsam betrachtet werden.
5.3.2
Vorbereitende Aufgaben
A5.1
Im Versuch soll das innere Rauschen eines Systems 2. Ordnung durch Simulation geschätzt werden. Überlegen Sie, welche Schritte sind dazu notwendig?
A5.2
Im Versuch wird die Funktion quant2c im Programmbeispiel 5-1 verwendet. Was ist ihre Aufgabe? Machen Sie sich mit ihrer Anwendung vertraut.
A5.3
Im Versuch 2 wurde die Funktion ssr_filter zur Simulation der Filterung durch ein System in der Zustandsraumdarstellung eingeführt. Für die Simulation der Systeme in quantisierter Arithmetik muss die Funktion modifiziert werden. Programmbeispiel 5-2 zeigt eine mögliche Umsetzung der Aufgabe durch die Funktion ssr_filter2c. Machen Sie sich mit ihrer Anwendung vertraut.
A5.4
Damit die Wortlängeneffekte bei den Systemen realistisch simuliert werden können, muss zunächst eine Quantisierung der Koeffizienten der Zustandsraumdarstellung
50
5 Quantisierte Arithmetik und inneres Rauschen vorgenommen werden. Hierbei gilt es die Besonderheiten der Strukturen zu beachten. Das Programmbeispiel 5-3 zeigt eine mögliche Funktion zur Umsetzung der Koeffizientenquantisierung. Machen Sie sich mit ihr vertraut. Hinweise: (i) Die Option DF2, TDF2, NF2 und NFT2 stehen für die oben genannten Formen. Die noch unbekannte Form MNF wird im nächsten Versuch eingeführt. (ii) Beachten Sie, eine Prüfung der Eingangsdaten, z. B., dass die Koeffizienten im Bereich der Maschinenzahlen liegen, wird in der Funktion nicht durchgeführt.
Programmbeispiel 5-1 Quantisierung % tow's complement quantizer with saturation and range ]-1,1[ % function xq = quant2c(x,w,TMode) % x - input signal % w - word length (# of bits) % TMode - truncation mode % 't' - truncation (rounding towards zero) % 'r' - rounding to neares quantization level % xq - quantized signal % quant2c.m * mw * 03/01/2007 function xq = quant2c(x,w,TMode) LSB = 2^(-w+1); % least significant bit xq = sign(x).*min(abs(x),1-LSB); % clipping (saturation) if strcmp(TMode(1),'t') xq = fix(xq/LSB)*LSB; % truncation else xq = LSB*round(xq/LSB); % rounding end
Programmbeispiel 5-2 Simulation eines Systems 2. Ordnung in der Zustandsraumdarstellung mit quantisierter Arithmetik entsprechend dem ZweierkomplementFormat und bei Verwenden von Akkumulatoren mit erweiterter Wortlänge, siehe Bild 5-2 % simulation of 2nd order filter in state-space representation % with two's complement number representation and rounding % function [y,S,OC] = ssr_filter2c(ssr,x,w) % ssr - state space representation (quantized) % x - input signal (quantized) % w - word length % y - output signal % S - final state % OC - overflow counter % ssr_filter2c.m * mw * 02/22/2007 function [y,S,OC] = ssr_filter2c(ssr,x,w) y = zeros(1,length(x)); % allocate memory for output signal S = ssr.S; % initial state LSB = 2^(-w+1); % least significant bit OC = 0; % overflow counter for n=1:length(x) % output signal y(n) = ssr.C*S(:,n) + ssr.D*x(n) y(n) = ssr.C*S + ssr.D*x(n); % accumulate [y(n) OI] = overflow(y(n),LSB,1-LSB); % wordlength reduction
5.3 Inneres Rauschen
51
OC = OC + OI; % overflow counter % state variables S = SSR.A*S + SSR.B*x(n); S1 = ssr.A*S + + ssr.B*x(n); [S(1) OI] = overflow(S1(1),LSB,1-LSB); % wordlength reduction OC = OC + OI; % overflow counter [S(2) OI] = overflow(S1(2),LSB,1-LSB); % wordlength reduction OC = OC + OI; % overflow counter end %% subfunction function [xO OI] = overflow(x,LSB,MAX) % wordlength reduction and overflow with saturation characteristic if abs(x)>=1 % overflow OI = 1; xO = sign(x)*MAX; else OI = 0; xO = LSB*round(x/LSB); end
Programmbeispiel 5-3 Koeffizientenquantisierung % state-space representation of 2nd order systems in two's % complement numbers with respect to the form % function ssrq = ssr_qant2c(ssr,w) % ssr - state-space representation (structure) % w - word length % ssrq - state-space representation with quantized coefficients % ssr_quant2c.m * mw * 03/08/2007 function ssrq = ssr_quant2c(ssr,w) ssrq = struct(ssr); switch ssr.form case ('DF2') ssrq.A(2,1) = quant2c(ssr.A(2,1),w,'r'); ssrq.A(2,2) = 2*quant2c(ssr.A(2,2)/2,w,'r'); case ('TDF2') ssrq.A(1,1) = 2*quant2c(ssr.A(1,1)/2,w,'r'); ssrq.A(2,1) = quant2c(ssr.A(2,1),w,'r'); case {'NF2','NFT2','MNF'} ssrq.A = quant2c(ssr.A,w,'r'); otherwise fprintf('ssr_quant2c : no match - ssr.form = %s\n',ssr.form) end ssrq.B = quant2c(ssr.B,w,'r'); ssrq.C = quant2c(ssr.C,w,'r'); ssrq.D = quant2c(ssr.D,w,'r'); ssrq.S = quant2c(ssr.S,w,'r'); ssrq.form = strcat(ssr.form,'q');
5.3.3
Versuchsdurchführung
M5.1
Untersuchen Sie das System 2. Ordnung mit den Koeffizienten b0 = 1, b1 = 2, b2 = 1, a0 = 1, a1 = –1.4 und a2 = 0.74 auf inneres Rauschen, wenn das System in der Zustandsraumdarstellung in Direktform II und der daraus abgeleiteten Normalform realisiert wird. Wählen Sie die Wortlängen 8 und 16 Bit und geben Sie die Leistung des jeweiligen inneren Rauschens in dB an.
52
5 Quantisierte Arithmetik und inneres Rauschen Hinweise: (i) Skalieren Sie die Systeme und Zustandsvariablen nach der l2-Norm und simulieren Sie mit quantisierten Koeffizienten ohne Überlauf entsprechend Bild 5-2. (ii) Überprüfen Sie Ihre Simulation durch Vergleich einiger Signalwerte am Systemausgang für das unquantisierte und das quantisierte System. Bild 5-3 zeigt beispielhaft die ersten 201 Werte der Simulation mit dem Programmbeispiel 5-4 für die Zustandsraumdarstellung in Direktform II bei einer Wortlänge von 8 Bit.
0.5 0.4 0.3
y[n], y q[n] o
0.2 0.1 0 -0.1 -0.2 -0.3 -0.4 -0.5 0
Bild 5-3
20
40
60
80
100 no
120
140
160
180
200
Ausgangssignal des System 2. Ordnung in der Zustandsraumdarstellung in Direktform II mit idealer Arithmetik (MATLAB) (+) und mit quantisierter Arithmetik mit der Wortlänge 8 Bit (O) (M5.1, lab5_1)
Programmbeispiel 5-4 Simulation eines Systems 2. Ordnung in der Zustandsraumdarstellung in Direktform II mit quantisierter Arithmetik % simulation of 2nd order filter in state-space representation in % direct form II with l2 scaling of state variables % lab5_1.m * mw * 02/22/2007 %% 2nd order system b = [1 2 1]; a = [1 -1.4 .74]; % numerator and denominator h = filter(b,a,[1 zeros(1,100)]); % impulse response b = b / sqrt(sum(h.^2)); % l2 scaling ssr = ssr_ABCD(b,a,'DF2'); % direct form II %% l2 scaling of states for direct form II K = [1+a(3) -a(2); -a(2) 1+a(3)]/((1-a(3))*(1-a(2)+a(3))... *(1+a(2)+a(3))); T = [sqrt(K(1,1)) 0; 0 sqrt(K(2,2))]; T_1 = inv(T); ssr.A = T_1*ssr.A*T; ssr.B = T_1*ssr(1).B; ssr.C = ssr.C*T; %% Quantization w = 8; % word length ssr = ssr_quant2c(ssr,w); % quantized coefficients %% Simulation parameter N = 1e6; % number of simulation cycles = N + 1 rand('state',0); % initialize random generator x = 2*rand(1,N)-1; % input signal x = x*sqrt(3)/5; % crest factor 5 xq = quant2c(x,w,'r'); % quantization (rounding)
5.4 Rauschzahl
53
%% Filtering and analysis [y,S] = ssr_filter(ssr,xq); % ideal filtering [yq,Sq,OC] = ssr_filter2c(ssr,xq,w); % quantized filtering (rounding) fprintf('lab5_1 \n') fprintf('Wordlength : %g bit\n',w) fprintf('Overflow counter : %g\n',OC) Ni = var(y-yq); % variance of inner noise fprintf('(%s) variance %g dB\n',ssr.form,10*log10(Ni)) FIG = figure('Name',['lab5_1 : Output signal ',ssr.form],... 'NumberTitle','off','Units','normal','Position',[.4 .4 .55 .45]); plot(0:200,y(1:201),':',0:200,y(1:201),'+',0:200,yq(1:201),'o'), grid axis([0 200 -.6 .6]); xlabel('n \rightarrow'), ylabel('y[n], y_q[n] \rightarrow')
5.4
Rauschzahl
5.4.1
Leistung des inneren Rauschens
Die Berechnung der Leistung des inneren Rauschens gehen wir zunächst von Bild 5-1 aus an. Es lassen sich die Rauschsignalquellen in drei Gruppen einteilen: c Rauschsignalquellen, die direkt auf die Zustandsvariable s1[n] wirken und deren Signale gemäß der Teilimpulsantwort g1[n] auf den Systemausgang übertragen werden. Sie entstehen durch die Wortlängenverkürzung nach den Multiplikationen mit den Koeffizienten b1, a11 und a12. d Rauschsignalquellen, die direkt auf die Zustandsvariable s2[n] wirken und deren Signale gemäß der Teilimpulsantwort g2[n] auf den Systemausgang übertragen werden. Sie entstehen durch die Wortlängenverkürzung nach den Multiplikationen mit den Koeffizienten b2, a21 und a22. e Rauschsignalquellen, die direkt auf den Ausgang wirken. Sie entstehen durch die Wortlängenverkürzung nach den Multiplikationen mit den Koeffizientenvektor cT und d. Nehmen wir unabhängige Quellen an, so lassen sich die Leistungen in den drei Gruppen jeweils addieren. Die Leistung des innere Rauschens am Systemausgang Ni ist folglich die gewichtetet Summe Ni
2
V q2 k1 g1 2 k2 g 2
2 2
k3
(5.3)
mit den Multiplikatoren ki für die jeweilige effektive Zahl der Rauschsignalquellen und den Leistungsübertragungsfaktoren, der Energien der Teilimpulsantworten gi[n], vom i-ten Zustand zum Ausgang. Die Varianzen der Rauschsignalquellen sind nur von der Wortlänge abhängig und somit keine systemspezifische Größe. Deshalb wird der Ausdruck in der Klammer in (5.3) als Rauschzahl des Systems definiert. Ri
k1 g1
2 2
k2 g 2
2 2
k3
(5.4)
Wird zur Addition der Zwischenergebnisse ein Akkumulator mit hinreichender Wortlänge eingesetzt, wie in Bild 5-2, dann reduziert sich die Zahl der effektiven Rauschsignalquellen. Die Multiplikatoren ki sind dann 1 oder 0.
54
5.4.2
5 Quantisierte Arithmetik und inneres Rauschen
Berechnung der Leistungsübertragungsfaktoren
Die Berechnung der Leistungsübertragungsfaktoren von den Zustandsvariablen zum Ausgang ||g1||22 und ||g2||22 geschieht ähnlich der Berechnung der Leistungsfaktoren vom Eingang zu den Zuständen. Zunächst führen wir in Analogie zur Kovarianzmatrix K, die Kovarianzmatrix W ein.
W
ªf 2 « ¦ g1 [n] «n 1 «f « ¦ g1[n]g 2 [n] «n 1 « «# « ¬
f
¦ g[n] gT [n] n 1
f
¦ g1[n]g 2 [n] n 1 f
¦ g22 [n] n 1
º "» » » » » » %» » ¼
(5.5)
Für Systeme 2. Ordnung erhalten wir eine Matrix der Dimension 2u2. Die gesuchten Leistungsübertragungsfaktoren sind die Diagonalelemente der Kovarianzmatrix W.
wii
f
¦ gi2 [n]
gi
n 1
2 2
(5.6)
Die Berechnung der Kovarianzmatrix geschieht wieder durch eine implizite Gleichung. W
AT W A c c T
(5.7)
Nützlich ist auch der Zusammenhang für die Kovarianzmatrix Wt nach Ähnlichkeitstransformation mit der Matrix T. Wt
TT W T
(5.8)
Für die Zustandsraumdarstellung in Direktform II ergibt sich das Gleichungssystem §1 a22 · § w11 · 0 ¨ ¸ ¨ ¸ ¨ 0 1 a2 a1a2 ¸ ¨ w12 ¸ ¨ ¸ ¨ ¸ ¨ 1 2a1 1 a12 ¸¹ © w22 ¹ ©
b2 a2b0 § · ¨ ¸ b a b b a b 2 0 1 1 0 ¸ ¨ 2 ¨ ¸ b1 a1b0 © ¹
(5.9)
das beispielsweise mit MATLAB numerisch gelöst werden kann. Anmerkung: Manchmal ist es praktisch, auf den Zusammenhang zwischen der Direktform II (2) und ihrer transponierten Direktform II (2t) zurückzugreifen. Der Übergang auf die transponierte Form, siehe (1.11), legt den allgemeinen Zusammenhang mit der Permutationsmatrix und dem Transponieren nahe. Die Kovarianzmatrizen K und W sind symmetrisch. Also invariant bezüglich der Transposition. Die Matrix K2 besitzt darüber hinaus identische Diagonalelemente, so dass sich die einfache Identität ergibt. W2t
K2
(5.10)
Den Zusammenhang bestätigt man, indem man das Gleichungssystem für W2t aufstellt und die Lösung mit K2 in (4.25) vergleicht.
5.4 Rauschzahl
55
Entsprechend gilt K 2t
§0 1· §0 1· ¨ ¸ W2 ¨ ¸ 1 0 © ¹ ©1 0¹
(5.11)
5.4.3
Vorbereitende Aufgaben
A5.3
Bestimmen Sie für Systeme 2. Ordnung die Multiplikatoren ki für die Zustandsraumdarstellung in Direktform II und der Normalform nach Bild 5-1 und Bild 5-2. Hinweise: (i) Gehen Sie von einer Darstellung der Koeffizienten im Zweierkomplement-Format ausiehe Beachten Sie, dass eine Skalierung der Zustandsvariablen durchgeführt wird. (ii) Beachten Sie auch die Besonderheiten der A-Matrix, siehe Bild 3-2.
A5.4
Verifizieren Sie das Gleichungssystem (5.9).
5.4.4
Versuchsdurchführung
M5.2
In Versuch 3 wurde das System 2. Ordnung mit den Koeffizienten b0 = 1, b1 = 2, b2 = 1, a0 = 1, a1 = –1.4 und a2 = 0.74 untersucht und die Teilimpulsantworten per Simulation bestimmt. Wiederholen Sie die Untersuchung für die Zustandsraumdarstellungen des Systems skaliert nach der l2-Norm mit quantisierten Koeffizienten (keine quantisierte Arithmetik) und bestimmen Sie die Energien der rechtsseitigen Folgen f[n] und g[n]. Berechnen Sie mit den geschätzten Leistungsübertragungsfaktoren die Rauschzahlen. Vergleichen Sie Ihre Rechenergebnisse mit denen der Simulation im M5.1.
M5.3
Erstellen Sie ein MATLAB-Programm, welches für ein System 2. Ordnung die Zustandsraumdarstellung in Direktform II oder wahlweise der daraus abgeleiteten Normalform liefert, wobei – das System sowie die Zustandsvariablen nach der l2-Norm skaliert sind – und die Kovarianzmatrizen K und W berechnet werden. Schreiben Sie dazu eine MATLAB-Funktion function ssr = ssr_ABCDKW(b,a,Form) mit der systembeschreibenden Struktur ssr.
M5.3
Überprüfen Sie mit Ihrem Programm die Simulationsergebnisse aus M5.2.
Hinweise zu MATLAB Siehe auch frühere Versuche. MATLAB functions and program control
fix, floor, round, sign, switch … case
Þ Online-Ressourcen zum Versuch lab5_1, lab5_2, lab5_3, quant2c, ssr_ABCD, ssr_ABCDKW, ssr_filter, ssr_filter2c, ssr_quant2c und Programme mit Ergebnissen im HTML-Format
56
6
Rauschminimale Normalform
6.1
Einführung
In realen digitalen Systemen mit Festkomma-Arithmetik ergeben sich einscheidende Begrenzungen aufgrund der Zahlendarstellung. In den Versuchen 3 und 4 wurden die Koeffizientenquantisierung und der Überlauf behandelt. Als Gegenmaßnahme wurde die Skalierung der Zustandsvariablen nach der l2-Norm vorgeschlagen. Der Versuch 5 behandelte das innere Rauschen. In diesem Versuch werden nun beide Effekte, Überlauf und inneres Rauschen, gemeinsam betrachtet und eine Methode zur gleichzeitigen Optimierung der Systeme vorgestellt. Lernziele Nach Bearbeiten des Versuchs können Sie x den Begriff rauschminimale Normalform erläutern x Systeme 2. Ordnung in rauschminimaler Normalform realisieren x den Einfluss von Polwinkel und Polradius auf die Rauschzahl abschätzen
6.2
Rauschzahl und Ähnlichkeitstransformation
In Abschnitt 2.3 wurde die Ähnlichkeitstransformation vorgestellt. Mit ihr kann die innere Struktur der Systeme manipuliert werden, ohne dass sich deren Impulsantworten, oder äquivalent deren Übertragungsfunktionen, ändern. Wortlängeneffekte in realen Systemen, Überläufe und inneres Geräusch, wirken sich jedoch für unterschiedliche Strukturen unterschiedlich aus. Es ist daher nahe liegend, nach Strukturen zu suchen, die sich diesbezüglich günstig verhalten und durch Ähnlichkeitstransformation erzeugt werden können. Ein Beispiel liefert die Skalierung der Zustände nach der l2-Norm in Versuch 4. Nun soll das innere Rauschen in die Überlegungen einbezogen werden. Die Leistung des inneren Rauschens wird durch die Energien der Teilübertragungsfunktionen von den Zuständen zum Systemausgang bestimmt, den Diagonalelementen wii = | gi | 22 der Kovarianzmatrix W. Wir gehen darum der Frage nach: Wie wirkt sich die l2-Skalierung der Zustandsvariablen mit der Transformationsmatrix T
§ G k11 ¨ ¨ 0 ©
0
G k22
· ¸ ¸ ¹
(6.1)
auf sie aus? Darin ist G der gewünschte Scheitelfaktor und kii sind die Elemente der Hauptdiagonalen der Kovarianzmatrix K in der ursprünglichen, unskalierten Zustandsraumdarstellung. Für die Kovarianzmatrizen des skalierten Systems folgt aus der Transformation mit (4.27)
K
T
T1 K T1
§ 1 ¨ 1 ¨ G 2 ¨ k12 ¨ ¨ k k © 11 22
k12 k11k22 1
· ¸ ¸ ¸ ¸ ¸ ¹
(6.2)
6.2 Rauschzahl und Ähnlichkeitstransformation
57
und (5.9)
W
§ w11 k11 TT W T G 2 ¨ ¨w k k 11 22 © 21
w12 k11k22 · ¸ w22 k22 ¸¹
(6.3)
Mit den Diagonalelementen der Matrix nach der Transformation, kann die Rauschzahl des transformierten Systems berechnet werden. Für die Rauschzahl nach der l2-Skalierung folgt aus (6.3) mit (5.4) Ri
k1G 2 w11k11 k2G 2 w22 k22 k3
k1 w11 k2 w 22 k3
(6.4)
Gehen wir, wie in Versuch 5, von einer Realisierung mit einem Akkumulator aus, so reduzieren sich die Multiplikatoren ki für die Normalform jeweils auf 1. Wir erhalten die übersichtliche Darstellung der Rauschzahl Ri
G 2 w11k11 w22 k22 1
(6.5)
Aus den bisherigen Überlegungen können drei wichtige Folgerungen gezogen werden: c
Das uQadrat des Scheitelfaktors ist proportional zur Leistung des inneren Rauschens. Der Scheitelfaktor sollte deshalb so klein wie möglich gewählt werden; also die Varianz der Zustandsvariablen so groß wie möglich. (Ein gewisser Sicherheitsabstand, um Überläufe zu vermeiden, ist gegebenenfalls einzubeziehen.)
d
Bei gewähltem Scheitelfaktor wird die Rauschzahl minimal, wenn die Summe w11 k11 + w22 k22 minimal wird.
e
Aus (6.2) und (6.3) folgt: Das Produkt der Diagonalelemente wii kii ist invariant bezüglich der Transformation mit einer Diagonalmatrix, hier der l2-Skalierung (6.1).
Für die Herleitung der optimalen Struktur ist der aus (6.2) und (6.3) resultierende Zusammenhang wichtig. KW
T
T1 K T1
TT W T
T1 KW T
(6.6)
Die l2-Skalierung ändert die Eigenwerte der Produktmatrix KW nicht. Diese Eigenschaft ist der Schlüssel zur Herleitung der optimalen Struktur [RoMu87]. Wir verzichten der Einfachheit halber auf die Beweisführung und geben nur das Ergebnis an. Die Rauschzahl Ri wird minimal, wenn das Produkt der Diagonalelemente der Kovarianzmatrizen K und W gleich ist. w11 k11
w22 k22 min Ri
(6.7)
Interpretiert man das Produkt der Leistungsübertragungsfaktoren als Maß für den Fluss der Signalleistung vom Eingang über die Zustandsvariable zum Ausgang, so wird die Rauschzahl minimal, wenn alle Zustandsvariablen gleichgewichtig in den Fluss eingebunden sind. Wie kann bei vorgegebener Übertragungsfunktion die Rauschzahl optimiert werden? Im Beispiel eines Systems 2. Ordnung resultiert aus der Übertragungsfunktion unmittelbar eine Realisierung in einer kanonischen Form mit 5 Koeffizienten, wie der Direktform II. Im Vergleich dazu bietet die Normalform eine Realisierung mit 9 Koeffizienten. Da der Durchgriff, d = b0, vorgegeben ist, stehen für die Normalform noch 8 Koeffizienten zur Verfügung. Der gewachsene Freiheitsgrad wird im nächsten Abschnitt benützt, das System bezüglich (6.7) zu optimieren.
58
6 Rauschminimale Normalform
Die Zusammenhänge gelten entsprechend auch für Systeme höherer Ordnung. In der Praxis werden die Ergebnisse jedoch meist auf Systeme 2. Ordnung angewandt. Systeme höherer Ordnung werden in Kaskadenform mit optimierten Blöcken 2. Ordnung realisiert. Das System ist dann zwar nicht mehr optimal, jedoch wird die Suboptimalität der Einfachheit halber hingenommen. Zur Unterscheidung wird von einer blockweise optimalen Struktur (sectional optimal structure) gesprochen.
6.3
Systeme 2. Ordnung in rauschminimaler Normalform
6.3.1
Konstruktion der rauschminimalen Normalform
Eine Zustandsraumdarstellung, deren Rauschzahl (6.5) bei gegebener Übertragungsfunktion minimal ist, bezeichnen wir als rauschminimale Normalform (minimum round-off noise structure). Für die Konstruktion der rauschminimalen Normalform eines Systems 2. Ordnung benutzen wird die drei notwendigen und hinreichenden Bedingungen für die Zustandsraumdarstellung [Jac79], [RoMu87]. (B1) Matrix
A
a11
a22
(B2) Vektoren b,c
b1 c1
(B3) Zustand
Skalierung nach der l2 -Norm
s
b2 c2
(6.8)
Die Bedingungen sind bereits richtig geordnet. Bild 6-1 zeigt die schrittweise Konstruktion im Überblick. Ausgehend von der Zustandsraumdarstellung in Direktform II wird im ersten Schritt eine Transformation auf die Normalform durchgeführt. Damit ist die Bedingung B1 erfüllt. Der zweite Schritt dient zur optimalen Aufteilung des Leistungsflusses auf die beiden Zustandsvariablen, die Erfüllung der Bedingung B2. Dies geschieht, wie noch gezeigt wird, durch eine Transformation die geometrisch als Rotation der Vektoren b und c interpretiert wird. Schließlich wird im dritten Schritt die l2-Skalierung der Zustandsvariablen vorgenommen. Bedingung B3 ist erfüllt. Man beachte, dass die jeweilig nachfolgenden Schritte, die vorhergehenden Anpassungen nicht mehr verändern, sodass zuletzt alle drei Bedingungen erfüllt sind und die rauschminimale Normalform vorliegt. Die Bedingung B2 lässt sich im zweidimensionalen Vektorraum anschaulich interpretieren. Die suboptimale Normalform liefert den Vektor bNT = (0 1) und den Vektor cTN
cN ,1
cN ,2
rc , N cos I sin I
(6.9)
mit dem Betrag rc, N
cN2 ,1 cN2 ,2
(6.10)
6.3 Systeme 2. Ordnung in rauschminimaler Normalform
A2, b2, c2T, d, K2, W2
Direktform II
Transformation auf Normalform
TN
AN, bN, cNT, d, KN, WN
Suboptimale Normalform
Transformation, Rotation
Transformation, l2-Skalierung
B2
TS
AM, bM, cMT, d, KM, WM
Rauschminimale Form
B1
TR
AR = AN, bR, cRT, d, KR, WR
Rotierte Normalform
Bild 6-1
59
B3
Konstruktion eines Systems 2. Ordnung in rauschminimaler Normalform in drei Schritten anhand der Bedingungen B1, B2 und B3
und dem Argument
I
arctan
cN ,2 cN ,1
(6.11)
Die beiden zweidimensionalen Vektoren sind in Bild 6-2 veranschaulicht. Es zeigt den Fall, dass cNT im ersten Quadranten liegt. Die Transformation mit der Matrix
TR
I § ¨ cos 2 ¨ ¨ sin I ¨ 2 ©
I· sin ¸ 2 ¸ I ¸ cos ¸ 2 ¹
(6.12)
führt eine Drehung des Zustandsvektors um den Winkel I / 2 durch und leistet das Gewünschte. Zusätzlich zur Bedingung B1 wird nun auch die Bedingung B2 wird erfüllt, da sich durch die Drehung die A-Matrix nicht ändert.
6.3.2
Vorbereitende Aufgaben
A6.1
Zeigen Sie analytisch, dass nach der Drehung des Zustandsvektors, die Bedingung B2 erfüllt wird.
A6.2
Zeigen Sie analytisch, dass die A-Matrix invariant gegen eine Drehung des Zustandsvektors ist.
60
6 Rauschminimale Normalform bN = (0,1) bR
I/2
cN
I/2
cR
I Bild 6-2 Geometrische Interpretation der Bedingung B2 als Rotation
6.3.3
Versuchsdurchführung
M6.1
Schreiben Sie ein MATLAB-Programm zur Konstruktion eines Systems 2. Ordnung in rauschminimaler Normalform. Gehen Sie dabei von der MATLAB-üblichen Darstellung des Systems mit den Zähler- und Nennerkoeffizienten der Übertragungsfunktion b bzw. a aus.
M6.2
Entwerfen Sie das System 2. Ordnung in geräuschminimaler Form mit den Koeffizienten der Übertragungsfunktion b0 = 1, b1 = 2, b2 = 1, a0 = 1, a1 = –1.4 und a2 = 0.74. Geben Sie zu allen Zwischenschritten die Zustandsraumdarstellungen und die Kovarianzmatrizen K und W an.
M6.3
Vergleichen Sie die Rauschzahlen der Systeme in Direktform II, der suboptimalen Normalform und der rauschminimalen Normalform. Da eine Implementierung mit Überläufen in der Regel nicht sinnvoll ist, skalieren Sie die Zustandsvariablen vor dem Vergleich gemäß der l2-Norm. Gehen Sie von einer typischen Implementierung im Zweierkomplement-Format und Akkumulatoren mit hinreichend vergrößerter Wortlänge aus. Welches System liefert die kleinste Leistung des inneren Geräusches am Systemausgang? Begründen Sie Ihre Antwort.
M6.4
Simulieren Sie das System in M6.2 unter realen Bedingungen. Schätzen Sie die Leistung des inneren Rauschens bei einer Wortlänge von 8 und 16 Bit. Kontrollieren Sie das Ergebnis mit der Rauschzahl aus M6.3.
6.4
Abhängigkeit der Rauschzahl von der Lage der Pole
6.4.1
Einführung
Wir gehen von einem reellwertigen, kausalen und stabilen System 2. Ordnung mit konjugiert komplexem Polpaar aus zf1,2
zf , r r j zf , i
rf e r j:f
(6.13)
6.4 Abhängigkeit der Rauschzahl von der Lage der Pole
61
Analytische und experimentelle Resultate zeigen, dass die Rauschzahl stark von der Lage des konjugiert komplexen Polpaars in der komplexen z-Ebene abhängt. Die Abhängigkeiten lassen sich durch eine 3D-Grafik und ein Kennlinienfeld veranschaulichen. Dazu wird die Rauschzahl als Funktion von Polradius rf und Polwinkel :f berechnet und durch Höhenlinien visualisiert. Um den Einfluss von Nullstellen zu unterdrücken, werden keine Nullstellen zugelassen. Anmerkung: Der Scheitelfaktor ist wieder Gc = 1, da auf Energie 1 normiert wird.
Zur grafischen Darstellung wurde das Programm lab6_2, siehe Programmbeispiel 6-1, erstellt. Darin variiert der Polradius von 0.5 bis 0.98 und der Polwinkel von 0.02S bis 0.98S. Für die Direktform II ist in Bild 6-3 die Abhängigkeit der Rauschzahl von der Lage des Polpaares deutlich zu sehen. Die Rauschzahl steigt monoton mit dem Polradius und der Annäherung des Polwinkels an 0 bzw. S ; also des Polpaares an die reelle Achse und z = r1. Insbesondere wächst die Rauschzahl bei Annäherung an z = r1 rapide.
Ri( r , : ) in dBo f f
40 30 20 10 0 1 0.8 0.6
m rf Bild 6-3
0.4
0
0.2
0.4
0.6
0.8
1
:f / S o
3D-Darstellung der Rauschzahl Ri in dB für ein System 2. Ordnung in Direktform II in Abhängigkeit von Polradius rf und Polwinkel :f (keine Nullstellen, lab6_3)
Einen quantitativen Vergleich ermöglichen die Höhenliniendarstellungen in Bild 6-4. Es zeigt sich, dass gerade dort, wo die Rauschzahl der Direktform II stark ansteigt, die Normalform deutlich günstigere Werte liefert. Dabei ist die rauschminimale Normalform stets etwas günstiger. Man beachte auch, dass die Direktform II für Pole auf der imaginären Achse eine geringere Rauschzahl als die Normalformen aufweist. Hier macht sich der Effekt bemerkbar, dass der Koeffizient a1 der Übertragungsfunktion null wird, sodass eine innere Rauschquelle entfällt.
6.4.2
Vorbereitende Aufgaben
A6.3
Überlegen Sie, welche Lagen für Polpaare bei Tief-, Hoch- und Bandpassfiltern typisch sind. Welche Schlussfolgerungen können daraus mit Blick auf Bild 6-4 gezogen werden?
62 A6.4
6 Rauschminimale Normalform Mach Sie sich mit dem Grafikprogramm in Programmbeispiel 6-1 vertraut, sodass Sie es im Versuch einsetzen können.
Programmbeispiel 6-1 3D- und Höhenlinien-Darstellung der Rauschzahl % graphical display of noise figure versus pole radius and angle % function Ri_graph(r,w,R,Text) % r,w : vectors of radii and angles % Ri : matrix of noise figures % Text : text displayed in the figure title % Ri_graph.m * mw * 02/28/2007 function Ri_graph(r,w,Ri,Text) FIG1 = figure('Name',['noise figure - ',Text],'NumberTitle',... 'off','Units','normal','Position',[.4 .4 .45 .45]); RidB = 10*log10(Ri); surfl(w,r,RidB); % 3D plot ylabel('\leftarrow r_\infty'), xlabel('\Omega_\infty / \pi \rightarrow ') zlabel('R_i( r_\infty, \Omega_\infty ) in dB\rightarrow') FIG2 = figure('Name',['contour lines of noise figure - ',Text],... 'NumberTitle','off','Units','normal','Position',[.4 .37 .45 .45]); V = [1 2 3 4 5 6 7 8 9 10 15 20 30 50]; [CS,CH] = contour(w,r,RidB,V); grid % contour lines clabel(CS,CH,V); ylabel('r_\infty \rightarrow'), xlabel('\Omega_\infty / \pi \rightarrow')
6.4.3
Versuchsdurchführung
M6.5
Erstellen Sie ein MATLAB-Programm zur Berechnung der Rauschzahlen für die Direktform II, die daraus abgeleitete suboptimale Normalform und die geräuschminimale Normalform. Visualisieren Sie die Rauschzahlen in Abhängigkeit der Lage der konjugiert komplexen Polpaare als Höhenlinien-Darstellungen. Wählen Sie dazu einmal ein Nullstellenpaar bei z = –1 und bei r j. Vergleich Sie die Ergebnisse mit Bild 6-4. Welche Unterschiede zeigen sich, und wie sind sie zu erklären? Hinweise: (i) Variieren Sie den Polradius im Bereich von 0.5 bis 0.99 und den Polwinkel von 0.02S bis 0.98S. (ii) Siehe Programm lab6_3.
Hinweise zu MATLAB Siehe auch frühere Versuche.
Þ Online-Ressourcen zum Versuch lab6_1, lab6_2, lab6_3, quant2c, Ri_graph, ssr_ABCDKW, ssr_filter, ssr_filter2c, ssr_mron, ssr_quant2c, ssr_transform und Programme mit Ergebnissen im HTML-Format
6.4 Abhängigkeit der Rauschzahl von der Lage der Pole
15
10 9
910
8 7 6
5
15
4
8 6 7
3
5
1 9 0
15
10 9
5
3 2
0.7
2
4
0.75
6
r o f
3
8 7
0.8
5
4
0.85
15
10 9
8 7 6
20
0.9
20
0.95
63
1
0.65
8 7
4
6
5
3 2
1
0.5
1
3
5
0.55
6
2
4
0.6 7
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
:f / S o
10
9
0.9
7
9 7
6
6 5
7
4 3
2
4
5
3
0.7
4
3
6
0.75
5
6
5
8
r o f
10 8
9
7
0.85 0.8
10 8
9
8
10
0.95
0.65 4
2
2
0.6
1
0.55
3
1
3
0.5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
:f / S o
10
10
0.95
9
8
7 6
3
3
2
2
6
5
7 4
3
3
4
7 6
4
0.7
0.6
8
5
5
0.65
10
9
5
r o f
8
7 6
4
0.8 0.75
10
9
9
0.9 0.85
8
2
1 2
0.5
1
0.55 0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
:f / S o
Bild 6-4
Höhenliniendarstellung der Rauschzahl Ri in dB für ein System 2. Ordnung in Direktform II (oben), suboptimaler Normalform (mittig) und geräuschminimale Normalform (unten) in Abhängigkeit von Radius rf und Winkel :f des Polpaares (keine Nullstellen, lab6_4)
64
7
Fallbeispiel: Cauer-Tiefpass
7.1
Einführung
In diesem Versuch werden die bisherigen Überlegungen und Ergebnisse auf den praktischen Fall eines digitalen Filters höherer Ordnung angewandt. Das Beispiel lässt sich direkt übertragen, womit der Grundstein für die Anwendung in der Praxis gelegt ist. Im Versuch wird ein Cauer-Tiefpass 6. Ordnung entworfen und in Kaskadenform mit Blöcken 2. Ordnung in rauschminimaler Normalform realisiert. Eine Zahlendarstellung und Arithmetik im Zweierkomplement-Format wird zugrunde gelegt. Am Ende des Versuchs stehen alle Daten bereit, um beispielsweise den Cauer-Tiefpass auf einem digitalen Festkomma-Signalprozessor zu implementieren. Lernziele Nach Bearbeiten des Versuchs können Sie x mit dem MATLAB-Werkzeug fdatool ein Filter nach Vorgaben im Frequenzbereich entwerfen x das Filter in die Kaskadenform aus Blöcken 1. und 2. Ordnung umsetzen x die Blöcke nach der l2-Norm am Ausgang oder bezüglich des Maximums des Gesamtfrequenzganges normieren x die Blöcke in die Zustandsraumdarstellung in der Direktform II oder der rauschminimalen Normalform überführen x für die Blöcke die Rauschzahlen bestimmen und die Gesamtrauschzahl am Filterausgang abschätzen x die Koeffizienten im Zweierkomplement-Format darstellen x die Veränderungen der Übertragungsfunktion aufgrund der Koeffizientenquantisierung sichtbar machen und die Einhaltung der Entwurfsvorgaben kontrollieren x das Filter in idealer und quantisierter Arithmetik simulieren x die Leistung des inneren Rauschens durch Simulation schätzen und das Ergebnis analytisch verifizieren x das Verhältnis der Signalleistung zur Rauschleistung am Filterausgang abschätzen x den Entwurf und die Implementierung eines IIR-Filters selbstständig durchführen; dabei möglichen Schwierigkeiten erkennen; und sich gegebenenfalls neue Lösungen erarbeiten
7.2
Versuchsdurchführung: Ideales System
M7.1
Filterentwurf Entwerfen Sie mit dem MATLAB-Werkzeug fdatool einen Cauer-Tiefpass (elliptical) mit der Durchlasskreisfrequenz :d = 0.2 S, der Durchlasstoleranz Ad,dB = 0.5 dB, der Sperrkreisfrequenz :s = 0.3 S und der Sperrdämpfung As,dB = 60 dB, siehe auch Versuch 3.
7.3 Versuchsdurchführung: Reales System M7.2
65
Kaskadenform Stellen Sie das Filter in Kaskadenform in Blöcken 2. Ordnung dar. Hinweise: (i) Mit den MATLAB-Befehlen save und load können Daten auf der Festplatte gespeichert bzw. gelesen werden. (ii) Überprüfen Sie, ob Sie die richtigen Daten verwenden, indem Sie das Pol-Nullstellendiagramm am Bildschirm darstellen.
M7.3
Skalierung Skalieren Sie die Blöcke so, dass der Betragsfrequenzgang in der Kaskade den Wert 1 nicht überschreitet. Stellen Sie den resultierenden Betragsfrequenzgang des Filters im Durchlass- und im Sperrbereich grafisch dar.
M7.4
Zustandsraumdarstellung Überführen Sie die Blöcke 2. Ordnung in die Zustandsraumdarstellung in der Direktform II und in der rauschminimalen Normalform.
7.3
Versuchsdurchführung: Reales System
M7.5
Rauschzahlen Berechnen Sie die Rauschzahlen der Blöcke für die Direktform II und die rauschminimale Normalform. Vergleichen Sie die Werte in einer Tabelle.
M7.6
Koeffizientenquantisierung Führen Sie eine Koeffizientenquantisierung der Blöcke durch. Verwenden Sie Maschinenzahlen im Zweierkomplement-Format mit der Wortlänge von 8 bzw. 16 Bit. Beachten Sie, dass ein eventuell später zu verwendendes Bibliotheksprogramm eines digitalen Signalprozessors i.d.R. unabhängig von speziellen Zahlenwerten der Koeffizienten ist. Die Koeffizienten werden im Betrieb als Maschinenzahlen geladen und mit den Signalen multipliziert. Für die Direktform II wird deshalb, anstelle des Koeffizienten a1, mit a1/2 multipliziert und eine doppelte Addition durchgeführt. Anmerkung: Bei einem Akkumulator mit vergrößerter Wortlänge vergrößert die doppelte Addition nicht die Zahl der effektiven Geräuschquellen. Allerdings ist der Koeffizient a1 vor der Quantisierung zunächst zu halbieren.
Stellen Sie die resultierenden Betragsfrequenzgänge des Filters für die drei Formen grafisch dar und vergleichen Sie Ihr Ergebnis mit dem Wunschverlauf. M7.7
Inneres Rauschen Simulieren Sie die Systeme in den beiden Formen mit quantisierter Arithmetik. Es werden Akkumulatoren mit hinreichend vergrößerter Wortlänge eingesetzt, sodass eine Wortlängenverkürzung erst nach der Addition der Produkte berücksichtigt werden muss. Schätzen Sie die Leistungen des inneren Geräusches an den Ausgängen der Blöcke. Stellen Sie die Ergebnisse zum Vergleich in einer Tabelle zusammen.
M7.8
Verhältnis der Signalleistung zur Rauschleistung (SNR) Geben Sie das SNR am Eingang des Filters an. Schätzen Sie die Signalleistung am Filterausgang durch eine einfache Näherung.
66
7 Fallbeispiel: Cauer-Tiefpass Bestimmen Sie die Signalleistung am Filterausgang und die Leistung des Inneren Rauschens durch Simulation. Geben Sie die das SNR an. Diskutieren Sie die Veränderungen des SNR in der Verarbeitungskette. Was ist bei der digitalen Verarbeitung analoger Signale zu beachten?
M7.9
Vertauschen der Reihenfolge der Blöcke Vertauschen Sie die Reihenfolge der Blöcke 2. Ordnung und bestimmen Sie, entsprechend den obigen Aufgaben, die Koeffizienten der Blöcke für die Direktform II und rauschminimale Normalform. Was ist an den Koeffizienten zu beobachten? Welche Schwierigkeiten stellen sich ein?
7.4
Versuchsdurchführung: Kanonische Direktform II und DGL
In der digitalen Signalverarbeitung werden der Einfachheit halber auch oft die Systeme in der kanonischen Direktform II bzw. in der Form der Differenzengleichung (DGL) implementiert. Implementiert man die Blöcke 2. Ordnung in der kanonischen Direktform II mit Akkumulatoren, so erhält man die Struktur in Bild 7-1. Wegen der Akkumulatoren mit erweiterter Wortlänge kann das innere Rauschen mit nur drei Rauschquellen modelliert werden. Die Aufspaltung des Koeffizienten a1 in zwei Faktoren erhöht nicht das innere Geräusch – kann sich allerdings bei der Koeffizientenquantisierung ungünstig bemerkbar machen. x[n] b2
b0
b1 s2[n]
Akku
–a2
D
s1[n] Akku
D
Akku
y[n]
–a1/2
Bild 7-1 Block 2. Ordnung zur kanonischer Direktform II mit Akkumulatoren (Akku)
Die Zahl der inneren Rauschquellen kann auf eine reduziert werden, wenn mehr Speicherplätze für die Signale zur Verfügung stehen. Geht man direkt von der Differenzengleichung eines Blockes 2. Ordnung aus y[n] b0 x[n] b1 x[n 1] b2 x[n 2] a1 y[ n 1] a2 y[ n 2]
mit a0
1
(7.1)
erhält man die Struktur mit vier Speichern in Bild 7-2. Da alle Produkte mit den Koeffizienten in den Akkumulator gespeichert werden, ist nur bei der Ausgabe des Blockergebnisses y[n] eine Wortlängenverkürzung notwendig. Anmerkung: In der Praxis werden auch aufwändigere Algorithmen eingesetzt, bei denen die Ausgangsgrößen der Blöcke mit vergrößerter Wortlänge rückgekoppelt bzw. auf den jeweils nachfolgenden Block übertragen werden. Eine Wortlängenverkürzung findet dann nur einmal am Ausgang des Systems statt.
7.4 Versuchsdurchführung: Kanonische Direktform II und DGL x[n–1]
D
x[n] b2
x[n–2]
D b0
b1
y[n]
Akku
–a2
67
–a1/2
D y[n–2]
D y[n–1]
Bild 7-2 Block 2. Ordnung nach der Differenzengleichung mit einem Akkumulator (Akku)
M7.10
Simulieren Sie das innere Rauschen des Cauer-Tiefpasses mit quantisierten Koeffizienten bei einer Realisierung in der Direktform II nach Bild 7-1 entsprechend der Aufgabe M7.7. Überprüfen Sie auch den Betragsfrequenzgang für die quantisierten Koeffizienten. Vergleichen Sie die Ergebnisse für das innere Rauschen bei einer quantisierten Arithmetik mit 16 Bit Wortlänge.
M7.11
Simulieren Sie das innere Rauschen des Cauer-Tiefpasses mit quantisierten Koeffizienten bei einer Realisierung zur DGL nach Bild 7-2 entsprechend der Aufgaben M7.7 und M7.10. Vergleichen Sie die Ergebnisse für das innere Rauschen bei einer quantisierten Arithmetik mit 16 Bit Wortlänge.
Hinweise zu MATLAB Siehe auch frühere Versuche.
Þ Online-Ressourcen zum Versuch cauer.mat, lab7_1, lab7_2, lab7_3, quant2c, ssr2b_ABCDKW, ssr_filter, ssr_filter2c, ssr_quant2c, tdf2_filter, tdf2_filterq, tdf2D_filter, tdf2D_filter und Programme mit Ergebnissen im HTML-Format
68
8
Lattice-Strukturen für FIR- und All-pole-Systeme
8.1
Einführung
Die Lattice-Strukturen stellen alternative Formen zur Implementierung digitaler LTI-Systeme bereit. Ihr modularer Aufbau lässt eine adaptive und stufenweise Erweiterung zu. Die relative Robustheit gegenüber Wortlängeneffekten und der einfache Stabilitätstest helfen dabei. Lattice-Strukturen eignen sich besonders, wenn es um Signalmodellierung, spektrale Schätzung und adaptive Systeme geht. Die Lattice-Struktur ist an einem symmetrischen Kreuzglied zu erkennen, das nach Bedarf wiederholt wird. So entstehen Signalflussgraphen, die an ein regelmäßiges Gitter, englisch lattice, erinnern. Lattice-Strukturen werden seit vielen Jahren eingesetzt [KeLo62], [GrMa73], [GrMa75] und gehört zum Standardrepertoire der digitalen Signalverarbeitung [KaKr02], [Ste03], [PrMa96], [Mit98], [Sch94], [Unb98], [OpSc89]. Anmerkung: Mit dem Versuch verwandte Themen sind die Wellendigitalfilter [Fet71] und Systeme aus gekoppelten Allpässen [Sch94].
Lernziele Nach dem Bearbeiten des Versuchs können Sie x aus der Impulsantwort eines FIR-Systems die Koeffizienten der Lattice-Struktur und umgekehrt berechnen x zu einem FIR-System in Lattice-Struktur den Signalflussgraphen skizzieren und es in MATLAB implementieren x den minimalphasigen und den maximalphasigen Ausgang der Lattice-Struktur bestimmen und die Unterschiede anhand der Teilimpulsantworten und des Pol-Nullstellen-Diagramms erklären x zu einem All-zero-System das inverse All-pole-System und umgekehrt angeben und den Zusammenhang im Pol-Nullstellen-Diagramm erläutern x zu einem All-pole-System in Lattice-Struktur den Signalflussgraphen skizzieren und es in MATLAB implementieren
8.2
FIR-Systeme in Lattice-Struktur
8.2.1
Grundlagen
Den Ausgangspunkt für die Überlegungen bildet der Signalflussgraph in Bild 8-1 für ein LTISystem mit zwei Eingängen und zwei Ausgängen. Beide Eingänge sind über ein symmetrisches Kreuzglied mit beiden Ausgängen verbunden. Das Kreuzglied besitzt zwei Multiplizierer mit identischen Koeffizienten k. Das System wird deshalb symmetrische Lattice-Struktur 1. Ordnung genannt. Man beachte, die Verzögerung (D) des Signals hinter dem unteren Eingang.
8.2 FIR-Systeme in Lattice-Struktur
69
Anmerkungen: (i) Der Einfachheit halber werden im Signalflussgraph die Pfadgewichte gleich 1 weggelassen. (ii) D, wie Delay, steht für den Verzögerungsoperator D(x[n]) = x[n–1]. (iii) In der Literatur wird das Kreuzglied auch mit negativem Vorzeichen definiert. u1[n]
u0[n]
x[n]
v0[n]
k k
D
v1[n]
Bild 8-1 Symmetrische Lattice-Struktur 1. Ordnung zu einem FIR-System 1. Ordnung
Im Signalflussgraphen sind die Eingangs-Ausgangsgleichungen direkt abzulesen. Legt man, wie üblich, an beide Eingänge das Signal x[n], so resultieren als Eingangs-Ausgangsgleichungen zwei lineare Differenzengleichungen 1. Ordnung ohne Rückführung u1[n] u0 [n] k v0 [n 1]
x[n] k x[n 1]
v1[n]
k x[n] x[n 1]
k u0 [n] v0 [n 1]
(8.1)
Es ergeben sich demzufolge zwei FIR-Systeme 1. Ordnung mit den Impulsantworten hu(1) [n] 1, { }k hv(1) [n] {,1} k
(8.2)
[hu n1]
Man beachte besonders die zeitliche Spiegelung der Impulsantworten zueinander. Nach dem Satz zur Zeitumkehr der z-Transformation folgt aus der zeitlichen Spiegelung der Impulsantwort die Invertierung der Pole und Nullstellen der Übertragungsfunktion. Minimalphasige FIRSysteme werden dann maximalphasig. Man nennt deshalb den oberen Ausgang in Bild 8-1 auch den minimalphasigen Ausgang, und den unteren den maximalphasigen Ausgang. Anmerkung: Wegen der hier betrachteten Systeme mit reellen Impulsantworten, also reellwertige Systeme, treten Pole und Nullstellen nur in reeller Form oder als konjugiert komplexe Paare auf. Die Inversion aller Pole und Nullstellen erscheint dann wie die Spiegelung der einzelnen Pole und Nullstellen am Einheitskreis.
Die Lattice-Struktur in Bild 8-1 kann beliebig oft kaskadiert werden. Wir beginnen mit der Kaskade aus zwei Stufen in Bild 8-2, und stellen die Eingangs-Ausgangsgleichungen für die 2. Stufe auf. u2 [n] u1[n] k2 v1[n 1] v2 [n]
x[n]
u0[n]
(8.3)
k2 u1[n] v1[n 1] u1[n]
u2[n]
k1 v0[n] D
k1
k2 v1[n]
D
k2
Bild 8-2 FIR-System 2. Ordnung in Lattice-Struktur
v2[n]
70
8 Lattice-Strukturen für FIR- und All-pole-Systeme
Setzen wir nun die Ergebnisse für die 1. Stufe ein, resultiert für die Gesamtstruktur x[n] k1 1 k2 x[n 1] k2 x[n 2]
u2 [ n ]
(8.4)
v2 [n] k2 x[n] k1 1 k2 x[n 1] x[n 2]
Die zugehörigen Impulsantworten entsprechen FIR-Systemen 2. Ordnung und sind wieder zueinander zeitlich gespiegelt. hu(2) [n] 1, { k(1 1 k), 2 k} 2 hv(2) [n] {k,2 k(1 1 k),1} 2
(8.5)
[hu n2]
Für die Herleitung des allgemeinen Zusammenhangs zwischen den Koeffizienten eines FIRSystems N-ter Ordnung und seiner Realisierung in Lattice-Struktur betrachten wir der Einfachheit halber die Eingangs-Ausgangsgleichungen im Bildbereich, also die Übertragungsfunktionen für die z-Transformierten. Im Bildbereich entspricht der Verzögerung der Signale um den Takt D die Multiplikation der z-Transformierten mit z–1. Bild 8-3 zeigt den Zusammenhang der z-Transformierten für die Lattice-Struktur 2. Ordnung. Aus (8.1) oder Bild 8-3 ergibt sich nach der ersten Stufe U1 ( z ) V1 ( z )
1 k z X ( z) k z X ( z) 1
1
1
1
A1 ( z ) X ( z )
(8.6)
z 1 A1 ( z 1 ) X ( z )
Die Zeitspiegelung tritt mit A1(z–1) in Erscheinung. Der Vorfaktor z–1 steht für eine Verschiebung der Impulsantwort um einen Takt, also zu einer rechtsseitigen Folge, und führt somit zu einem kausalen System. Anmerkung: Die Wahl des Formelbuchstaben A(z) für die Übertragungsfunktion des FIR-Systems folgt der Literatur und wird in Abschnitt 8.3 begründet. X(z)
U2(z) = A2(z) X(z)
U1(z) = A1(z) X(z) k1 –1
z
k1
k2 –1
–1
V1(z) = z A1(z ) X(z) z
–1
k2
V2(z) = z–2A2(z–1) X(z)
Bild 8-3 FIR-System 2. Ordnung in Lattice-Struktur (im Bildbereich)
Für die Ausgänge der zweiten Stufe erhält man aus dem Signalflussgraphen entsprechend U 2 ( z)
A1 ( z ) X ( z ) k2 z 1 z 1 A1 z 1 X ( z )
ª A1 ( z ) k2 z 2 A1 z 1 º X ( z ) ¬ ¼
(8.7) A2 ( z ) X ( z )
Erhöht man die Stufenzahl weiter, gilt der allgemeine rekursive Zusammenhang für die Übertragungsfunktion Ai(z) zum minimalphasigen Ausgang der i-ten Stufe mit den Ausgängen der (i–1)-ten Stufe als Eingänge.
8.2 FIR-Systeme in Lattice-Struktur Ui ( z) X ( z)
71
Ai ( z )
Ai 1 ( z ) ki z i Ai 1 z 1
(8.8)
Die Übertragungsfunktion der i-ten Stufe ist ein Polynom i-ter Ordnung in z–1. i
Ai ( z )
¦ am(i ) z m
mit a0(i )
1 und ai(i )
ki
(8.9)
m 0
Die Impulsantworten der zugehörigen kausalen FIR-Systeme sind mit den Polynomkoeffizienten bestimmt. hu(i ) [n] {a,0 a,1 !, a}i
(8.10)
Setzt man in (8.8) die Polynome für Ai(z) und Ai–1(z) ein, so ergibt sich nach kurzer Zwischenrechnung aus dem Koeffizientenvergleich die Zuordnung am(i )
am(i 1) ki ai(i m1)
für m 1: (i 1)
(8.11)
Daraus kann ein Algorithmus zur rekursiven Berechnung der Polynomkoeffizienten aus den Koeffizienten der Lattice-Struktur abgeleitet werden. Für die N-te Stufe resultiert aus (8.9) für die Impulsantwort des FIR-Systems N-ter Ordnung h[0]
a0( N )
1 und h[ N ]
aN( N )
kN
(8.12)
Der Algorithmus ist im Programmbeispiel 8-1 als MATLAB-Programm zusammengefasst. Der rekursive Zusammenhang (8.11) bildet auch den Ausgangspunkt für die Berechnung der Koeffizienten der Lattice-Struktur aus der Impulsantwort des FIR-Systems, den Polynomkoeffizienten. Nach kurzer Zwischenrechnung resultiert der Algorithmus in Programmbeispiel 8-2.
Programmbeispiel 8-1 Berechnung der Impulsantwort eines FIR-Systems aus den Koeffizienten der Lattice-Struktur % Compute impulse response of FIR filter in lattice structure % function a = latck2a(k) % k - lattice-structure coefficients % a - impulse response (polynomial coefficients) % latck2a.m * mw * 29/10/2006 function a = latck2a(k) N = length(k); % filter order A = zeros(N,N); % allocate memory for i=1:N A(i,i) = k(i); for m=1:i-1 A(i,m) = A(i-1,m)+k(i)*A(i-1,i-m); end end a = [1 A(i,1:N)]; % impulse response (polynomial coefficients)
72
8 Lattice-Strukturen für FIR- und All-pole-Systeme
Programmbeispiel 8-2 Berechnung der Koeffizienten der Lattice-Struktur aus der Impulsantwort eines FIR-Systems % Compute lattice-structure coefficients from impulse response of % FIR filter % function k = latca2k(a) % a - impulse response (polynomial coefficients) % k - lattice-structure coefficients % latca2k.m * mw * 10/29/2006 function k = latca2k(a) N = length(b)-1; % filter order k = zeros(1,N); A = zeros(N,N); % allocate memory A(N,:) = a(2:N+1); % impulse response (polynomial coefficients) for i=N:-1:1 k(i) = A(i,i); % lattice-structure coefficient for m=1:i-1 A(i-1,m) = (A(i,m)-k(i)*A(i,i-m))/(1-k(i)^2); end end
8.2.2
Vorbereitende Aufgaben
A8.1
Die Algorithmen der Programmbeispiele 8-1 und 8-2 sollen anhand eines Zahlenwertbeispiels für ein FIR-System 3. Ordnung verifiziert werden. Gegeben ist die Impulsantwort h[n] = {1, 1/2, 1/4, 1/8}. Berechnen Sie die Koeffizienten der Lattice-Struktur k. Führen Sie die Probe durch, indem Sie aus Ihren Ergebnissen für k die Impulsantwort berechnen.
A8.2
Zeigen Sie dass die in Programmbeispiel 8-2 verwendete Rekursionsformel gilt. am(i 1)
am(i ) ki ai(i )m 1 ki2
Hinweis: Benutzen Sie (8.11) auch für ai(i )m . A8.3
Beim Entwurf linearphasiger FIR-Filter wird die gerade oder ungerade Symmetrie der Impulsantwort gefordert. Warum können derartige FIR-Filter nicht direkt in eine Lattice-Struktur umgesetzt werden?
A8.4
Es soll ein FIR-System mit gerader oder ungerader Symmetrie durch eine LatticeStruktur implementiert werden. Wie ist die Lattice-Struktur zu erweitern damit das möglich wird? Geben Sie ein Blockdiagramm einer möglichen Lösung an. Hinweis: Führen Sie eine zusätzliche Signalverzögerung ein.
8.2.3
Versuchsdurchführung
M8.1
Überprüfen Sie Ihre Vorbereitung in A8.1, indem Sie die Programmbeispiele 8-1 und 8-2 zur Berechnung der Koeffizienten verwenden.
M8.2
Zur Berechnung der Koeffizienten der Lattice-Struktur k aus den Polynomkoeffizienten a stellt MATLAB den Befehl k = tf2latc(a) zur Verfügung. Der umgekehrte Weg wird mit dem Befehl a = latc2tf(k)beschritten.
8.3 All-pole-Systeme in Lattice-Struktur
73
Wenden Sie die beiden Befehle für das Beispiel in A8.1 an. Welcher Unterschied ergibt sich? M8.3
Entwickeln Sie ein MATLAB-Programm, das die Filterung einer endlich langen Folge in Lattice-Struktur durchführt, siehe Funktionskopf in Programmbeispiel 8-3. Überlegen Sie, wie Sie Ihr Programm testen können.
M8.4
Überprüfen Sie durch Simulationen den Zusammenhang zwischen den Impulsantworten am oberen und unteren Ausgang der Lattice-Struktur, hu[n] bzw. hv[n], für ein FIR-System 4. Ordnung mit der Impulsantwort h[n] = {1, 0.7, 0.1, –0.2, 0.1}. Verwenden Sie das MATLAB-Werkzeug Filter Viewer (fvtool). Stellen Sie die Frequenzgänge nach Betrag und Phase und die Pol-Nullstellen-Diagramme grafisch dar. Diskutieren Sie die Ergebnisse.
Programmbeispiel 8-3 FIR-System in Lattice-Struktur (Programmkopf) % FIR filtering using lattice-structure system % function [u,v] = latcfir(k,x) % x - input signal % k - lattice-structure coefficients % u,v - output signal (minimum phase, maximum phase) function [u,v] = latcfir(k,x)
8.3
All-pole-Systeme in Lattice-Struktur
8.3.1
Grundlagen
Die Lattice-Struktur der All-pole-Systeme weist wegen der Signalrückführung eine Komplexität auf, die auf den ersten Blick schwer durchschaubar ist. Wir erarbeiten uns die Zusammenhänge deshalb Schritt für Schritt. Dazu gehen wir von einem minimalphasigen nichtrekursiven System N-ter Ordnung aus N
y[n]
¦ ai x[n i]
mit a0
1
(8.13)
z0,i 1 für alle Nullstellen
(8.14)
i 0
Die Übertragungsfunktion ist Y ( z) X ( z)
N
A( z )
¦ ai z i
mit
i 0
Da wegen der Minimalphasigkeit alle Nullstellen im Inneren des Einheitskreises liegen, kann ein stabiles inverses System angegeben werden, indem in (8.13) Eingangs- und Ausgangssignal vertauscht werden. Es resultiert die Differenzengleichung N
x[n]
¦ ai y[n i] i 0
mit a0
1
(8.15)
74
8 Lattice-Strukturen für FIR- und All-pole-Systeme
mit der Übertragungsfunktion Y ( z) X ( z)
1 N
¦ ai z
mit i
zf,i 1 für alle Pole
(8.16)
i 0
Weil das neue System nur Pole und keine Nullstellen hat, wird es All-pole-System, auch Allpolfilter, genannt. Daran angelehnt wird für das zugrunde liegende FIR-System im Weiteren der Begriff All-zero-System verwendet. Der Übergang vom All-zero-System zum All-pole-System kann im Signalflussgraphen der Direktform I unmittelbar vollzogen werden. In Bild 8-4 rechts sind Eingang und Ausgang vertauscht und damit auch die Richtung des direkten Pfades (Durchgriff). Die Kette der Verzögerer wird nun durch das Ausgangssignal (rekursiv) gespeist. Die Vorzeichen der zugehörigen Pfadgewichte werden invertiert, siehe Auflösung der Differenzengleichung. All-zero-System 1
x[n] D D
All-pole-System y[n]
D
a1
D
a2
x[n]
–a1 –a2
y[n] = x[n] – a1 y[n–1] – a1 y[n–2]
y[n] = x[n] + a1 x[n–1] + a1 x[n–2] Vertauschen von Ein- und Ausgang
1
y[n]
x[n] = y[n] + a1 y[n–1] + a1 y[n–2]
Bild 8-4 Übergang vom All-zero-System zum All-pole-System im Signalflussgraphen der Direktform I
Überträgt man das Vorgehen in Bild 8-4 auf die Lattice-Struktur 1. Ordnung in Bild 8-1, so erhält man den Signalflussgraphen in Bild 8-5.
y[n]
u0[n] v0[n]
D
-k k
u1[n] = x[n] v1[n]
Bild 8-5 All-pole-System 1. Ordnung in Lattice-Struktur
Wir überprüfen den reziproken Zusammenhang anhand von Bild 8-5. Mit dem Eingangssignal x[n] = u1[n] erhalten wir an den beiden Ausgängen der rekursiven Lattice-Struktur u0 [n] u1[n] k v0 [n 1] v1[n]
x[n] k u0 [n 1]
k u0 [n] v0 [n 1] k u0 [n] u0 [n 1]
(8.17)
8.3 All-pole-Systeme in Lattice-Struktur
75
Wie erwartet, resultiert nach der z-Transformation der ersten Zeile die Übertragungsfunktion des All-pole-Systems 1. Ordnung U0 ( z) X ( z)
1 A1 ( z )
1
(8.18)
1 k z 1
Anmerkungen: (i) Wie in der Herleitung angesetzt, sind die Übertragungsfunktionen der All-pole-LatticeStruktur (8.18) und der All-zero-Lattice-Struktur (8.6) zueinander invers. (ii) Die Übertragungsfunktion zum unteren Ausgang der All-pole-Lattice-Struktur wird im nächsten Versuch behandelt.
Die Lattice-Struktur in Bild 8-5 kann beliebig oft wiederholt werden. Wir betrachten zunächst zwei Stufen und bestimmen das Übertragungsverhalten aus dem Signalflussgraphen für die z-Transformierten. In der Literatur ist es üblich, den Signalflussgraphen von links gespeist anzugeben. Wir machen das ebenso. X(z) = U2(z)
U1(z) –k2 k2
V2(z)
z–1
U0(z) = Y(z) –k1 k1
V1(z)
z–1 V0(z)
Bild 8-6 Lattice-Struktur für ein All-pole-System 2. Ordnung
Mit der Signalrückführung am Ausgang, gilt U 0 ( z ) U1 ( z ) k1 z 1 V0 ( z ) V0 ( z ) U 0 ( z )
und
U1 ( z ) U 2 ( z ) k2 z 1 V1 ( z ) V1 ( z )
k1 U 0 ( z ) z 1 V0 ( z )
(8.19)
Auflösen bezüglich der z-Transformierten des Ausgangssignals U0(z) bezüglich U2(z) = X(z) liefert die Übertragungsfunktion U0 ( z) X ( z)
1 A2 ( z )
1 1 k1 (1 k2 ) z 1 k2 z 2
(8.20)
Es resultiert das inverse System zum All-zero-System 2. Ordnung in (8.5). Der inverse Zusammenhang gilt für beliebige Ordnung N. Bild 8-7 zeigt den Signalflussgraphen eines All-pole-Systems N-ter Ordnung mit der Übertragungsfunktion U0 ( z) X ( z)
1 AN ( z )
1 N
¦ ai z i
(8.21)
i 0
Die Koeffizienten der Lattice-Struktur des All-pole-Systems sind identisch zu denen des zugehörigen All-zero-Systems. Zur Berechnung können deshalb die Algorithmen der Programmbeispiele 8-1 bzw. 8-2 direkt eingesetzt werden. Für die Anwendung ist die folgende Eigenschaft wichtig. Es kann gezeigt werden, dass das All-zero-System minimalphasig ist, wenn für die Koeffizienten der Lattice-Struktur gilt |ki| x[n] xˆ[n]@ E x [n] E xˆ [n] 2E x[n] xˆ[n] 2
E e 2 [ n] 2
2
(10.11)
Mit der Autokorrelationsfolge (AKF) des zu prädizierenden, reellen und stationären Prozesses Rxx[l] ergibt sich der mittlere quadratische Fehler MSE
Rxx [0] E xˆ 2 [n] 2E x[n] xˆ[n]
(10.12)
Anmerkungen: (i) Die AKF reellwertiger, stationärer Prozesse ist eine gerade Funktion. Ihr Wert an der Stelle null ist gleich der Leistung des Prozesses. (ii) In der Regel wird ein mittelwertfreier Prozess betrachtet. Anderfalls kann der Mittelwert einfach vorab kompensiert werden.
90
10 Lineare Prädiktion
Setzt man für den Schätzwert die Prädiktionsvorschrift (10.9) ein, gilt für die beiden Erwartungswerte in (10.12)
E xˆ 2 [n]
§ª N º ªN º· E ¨ « ¦ bk x[k m]» « ¦ bk x[l m]» ¸ ¨ ¸ ¼ ¬l 0 ¼¹ © ¬k 0 N
N
N
(10.13)
N
¦ ¦ bk bl E x[k m] x[l m] ¦ ¦ bk bl Rxx [l k ]
k 0l 0
k 0l 0
bzw. E x[n] xˆ[n]
N § · E ¨ x[n] ¦ bk x[n k m] ¸ k 0 © ¹ N
N
k 0
k 0
(10.14)
¦ bk E x[n] x[n k m] ¦ bk Rxx [k m]
Der MSE hängt nur von der AKF des zu prädizierenden Prozesses Rxx[l] und den zu bestimmenden Koeffizienten des Prädiktionsfilters bk ab. Zur Berechnung der Koeffizienten bietet sich das Kriterium des kleinsten MSE an, der MMSEEntwurf (Minimum MSE). Da das Minimum bezüglich der Koeffizienten bk gesucht wird, betrachten wir zunächst die partiellen Ableitungen des MSE und setzen diese Null, um die Extrema zu finden.
w MSE wbk
N
!
2 ¦ bl Rxx [l k ] 2 Rxx [k m] 0
(10.15)
l 0
Anmerkung: Die 2. partielle Ableitung liefert stets den nicht negativen Wert Rxx[0], sodass der Funktionsgraph des MSE einer nicht-negativen und nach oben offenen Parabel entspricht, also eine nach oben konkave Funktion ist. Es existiert jeweils nur ein endliches Extremum, ein Minimum.
Für die Koeffizienten des Prädiktionsfilters ergeben die partiellen Ableitungen des MSE genau p Bestimmungsgleichungen, die Normalengleichungen [BSMM99]. b0 Rxx [k ] b1 Rxx [1 k ] " bN Rxx [ N k ]
Rxx [k m] für k
0: N
(10.16)
Das System der Gleichungen lässt sich übersichtlich in Matrix-Vektorform angeben. Rxx [ N ] · § b0 § Rxx [0] Rxx [1] " ¨ ¸ ¨ Rxx [ N 1] ¸ ¨ b1 ¨ Rxx [1] Rxx [0] ¨ ¸ ¨ # # % # ¨ ¸ ¨ " Rxx [0] ¹ © bN © Rxx [ N ]
· ¸ ¸ ¸ ¸ ¹
§ Rxx [m] · ¨ ¸ ¨ Rxx [1 m] ¸ ¨ ¸ ¨ ¸ © Rxx [ N m] ¹
(10.17)
Da die AKF eine gerade Folge ist, d. h. Rxx[l] = Rxx[–l], erhält man links die (Auto-)Korrelationsmatrix Rxx des zu prädizierenden Prozesses.
10.3 FIR-Systeme zur Prädiktion
91
Rxx [ N ] · § Rxx [0] Rxx [1] " ¨ ¸ R [1] R [0] R xx xx [ N 1] ¸ ¨ xx ¨ # ¸ % # ¨ ¸ " Rxx [0] ¹ © Rxx [ N ]
R xx
(10.18)
Definiert man dazu passend in (10.17) den Vektor der Koeffizienten b und den Korrelationsvektor rxx, resultiert die kompakte Matrix-Vektorform der Normaleingleichungen. R xx b
rxx
(10.19)
Die Korrelationsmatrix ist eine symmetrische Toeplitz-Matrix. Es existiert die inverse Matrix, sodass das Gleichungssystem eindeutig gelöst werden kann. Anmerkungen: (i) Toeplitz-Matrizen zeichnen sich durch eine symmetrische Bandstruktur aus und sind nicht singulär. (ii) Weil in der Regel der zu prädizierende Prozess mittelwertfrei ist, wird in der Literatur auch von der (Auto-)Kovarianzmatrix bzw. dem (Auto-)Kovarianzvektor gesprochen.
Bei gegebener Prädiktorordnung sind die optimalen Koeffizienten im Sinne des MMSE-Entwurfs R xx1 rxx
b opt
(10.20)
Anmerkung: Die Lösung ist in der Literatur als Wiener-Hopf-Gleichung der Prädiktion bekannt.
Mit den oben definierten Vektoren und der Korrelationsmatrix kann der MSE (10.12) kompakt geschrieben werden. Rxx [0] bT R xx b 2 bT rxx
MSE
(10.21)
Setzt man die gefundene Lösung für die Prädiktionskoeffizienten (10.20) ein, so ergibt sich der mittlere quadratische Fehler für den MMSE-optimalen Prädiktor vorgegebener Ordnung
MSEopt
10.3.2
Rxx [0] bTopt rxx
(10.22)
Orthogonalität
Eine später noch wichtige Eigenschaft der optimalen Lösung ist die Orthogonalität zwischen dem Prozess x[n] und dem Prädiktionsfehler e[n]. Sie leitet sich, wie die optimale Lösung, aus der Betrachtung der partiellen Ableitungen des MSE ab. w MSE wbk
w E e 2 [ n] wbk
§ · w 2E ¨ e[n] e[n] ¸ wbk © ¹
2E e[n] x[n k ]
(10.23)
Anmerkung: Da der Erwartungswert ein linearer Operator ist (Integration mit der Wahrscheinlichkeitsdichtefunktion) kann die Reihenfolge mit der partiellen Differenziation vertauscht werden. Kettenregel und einsetzen liefern obiges Ergebnis.
Bei optimaler Lösung für die Prädiktionskoeffizienten sind die partiellen Ableitungen null. Die jeweiligen stochastischen Variablen sind orthogonal. E e[n] x[n k ]
0 für k
0: N
(10.24)
92
10.3.3
10 Lineare Prädiktion
Prädiktionsgewinn
In der Audiotechnik wird oft eine Datenreduktion angestrebt, um die zu übertragende bzw. zu speichernde Menge an Daten möglichst klein zu halten. Die Prädiktion in Bild 10-1 macht es möglich, das Signal in einen prädizierbaren Anteil xˆ[n] , also redundanten Anteil, und einen, die Innovation enthaltenden Anteil, dem Restsignal (Residuum) e[n], zu trennen. Übertragen oder gespeichert werden dann nur noch das Restsignal und als Seiteninformation die Prädiktionskoeffizienten. Als wichtige Kenngröße der Leistungsfähigkeit der Prädiktion wird das Verhältnis der Leistungen des zu prädizierenden Prozesses x[n] und des Restsignals e[n] verwendet, der Prädiktionsgewinn Gp
Rxx [0] Ree [0]
(10.25)
Anmerkung: Ist beispielsweise der Prädiktionsgewinn gleich 4 (6dB), so entspricht dies, im Vergleich zum ursprünglichen Signal, einer mittleren Abnahme der Signalamplitude des Restsignals um den Faktor 2. Letzteres wiederum ermöglicht die Reduktion der zur Signalwertdarstellung verwendeten Wortlänge um 1 Bit bei etwa gleicher Qualität.
10.3.4
Vorbereitende Aufgaben
A10.1
In der Versuchsdurchführung wird das IIR-System 2. Ordnung mit der Übertragungsfunktion H ( z)
0.242
z 2 2 z 1 1 z 2 0.71z 1 0.25
als Modellsystem verwendet. Überlegen Sie, wie in MATLAB Musterfunktionen des Modellprozesses erzeugt werden können. Hinweis: Geben Sie dazu zwei passende MATLAB-Befehle an. A10.2
Wie kann die AKF am Filterausgang mit MATLAB durch eine einfache Simulation bestimmt werden ohne die AKF durch eine aufwändige Monte-Carlo-Simulation zu schätzen. Hinweis: Geben Sie dazu drei unterstützende MATLAB-Befehle an. Anmerkungen: (i) Von einer Monte-Carlo-Simulation spricht man, wenn Zufallszahlenfolgen im Sinne eines Zufallsexperiments verwendet werden. (ii) Auf die analytische Berechnung wird hier aus Aufwandsgründen verzichtet. Zur Lösung führt prinzipiell die inverse z-Transformation von H ( z ) H ( z 1 ) mit Partialbruchzerlegung und numerischer Auswertung der Formeln mit MATLAB, siehe z. B. [Wer05] und Programmbeispiel lab10_acf.
A10.3
Berechnen Sie allgemein die MMSE-optimalen Koeffizienten des nichtrekursiven, linearen Prädiktors 1. und 2. Ordnung. Geben Sie dazu jeweils das Gleichungssystem für m = 1 an. Berechnen Sie auch die jeweiligen mittleren Leistungen der Fehlersignale. Hinweis: Die Ordnung p des Prädiktors ist gleich der Zahl der zur Prädiktion verwendeten Signalelemente, also der Zahl der Koeffizienten des Prädiktionsfilters.
A10.4
Zeigen Sie analytisch, dass für ein AR-Modell die lineare Prädiktion mit einem FIRSystem die Korrelation des Modellprozesses restlos beseitigen kann.
10.3 FIR-Systeme zur Prädiktion
93
10.3.5
Versuchsdurchführung
M10.1
Bestimmen Sie die AKF am Ausgang des Systems nach A10.1, wenn der Prozess am Eingang ein weißer Prozess ist. Stellen Sie die AKF grafisch dar. Hinweis: MATLAB-Befehle conv, flipud, fliplr und impz
M10.2
Erzeugen Sie in MATLAB normalverteilte Musterfolgen der Prozesse nach A10.1. Stellen Sie Ausschnitte der Musterfolgen und die zugehörigen, geschätzten AKF grafisch dar. Hinweis: Wählen Sie einen ausreichenden Stichprobenumfang; MATLAB-Befehle: filter, randn, xcorr.
M10.3
Berechnen Sie die Koeffizienten der Prädiktoren 1. und 2. Ordnung. Geben Sie auch die mittlere Leistung des jeweiligen Prädiktionsfehlers an.
M10.4
Setzen Sie den Prädiktor 1. Ordnung ein. Schätzen Sie die AKF des Schätzfehlers und stellen Sie die AKF grafisch dar. Geben Sie die Leistung des Schätzfehlers an.
M10.5
Wiederholen Sie obige Aufgabe für den Prädiktor 2. Ordnung. Geben Sie die Leistung des Schätzfehlers an.
M10.6
Zeigen Sie beispielhaft mit MATLAB, dass der mittlere quadratische Prädiktionsfehler bezüglich der Prädiktionskoeffizienten eine nach oben konkave Funktion ist; im zweidimensionalen Fall, b = (b0, b1)T, ähnlich einem nach oben offenen Paraboloiden. Bestimmen Sie dazu für die Übertragungsfunktion 2. Ordnung in A10.2 den mittleren quadratischen Fehler MSE für die Prädiktionskoeffizienten im Bereich –4 bis 4 und tragen Sie den Prädiktionsfehler als dreidimensionale Grafik bzw. in Höhenliniendarstellung auf. Hinweis: MATLAB-Befehle mesh, contour und clabel
M10.6
Wiederholen Sie obige Prädiktionsaufgabe für Prädiktoren höherer Ordnung. Geben Sie die Leistung des Schätzfehlers analytisch und durch Monte-Carlo-Simulation an. Hinweis: MATLAB-Befehl für Matrix-Division \ Stellen Sie den Prädiktionsgewinn in dB als Funktion der Ordnung p des Prädiktors grafisch dar. Diskutieren Sie die Wirksamkeit der Prädiktion.
Hinweise zu MATLAB Signal Processing Toolbox
impz, xcorr
MATLAB functions
\, conv, filter, fliplr, flipud, randn
MATLAB graphics
mesh, clabel, contour
Þ Online-Ressourcen zum Versuch lab10_1.m, lab10_2.m, lab10_3.m, lab10_acf.m, graph10_e.m, graph10_h.m, graph10_w.m und Programme mit Ergebnissen im HTML-Format
94
11
Levinson-Durbin-Algorithmus und linearer Prädiktor in Lattice-Struktur
11.1
Einführung
In Versuch 10 wurde die Aufgabe der linearen Prädiktion wie in Bild 11-1 gelöst. Ein wichtiges Anwendungsfeld der Prädiktion liegt in der Audiocodierung zur Redundanzreduktion. Vorhersagbare Signalanteile können ohne Informationsverlust weggelassen werden, was den Aufwand bei der Übertragen oder Speicherung deutlich reduziert. In der Audiocodierung liegen Signale vor, die über kurze Zeitabschnitte von einigen Millisekunden als korreliert angesehen werden können. Die lineare Prädiktion wird typisch für Signalblöcke der Dauer von etwa 5 bis 20 ms eingesetzt, sodass die Prädiktionskoeffizienten ca. 50- bis 200-mal pro Sekunde zu berechnen sind. Unter der Prämisse einer besonders kostengünstigen Lösung, ist eine Berechnung mit geringem Aufwand wünschenswert. Das leistet der Levinson-Durbin-Algorithmus (1947/ 1959). Darüber hinaus kann über ihn der Zusammenhang mit der, in vielen Anwendungen vorteilhaften Lattice-Struktur für das Prädiktionsfilter hergestellt werden. Insbesondere gelingt damit auch eine schrittweise Anpassung der Ordnung des Prädiktors an die Signalkorrelation. Anmerkungen: (i) Eine effektive Alternative zur Berechnung der Koeffizienten des Prädiktors liefert auch der Schür-Algorithmus (1917). (ii) Die Herleitung des Levinson-Durbin-Algorithmus folgt der Argumentation in [VHH98]. Um die Verbindung zu der Lattice-Struktur für FIR-Filter herzustellen, werden die Komponenten der eingeführten Vektoren bereits entsprechend indiziert.
x[n]
e[n]
x[n] xˆ[n]
Prädiktionsfehler D
Dm
m-fache Verzögerung
b0
D
b1
b2
D bN
Schätzwert xˆ[n]
linearer Prädiktor Bild 11-1 Lineare Prädiktion p-ter Ordnung mit FIR-Filter der Ordnung N = p – 1 als Prädiktionsfilter
Lernziele Nach Bearbeiten des Versuchs können Sie x das Grundprinzip des Levinson-Durbin-Algorithmus erläutern x den Levinson-Durbin-Algorithmus in MATLAB programmieren x den Levinson-Durbin-Algorithmus hinsichtlich seines praktischen Einsatzes bewerten x den linearen Prädiktor in Lattice-Structur in einer MATLAB-Simulation einsetzen
11.2 Levinson-Durbin-Algorithmus
11.2
95
Levinson-Durbin-Algorithmus
Im Levinson-Durbin-Algorithmus werden die Prädiktionskoeffizienten in rekursiver Weise mit zunehmender Ordnung berechnet. Der Algorithmus erschließt sich aus einer Erweiterung der Normalengleichung in Matrix-Vektorform für stationäre Prozesse (10.17). Rxx [ N ] · § b0 § Rxx [0] Rxx [1] " ¨ ¸ ¨ Rxx [ N 1] ¸ ¨ b1 ¨ Rxx [1] Rxx [0] ¨ ¸ ¨ # # % # ¨ ¸ ¨ " Rxx [0] ¹ © bN © Rxx [ N ]
· ¸ ¸ ¸ ¸ ¹
§ Rxx [m] · ¨ ¸ ¨ Rxx [1 m] ¸ ¨ ¸ ¨ ¸ © Rxx [ N m] ¹
(11.1)
Der Levinson-Durbin-Algorithmus wird im Folgenden schrittweise entwickelt. Der Einfachheit halber werden die Kurzschreibweisen für die Werte der AKF ri
Rxx [i ]
(11.2)
und die MSE-optimalen Koeffizienten des Prädiktors p-ter Ordnung bi(p1) für i = 1, …, p
D i( p )
(11.3)
eingeführt. Die Verzögerung m wird eins gesetzt in (11.1). Im Falle des Prädiktors 2. Ordnung kann (11.1) jetzt in ein Matrix-Vektor-Produkt umgeformt werden. § r1 ¨ © r2
r0 r1
§ 1 · r1 · ¨ (2) ¸ ¸ ¨D ¸ r0 ¹ ¨ 1 ¸ (2) ©D2 ¹
0
(11.4)
Nun wird eine Erweiterung durchgeführt, wozu der Prädiktionsfehler des MSE-optimalen Prädiktors (N+1)-ter Ordnung (10.22) herangezogen wird.
MSEopt
§ Rxx [1] · ¨ ¸ Rxx [2] ¸ Rxx [0] b0 , b1 ,! , bN ¨ ¨ ¸ # ¨ ¸ © Rxx [ N 1] ¹
(11.5)
Für den Prädiktor 2. Ordnung resultiert mit den Kurzschreibweisen aus (11.2) und (11.3) r0 r1 D1(2) r2 D 2(2)
E (2)
(11.6)
Jetzt bietet es sich an, damit die Matrix der Normalengleichung um eine obere Zeile zur Korrelationsmatrix zu erweitern § r0 ¨ ¨ r1 ¨r © 2
r1 r0 r1
r2 · § 1 · ¸ ¸ ¨ r1 ¸ ¨ D1(2) ¸ r0 ¸¹ ¨ D (2) ¸ © 2 ¹
§ E (2) · ¨ ¸ ¨ 0 ¸ ¨ 0 ¸ © ¹
(11.7)
96
11 Levinson-Durbin-Algorithmus und linearer Prädiktor in Lattice-Struktur
sodass in Matrix-Vektorform kompakt resultiert R (2) Į (2)
e(2)
(11.8)
Für die rekursive Lösung wird das Gleichungssystem auf die Lösung für den Prädiktor 1. Ordnung zurückgeführt. Dazu wird wie oben definiert R (1) Į (1)
e(1)
(11.9)
mit R (1)
§ r0 ¨ © r1
§ 1 · (1) ¨¨ (1) ¸¸ , e D © 1 ¹
r1 · (1) ¸ , Į r0 ¹
§ E (1) · ¨¨ ¸¸ © 0 ¹
(11.10)
Die Symmetrie der Korrelationsmatrix ermöglicht eine äquivalente Darstellung von (11.9) mit auf den Kopf gestellten Vektoren Į (1)
§ D1(1) · (1) ¨¨ ¸¸ , e 1 © ¹
§ 0 · ¨¨ E (1) ¸¸ © ¹
(11.11)
Als Lösung des Prädiktors 2. Ordnung in der erweiterten Normalengleichung (11.7) ist ein dreidimensionaler Lösungsvektor gesucht. Als Lösungsansatz dient die Linearkombination zweier, aus der Lösung für den Prädiktor 1. Ordnung abgeleiteter Vektoren mit der noch zu bestimmenden Konstanten k2.
Į
(2)
§ 1 · § 0 · ¨ (1) ¸ ¨ (1) ¸ ¨ D1 ¸ k2 ¨ D1 ¸ ¨ 0 ¸ ¨ 1 ¸ © ¹ © ¹
(11.12)
Damit in die erweiterte Normalform (11.7) eingesetzt, liefert die Multiplikation mit der Korrelationsmatrix § r0 ¨ ¨ r1 ¨r © 2
r1 r0 r1
§ 0 ·º r2 · ª§ 1 · ¨ ¸» ¸ «¨ (1) ¸ r1 ¸ «¨ D1 ¸ k2 ¨ D1(1) ¸ » ¨ 1 ¸» r0 ¸¹ «¨© 0 ¸¹ © ¹¼ ¬
§ r D (1) r1 k2 ªD (1) r1 r2 º · 1 ¬ 1 ¼¸ ¨ 0 ¨ (1) (1) ª º¸ ¨ r1 r0D1 k2 ¬ r1 r0D1 ¼ ¸ ¨ (1) ¸ ¨ D r r k ª r D1(1) r1 º ¸ ¼¹ © 1 1 2 2 ¬0
(11.13)
Der übersichtlicheren Schreibweise halber, wird der Prädiktionsfehler 1. Ordnung für die MSE-optimale Lösung verwendet. E (1)
r0 D1(1) r1
(11.14)
q (1)
D1(1) r1 r2
(11.15)
Die Abkürzung
11.2 Levinson-Durbin-Algorithmus
97
führt (11.13) mit (11.7) über in § E (1) k2 q (1) · § E (2) · ¨ ¸!¨ ¸ (1) ¨ >1 k2 @ ª r1 r0D1 º ¸ ¨ 0 ¸ ¬ ¼ ¨ ¸ ¨ ¸ ¨ q (1) k E (1) ¸ © 0 ¹ © ¹ 2
(11.16)
Die mittlere Gleichung ist mit der MSE-optimalen Lösung für den Prädiktor 1. Ordnung erfüllt.
D1(1)
b0(1)
r1 r0
(11.17)
Es verbleiben zwei Gleichungen für die zwei Unbekannten k2 und E(2), sodass aus der dritten Zeile zunächst die Konstante k2 berechnet werden kann. k2
q (1)
(11.18)
E (1)
Damit in die erste Zeile liefert E (2)
E (1) k2 q (1)
E (1) 1 k22
(11.19)
Mit (11.12) sind nun die Prädiktionskoeffizienten 2. Ordnung in rekursiver Weise bestimmt.
Į
§ 1 · ¨ (2) ¸ ¨ D1 ¸ ¨ (2) ¸ ©D2 ¹
(2)
1 § · ¨ (1) ¸ ¨ D1 (1 k2 ) ¸ ¨ ¸ k2 © ¹
(11.20)
Nach dem gleichen Schema können die Prädiktionskoeffizienten höherer Ordnungen berechnet werden. Am Prädiktion 3. Ordnung soll dies gezeigt werden. Die Erweiterung der Normalengleichung und der Lösungsansatz führen wiederum auf eine symmetrische Korrelationsmatrix. § r0 ¨ ¨ r1 ¨ r2 ¨ © r3
r1 r0 r1 r2
r2 r1 r0 r1
§ 0 ·º r3 · ª§ 1 · ¨ (2) ¸ » ¸ «¨ (2) ¸ r2 ¸ «¨ D1 ¸ ¨ D ¸» «¨ k3 ¨ 2 ¸ » ¸ (2) (2) ¸ r1 D ¨ D1 ¸ » ¸ «¨ 2 ¸ ¨ ¸ r0 ¹ «©¨ 0 ¹¸ © 1 ¹ ¼» ¬
§ E (3) · ¨ ¸ ¨ 0 ¸ ¨ 0 ¸ ¨¨ ¸¸ © 0 ¹
(11.21)
Nach Ausmultiplizieren der linken Seite lässt sich wieder geeignet zusammenfassen. q (2)
r1D 2(2) r2D1(2) r3
E (2)
r0 r1D1(2) r2D 2(2)
(11.22)
Mit der ersten und letzten Zeile in (11.21) ergeben sich zwei Gleichungen für die beiden Unbekannten k3 und E(3).
98
11 Levinson-Durbin-Algorithmus und linearer Prädiktor in Lattice-Struktur E (2) k3 q (2)
E (3)
q (2) k3 E (2)
0
(11.23)
Es ergibt sich die Lösung, wie in (11.18) und (11.19), was den rekursiven Algorithmus andeutet. k3 E (3)
q (2) E (2)
E (2) k3 q (2)
(11.24)
E (2) 1 k32
Aus der für den Prädiktor 1. und 2. Ordnung vorgestellten Vorgehensweise und der zugrunde liegenden Symmetrie der Korrelationsmatrix folgt der allgemeine rekursive Zusammenhang für die Hilfsgrößen zur Berechnung der Prädiktionskoeffizienten p-ter Ordnung mit dem LevinsonDurbin-Algorithmus. q ( p 1)
p 1
rp ¦ D m( p 1) rp m m 1
E ( p 1)
p 1
r0 ¦ D m( p 1) rm
(11.25)
m 1
kp E ( p)
q ( p 1) E ( p 1)
E ( p 1) 1 k 2p
Die Prädiktionskoeffizienten zur Ordnung p + 1 sind dann mit
D 0( p )
1
D m( p )
D m( p 1) k p D (ppm1)
D (pp )
kp
für m 1: p 1 und p t 2
(11.26)
aus (11.3) bestimmt. Um den Zusammenhang der Koeffizienten Di und der Filterkoeffizienten bi zu verdeutlichen, wird in Bild 11-2 der Signalflussgraph des FIR-Prädiktionsfilters zu Bild 11-1 gezeigt. Betrachtet man den Prädiktionsfehler als Ausgangssignal des Systems, so kann der direkte Pfad (oben) in die FIR-Struktur als Durchgriff einbezogen werden. Das Subtrahieren des Schätzwertes wird als Multiplikation der Filterkoeffizienten mit –1 gedeutet. So entsteht die Übertragungsfunktion zum Prädiktionsfehler. p 1
H e ( z ) 1 z 1 ¦ bm z m m 0
p
¦ D m z m
m 0
mit D 0
1 und D m
bm 1 für m 1: p
(11.27)
11.3 Linearer Prädiktor in Lattice-Struktur
99 Prädiktionsfehler
x[n]
e[n] –1 b1
b0 D
b2
D
D
bp–2
bp–1
D
D
xˆ[n] Schätzwert
Bild 11-2 FIR-Prädiktor p-ter Ordnung in transversaler Struktur nach Bild 11-1 für m = 1
11.3
Linearer Prädiktor in Lattice-Struktur
Anhand der Übertragungsfunktion des Schätzfehlers (11.27) kann der Übergang auf den Prädiktor in der Lattice-Struktur vollzogen werden. Den Anknüpfungspunkt bildet der Vergleich mit der Übertragungsfunktion (8.9) des FIR-Systems in Lattice-Struktur für die p-te Stufe p
Ap ( z )
¦ am z m
mit a0( p )
1 und a (pp )
kp
(11.28)
m 0
Vergleicht man weiter die Rekursionsformel der Koeffizienten für das Lattice-Filter (8.11) a0(i )
1 ; am(i )
am(i 1) ki ai(i m1)
für m 1: (i 1) ; ai(i )
mit (11.26), so zeigt sich die Übereinstimmung für D m( p )
(11.29)
ki
am( p ) .
Im Beispiel des Prädiktors 3. Ordnung erhält man die Lattice-Struktur in Bild 11-3. Falls benötigt, kann der Schätzwert des Prädiktors gesondert herausgeführt werden. Anmerkung: Man beachte, in der Literatur werden die Koeffizienten der Lattice-Struktur k auch mit negativem Vorzeichen definiert.
Ein wichtiger Vorteil der Realisierung in der Lattice-Struktur liegt in ihrer Modularität. Die Ordnung des Prädiktors kann nach Bedarf mit dem Levinson-Durbin-Algorithmus schrittweise erhöht werden. Im wesentlichen wird nur ein Kreuzglied hinzugefügt; anders als in Bild 11-2, wo jeweils alle Filterkoeffizienten neu berechnet und eingestellt werden müssen. Schätzwert
xˆ[n] x[n] e[n]
D
k1
k2
k1
k2 D
Prädiktionsfehler k3 D
Bild 11-3 FIR-Prädiktor 3. Ordnung in Lattice-Struktur
100
11 Levinson-Durbin-Algorithmus und linearer Prädiktor in Lattice-Struktur
11.4
Vorbereitende Aufgaben
A11.1
Skizzieren Sie den Signalflussgraphen für den Prädiktor 1. Ordnung als FIR-Filter in der üblichen transversalen Struktur. Tragen Sie die Koeffizienten des Prädiktorfilters ein und bestimmen Sie die Impulsantwort zum Prädiktionsfehler he[n], siehe auch Bild 11-2.
A11.2
Skizzieren Sie das System in A11.1 in Lattice-Struktur. Bestimmen Sie den LatticeKoeffizienten k aus der Impulsantwort des Prädiktionsfehlers.
A11.3
Wiederholen Sie A11.1 für den Prädiktor 2. Ordnung.
A11.4
Wiederholen Sie A11.2 für den Prädiktor 2. Ordnung.
A11.5
Bestimmen Sie mit dem Levinson-Durbin-Algorithmus für den Prädiktor 2. Ordnung die Hilfsgrößen D0(2), D1(2), D2(2) und k2. Vergleichen Sie Ihr Ergebnis mit den Lösungen für den Prädiktor 2. Ordnung in A11.3 und 4.
11.5
Versuchsdurchführung
M11.1
Zunächst sollen die Ergebnisse aus A11.1 und A11.2 verifiziert werden. Für den Test verwenden Sie das Modellsystem 2. Ordnung mit der Übertragungsfunktion aus Versuch 10. H ( z)
0.242
z 2 2 z 1 1 z 2 0.71z 1 0.25
Implementieren und simulieren Sie die Prädiktion in Lattice-Struktur für den Prädiktor 1. und 2. Ordnung entsprechend der Vorbereitung. Vergleichen Sie die Ergebnisse mit denen aus Versuch 10. Hinweis: MATLAB-Befehl latcfilt. M11.2
Implementieren Sie den Levinson-Durbin-Algorithmus als MATLAB-Funktion.
M11.3
Testen Sie Ihr Programm am Beispiel eines Prädiktors höherer Ordnung. Bestimmen Sie dazu die Koeffizienten der Lattice-Struktur. Rechnen Sie die Koeffizienten in die des FIR-Filters in transversaler Struktur um und vergleichen Sie Ihr Ergebnis mit dem aus Abschnitt 10.3. Vergleichen Sie auch den Prädiktionsgewinn mit dem in Abschnitt 10.3.
M11.4
Ändern Sie das Modellsystem 2. Ordnung so, dass sich ein All-pole-System ergibt. Bestimmen Sie für das All-pole-System die Prädiktoren 2. und 3. Ordnungen. Was fällt Ihnen dabei auf? Probieren Sie auch einen Prädiktor höherer Ordnung als drei aus. Erklären Sie die Ergebnisse.
M11.5
Wenden Sie die lineare Prädiktion mit Lattice-Filter auf Audiosignale an. Bestimmen Sie den Prädiktionsgewinn für verschiedene Prädiktorordnungen. Hören Sie sich auch die Restsignale an. Ist die lineare Prädiktion geeignet, um die Redundanz in den Audiosignalen im Wesentlichen zu beseitigen? Hinweise: (i) Die Signale und Korrelationsfunktionen sollen der besseren Anschaulichkeit halber bezüglich der kontinuierlichen Zeitvariablen t bzw. Zeitverschiebung W aufgetragen werden. (ii) Siehe Audiosignale im WAVE-Format handel.wav und speech.wav und MATLAB-Befehle soundsc und wavread.
11.5 Versuchsdurchführung
101
M11.6
Erweitern Sie die letzte Versuchsaufgabe um die Rekonstruktion der Audiosignale aus den Restsignalen. Welcher Lattice-Filtertyp ist anzuwenden? Hören Sie sich die restaurierten Audiosignale an.
M11.7
MATLAB stellt in der Signal Processing Toolbox für die Prädiktion den Befehl lpc zur Verfügung. Mit dem Signal x und der gewünschten Ordnung des Prädiktors p liefert der Befehl die p Koeffizienten des Prädiktorfilters als Zeilenvektor ergänzt durch eine führende 1, siehe Bild 11-2. [bp,E] = lpc(x,p) Dabei muss die Länge des Signals x mindestens gleich p sein. Die Variable E liefert den Schätzwert des MSE des Prädiktionsfehlers. Damit das Prädiktionsfilter wie in M11.6 in Lattice-Struktur durchgeführt werden kann, sind noch die Reflexionskoeffizienten k zu bestimmen. k = tf2latc(bp) Erweitern Sie Ihr Programm aus M11.6 um die MATLAB-Befehle und vergleichen Sie die Resultate.
Hinweise zu MATLAB Siehe auch frühere Versuche. Signal Processing Toolbox
impz, latcfilt, levinson, lpc, tf2latc, xcorr
MATLAB functions
filter, rand, randn, sound, soundsc, wavread, wavwrite
Þ Online-Ressourcen zum Versuch lab11_1.m, lab11_2.m, lab11_3.m, lab11_4.m, lab11_5.m, lev_dur.m, graph10_e.m, graph10_h.m, graph10_w.m, graph11_u.m, speech.wav, handel.wav und Programme mit Ergebnissen im HTML-Format
102
12
Entwurf von nichtrekursiven Entzerrern mit der Fehlerquadratmethode
12.1
Einführung
In den Ingenieurwissenschaften sind Approximationsaufgaben weit verbreitet, bei denen quadratische Approximationsfehler minimiert werden. Ein wichtiges Beispiel ist die Ausgleichsrechnung mit der Methode der kleinsten Fehlerquadratsumme. Ihre Lösungen führen auf lineare Gleichungssysteme, den Normalengleichungen [BSMM99]. Dementsprechend knüpft dieser Versuch an die lineare Prädiktion in den Versuchen 10 und 11 an. An die Stelle der Autokorrelationsfunktion stationärer Prozesse, treten nun aus den jeweiligen Musterfunktionen berechnete Größen. Lernziele Nach dem Bearbeiten des Versuchs können Sie x die Fehlerquadratmethode erläutern x die Fehlerquadratmethode zum Entwurf von FIR-Entzerrern in MATLAB einsetzen x die Wirksamkeit des FIR-Entzerrers einschätzen x die Funktion des FIR-Entzerrers an einem übertragungstechnischen Beispiel vorstellen
12.2
FIR-Systeme zur Kanalentzerrung
In der Nachrichtenübertragungstechnik treten häufig unerwünschte Veränderungen des Nachrichtensignals durch den Übertragungskanal auf. Man spricht von linearen und nichtlinearen Verzerrung. Erstere lassen sich als Ergebnis einer linearen Filterung interpretieren und werden durch die Übertragungsfunktion des Kanals modelliert. Ist die Übertragungsfunktion des Kanals, HK(z) = B(z) / A(z), stabil und minimalphasig, d. h. liegen alle Pole und Nullstellen im Inneren des Einheitskreises der komplexen z-Ebene, so ist die Übertragungsfunktion invertierbar. Die Pole und Nullstellen des Kanals werden dann zu Nullstellen bzw. Polen des inversen Systems HK(z)–1 = A(z) / B(z). Damit ist eine perfekte Entzerrung möglich. In vielen Anwendungen ist dies jedoch nicht sichergestellt, sodass, wie im Versuch, nur eine näherungsweise Entzerrung durch ein FIR-System versucht werden kann. Die Aufgabe der Kanalentzerrung durch ein FIR-System ist eng mit dem MMSE-Entwurf des linearen, nichtrekursiven Prädiktors in Versuch 10 verbunden. Bild 12-1 veranschaulicht die Aufgabenstellung und legt die verwendeten Bezeichnungen fest. Das Testsignal x[n], die Verzögerung m, und das Signal am Kanalausgang u[n] seien soweit bekannt, dass für einen Block der Länge K der Fehler e[n] berechnet werden kann. In Anlehnung an den Scharmittelwert, den mittleren quadratischen Fehler, wird der totale quadratische Fehler TSE (Total-Squared Error), die Energie des Fehlers, im Block berechnet.
12.2 FIR-Systeme zur Kanalentzerrung m-fache Verzögerung
Testsignal
m
x[n]
D
103 Referenzsignal
u[n]
Kanal LTI-System
Fehler
d[n] = x[n-m]
e[n] = d[n] – v[n] Schätzwert xˆ[n m]
v[n]
b[n]
FIR-Entzerrer
Bild 12-1 Entzerrung mit einem FIR-System
TSE
K 1
K 1
k 0
k 0
¦ e2 [k ] ¦ d [n] v[n]
2
K 1
K 1
K 1
k 0
k 0
k 0
¦ d 2 [k ] ¦ v 2 [k ] 2 ¦ d[k ] v[k ]
(12.1)
Die Wirkung des FIR-Entzerrers wird deutlich, wenn die Faltung von u[n] mit der Impulsantwort des FIR-Entzerrers, b[n] = {b0, b1, …, bN}, berücksichtigt wird. TSE
2
K 1
K 1 § N K 1 · § N · ¦ d 2 [k ] ¦ ¨ ¦ bnu[k n] ¸ 2 ¦ d [k ] ¨ ¦ bnu[k n] ¸ k 0 k 0©n 0 k 0 ¹ ©n 0 ¹
(12.2)
Man spricht, wie beim Prädiktor, von einem Entzerrer p-ter Ordnung. Die Ordnung des zugrunde gelegten FIR-Systems ist N = p – 1. Vertauschen der Reihenfolge der Summationen in (12.2) liefert im Wesentlichen die bekannten Schätzfunktionen für die Autokorrelation und die Kreuzkorrelation von Signalen. TSE
K 1
¦ d 2 [k ]
k 0
N
¦
N
K 1
N
K 1
k 0
n 0
k 0
¦ bmbn ¦ u[k m] u[k n] 2 ¦ bn ¦ d [k ] u[k n]
m 0n 0
(12.3)
Zum Verständnis der numerische Berechnung ist es vorteilhaft, die für den TSE benötigten Manipulationen der Signale als Funktionen zu definieren. K 1
¦ u[k m] u[k n]
ruu [m, n]
für 0 d (m, n) d N
k 0
rdu [n]
(12.4)
K 1
¦ d [k ] u[k n]
für 0 d n d N
k 0
Man beachte für die später Programmierung, die unterschiedlichen Bereiche der Laufindizes für das Referenzsignal, das verzögerte Testsignal d[n] von 0, …, K–1, und das Ausgangssignal des Kanals u[n] von –N, …, K–1. Die beiden Funktionen in den TSE eingesetzt, liefert die übersichtlichere Schreibweise N
TSE
rdd [0]
¦
N
N
¦ bmbn ruu [m, n] 2 ¦ bn rdu [n]
m 0n 0
n 0
(12.5)
104
12 Entwurf von nichtrekursiven Entzerrern mit der Fehlerquadratmethode
Wie der MSE in Versuch 10 kann der TSE in eine Matrix-Vektor-Form umgeschrieben werden. Dazu definieren wir die Matrix der Zeit-AKF § ruu [0, 0] ruu [0,1] " ruu [0, N ] · ¨ ¸ ruu [1, N ] ¸ ¨ ruu [1, 0] ruu [1,1] ¨ ¸ # % # ¨ ¸ " ruu [ N , N ] ¹ © ruu [ N , 0]
ruu
(12.6)
und die Vektoren der Zeit-KKF und der Koeffizienten des FIR-Entzerres
rdu
§ rdu [0] · ¨ ¸ ¨ rdu [1] ¸ ¨ # ¸ ¨ ¸ © rdu [ N ] ¹
bzw.
b
§ b0 ¨ ¨ b1 ¨ # ¨ © bN
· ¸ ¸ ¸ ¸ ¹
(12.7)
Anmerkung: Die Matrix ruu ist wegen ruu(m,n) = ruu(n,m) symmetrisch. Sie besitzt aber im Allgemeinen keine Toeplitz-Form (Bandstruktur).
Es folgt der TSE in der Matrix-Vektor-Form. TSE
rdd [0] bT ruu b 2 bT rdu
(12.8)
Der TSE entspricht in seiner Form dem MSE, sodass die gleiche Lösungsmethode wie für die lineare Prädiktion in Versuch 10 angewandt werden kann. Bei vorgegebener Ordnung und Blocklänge ergeben sich die, im Sinne des minimalen TSE (MTSE)-optimalen Koeffizienten des FIR-Entzerrers aus b opt
1 ruu rdu
(12.9)
mit dem TSE
TSEopt
rdd [0] bTopt rdu
(12.10)
12.3
Vorbereitende Aufgaben
A12.1
Die Entwurfsaufgabe vereinfacht sich, wenn als Testsignal die Impulsfunktion, x[n] = G[n], verwendet wird. Spezialisieren Sie den Entwurf des FIR-Entzerrers für diesen Fall. Das zu entzerrende System darf dabei als stabil und kausal vorausgesetzt werden.
A12.2
Wie groß sollte die Blocklänge K bei einem Entwurf nach A12.1 gewählt werden?
12.4
Versuchsdurchführung
M12.1
Erstellen Sie zu Aufgabe A12.1 ein MATLAB-Programm zum Entwurf des FIREntzerrers. Entwerfen Sie mit Ihrem Programm einen FIR-Entzerrer 3. Ordnung für das System H1 ( z )
0.5775
1 0.81z 2 1 0.71z 1 0.25 z 2
12.4 Versuchsdurchführung
105
Stellen Sie das Testsignal x[n], die Impulsantwort des Systems H1(z), die Impulsantwort b[n] und das Ausgangssignal v[n] des FIR-Entzerrers grafisch dar. Hinweis: Wählen Sie die Verzögerung und die Blocklänge geeignet. M12.2
Wiederholen Sie obigen Versuch für verschiedene Ordnungen p. Stellen Sie die Impulsantwort des Systems u[n], die Impulsantwort b[n] und das Ausgangssignal v[n] des FIR-Entzerrers jeweils grafisch dar. Stellen Sie zu den Signalen auch die Betragsspektren grafisch dar. Bestimmen Sie die maximale Abweichung des Betragsfrequenzganges des entzerrten Systems vom Wunschverlauf. Stellen Sie die Werte in einer Tabelle zusammen und diskutieren Sie die Ergebnisse.
M12.3
Wiederholen Sie obigen Versuch für eine geeignete Ordnung p für das unten stehende System. H 2 ( z)
0.24192
z 2 2 z 1 1 z 2 0.71z 1 0.25
Wodurch unterscheiden sich das System von dem in M12.1? Wie wirkt sich das für die Aufgabe der Entzerrung aus? M12.4
Zeigen Sie durch ein Simulationsbeispiel, dass die Kanalentzerrung auch bei einem weißen Rauschen als Testsignal möglich ist. Modifizieren Sie Ihr Programm zu M12.1 bzw. M12.2 entsprechend. Hinweis: Wählen Sie eine geeignete Länge des Testsignals und zeigen Sie, dass näherungsweise die Koeffizienten wie vorher geschätzt werden.
M12.5
Veranschaulichen Sie die Wirkung des FIR-Entzerrers an einem Signalbeispiel. Gehen Sie dazu vom OOK-Signal (On-off keying) in Bild 12-2 aus und verwenden Sie das System H1(z) als Übertragungskanal. Im Empfänger setzen Sie einen FIR-Entzerrer ein. Wählen Sie die Ordnung des Entzerrers geeignet. Stellen Sie das Nachrichtensignal x[n], das Signal am Kanalausgang u[n] und das entzerrte Signal v[n] grafisch dar.
OOK-Signal x[n] x[n] n
Kanal LTI-System
u[n]
b[n]
v[n]
rekonstruiertes Signal
FIR-Entzerrer
Bild 12-2 Entzerrung eines NRZ-Signals mit einem FIR-System
Hinweise zu MATLAB Signal Processing Toolbox
impz, latcfilt, levinson, lpc, xcorr
MATLAB functions
filter, rand, randn, sound, soundsc, wavread, wavwrite
Þ Online-Ressourcen zum Versuch lab12_1.m, lab12_2.m, lab12_3.m, lab12_rxx.m, lab12_rxy.m, design_fir_equalizer.m und Programme mit Ergebnissen im HTML-Format
106
13
Systemidentifikation mit der Fehlerquadratmethode
13.1
Einführung
Im Versuch 12 wurde die Fehlerquadratmethode vorgestellt und zum Entwurf von FIR-Entzerrern eingesetzt. Ziel dabei war es, den Entzerrer als FIR-System so zu dimensionieren, dass die Übertragungsfunktion der Kaskade aus einem verzerrenden LTI-System und dem Entzerrer möglichst konstant ist. Damit ist auch ein Algorithmus gefunden, unbekannte LTI-Systeme über den Umweg des inversen Systems zu identifizieren. Der Entwurf des Entzerrers benötigte keine besonderen Kenntnisse über das verzerrende LTISystem. Allein die Kenntnis des Eingangssignals und des Ausgangssignals reichten aus, um den FIR-Entzerrer mit der Fehlerquadratmethode zu bestimmen. In diesem Versuch wird gezeigt, wie die Fehlerquadratmethode direkt zur Systemidentifikation eingesetzt werden kann. Man spricht dabei von einer parametrischen Modellierung, da die Systeme durch Parameter, die Pole- und Nullstellen der geschätzten Modellsysteme, charakterisiert werden. Lernziele Nach dem Bearbeiten des Versuchs können Sie x die Fehlerquadratmethode zur Identifikation von FIR-Systemen in MATLAB einsetzen x die Fehlerquadratmethode zum Entwurf von Systemen nach einem Wunschfrequenzgang anwenden x die Fehlerquadratmethode in einem iterativen Verfahren zur Identifikation von IIR-Systeme in MATLAB einsetzen x die in der Signal Processing Toolbox vorhandenen Befehle lpc (lineare Prädiktion), prony (Prony-Verfahren) und stmcb (Steiglitz-McBride-Verfahren) zur Systemidentifikation anwenden x die den Verfahren zugrunde liegenden Ansätze erläutern x die Leistungsfähigkeit der Verfahren durch Simulationsbeispiele aufzeigen und die Eignung der Verfahren für praktische Anwendungen beurteilen
13.2
FIR-Systeme zur Systemidentifikation
13.2.1
Grundlagen
Bei industriellen Anlagen ist oft der Zugriff zu Messzwecken eingeschränkt. In diesen Fällen werden nach alternativen Möglichkeiten gesucht, die zu regelnden Anlagen als LTI-Systeme zu charakterisieren. Bei der im Versuch vorgestellten Systemidentifikation geht es darum, unbekannte LTI-Systeme durch ein FIR-Modellsystem nachzubilden. Die Aufgabe veranschaulicht Bild 13-1. Bei bekanntem Eingangssignal, dem Testsignal x[n], werden die Ausgangssignale des Systems im Test y[n] und des FIR-Modells v[n] verglichen. Ist die Differenz der Signale, das Fehlersignal e[n], klein, stimmen beide Systeme in ihren Übertragungsverhalten näherungsweise überein
13.2 FIR-Systeme zur Systemidentifikation
107
Testsignal
unbekanntes LTI-System
x[n]
???
b[n]
Fehler
y[n]
e[n] = y[n] – v[n] v[n]
FIR-Modell Bild 13-1 Systemidentifikation mit einem FIR-Modell
Als Maß für die Ähnlichkeit wird der totale quadratische Fehler (TSE) über einen Signalblock der Länge K herangezogen. Ganz entsprechend der Vorgehensweise in Versuch 12 resultiert nach Einsetzen der Größen aus Bild 13-1 für ein FIR-Modell N-ter Ordnung der TSE
TSE
K 1
N
N
K 1
N
K 1
k 0
n 0
k 0
¦ y 2 [k ] ¦ ¦ bmbn ¦ x[k m] x[k n] 2 ¦ bn ¦ y[k ] x[k n]
k 0
m 0n 0
(13.1)
Zum Verständnis der numerischen Berechnung ist es vorteilhaft, die benötigten Signalmanipulationen wie in Versuch 12 als Funktionen zu definieren. Die beiden Funktionen in den TSE eingesetzt liefert N
TSE
ryy [0]
N
N
¦ ¦ bmbn rxx [m, n] 2 ¦ bn ryx [n]
m 0n 0
(13.2)
n 0
Wie in Versuch 12 kann auf die Matrix-Vektor-Schreibweise übergegangen werden. TSE
ryy [0] bT rxx b 2 bT ryx
(13.3)
Bei vorgegebener Ordnung und Blocklänge ergeben sich somit die, im Sinne des minimalen TSE (MTSE)-optimalen Koeffizienten des FIR-Modells aus b opt
1 rxx ryx
(13.4)
mit dem TSE TSE opt
ryy [0] bTopt ryx
(13.5)
Mit dem Koeffizientenvektor bopt ist ein FIR-Modell für das unbekannte System gefunden. Dessen Brauchbarkeit hängt von der jeweiligen Anwendung ab. Die nachfolgende Überlegung motiviert nochmals den Einsatz des Verfahrens. Es zeigt den zugrunde liegenden theoretischen Zusammenhang auf. Wählt man als Testfunktion die Musterfunktion eines weißen Rauschprozesses, so ergibt sich bei hinreichender Blocklänge K die Matrix rxx als gute Schätzung für die Korrelationsmatrix weißen Rauschens, also der mit der Varianz des Testprozesses gewichten Einheitsmatrix I mit der Dimension N. Da die inverse Einheitsmatrix wieder die Einheitsmatrix ergibt, ist der Vek-
108
13 Systemidentifikation mit der Fehlerquadratmethode
tor der optimalen Koeffizienten bopt nach (13.4) näherungsweise gleich dem Zeit-Kreuzkorrelationsvektor ryx zwischen der Ausgangs- und der Eingangsfolge. Der Zeit-Kreuzkorrelationsvektor ryx selbst wiederum liefert einen Schätzwert für die KKF der Prozesse am Systemeingang und Systemausgang. Für einen weißen Prozess am Systemeingang resultiert die Impulsantwort des Systems. Im vorgestellten Verfahren erhält man einen Vektor mit den Schätzwerte für die ersten N + 1 Werte der Impulsantwort. Anmerkung: Mit dem vorgestellten Verfahren kann prinzipiell bei laufendem Betrieb gemessen werden, wenn die Leistung des unkorrelierten Testsignals so klein gewählt wird, dass es den ordnungsgemäßen Betrieb der Anlage nicht gefährdet.
13.2.2
Vorbereitende Aufgaben
A13.1
In der Versuchsdurchführung soll ein System untersucht werden, dessen Impulsantwort durch den MATLAB-Befehl h[n] = .25*sinc(.25*[-11:11]);
erzeugt wird. Charakterisieren Sie das System. A13.2
Die Ausgangssignale der unbekannten Systeme sind in den praktischen Anwendungen oft mit (weißem) Rauschen überlagert. Durch einspeisen eines Rauschsignals am Ausgang des unbekannten Systems kann der Effekt in die Simulation einbezogen werden, siehe Bild 13-2. Überlegen Sie welchen Einfluss die Rauschstörung auf die Systemidentifikation hat? Wie kann der Einfluss der Rauschstörung reduziert werden?
Testsignal
unbekanntes LTI-System
x[n]
???
b[n]
Rauschen y[n]
r[n]
„Fehler“ e[n]
v[n]
FIR-Modell Bild 13-2 Systemidentifikation mit Rauschstörung
A13.3
Das Verfahren zur Systemidentifikation nach Bild 13-1 kann auch zum Entwurf von FIR-Systemen benutzt werden. In der Versuchsdurchführung soll der Wunschfrequenzgang mit abschnittsweise linearem Verlauf in Bild 13-3 approximiert werden. Überlegen Sie, wie der Algorithmus zur Systemidentifikation in MATLAB zum Filterentwurf genutzt werden könnte. Hw(e j:) 1.0
0
0
0.3
0.4
0.6
0.7
Bild 13-3 Wunschfrequenzgang
:/S
1
13.2 FIR-Systeme zur Systemidentifikation
109
13.2.3
Versuchsdurchführung
M13.1
Erproben Sie das Verfahren zur Systemidentifikation nach Bild 13-1 anhand des FIR-Systems in A13.1. Hinweis: Erstellen Sie ein MATLAB-Programm zum Entwurf des FIR-Modells auf der Grundlage des FIR-Entzerrers aus Versuch 12. Beim Vergleich mit dem Algorithmus des FIR-Entzerrers beachten Sie den Unterschied bezüglich der Zeit-KKF. In Versuch 12 wird die Zeit-KKF rdu mit verschobenem Signal am Systemausgang u nach (12.2) verwendet; hier dagegen ryx mit verschobenem Testsignal am Systemeingang x nach (13.1). Vergleichen Sie die Impulsantworten und Betragsfrequenzgänge des unbekannten Systems und des FIR-Modells. Probieren Sie auch unterschiedliche Blocklängen und Ordnungen des FIR-Modells aus. Diskutieren Sie die Ergebnisse. Wie sind die Ordnung des FIR-Modells und die Blocklänge zu wählen?
M13.2
Wiederholen Sie die Untersuchungen mit einer AWGN-Störung (Additive White Gaussian Noise). Setzen Sie die Leistung der Störung auf –20 dB. Welche Ordnung und Blocklänge ist nun zu wählen? Hinweis: MATLAB-Befehl randn.
M13.3
Nun soll das Verfahren zur Systemidentifikation zum Entwurf eines FIR-Systems mit dem Wunschfrequenzgang in A13.3 benutzt werden. Erzeugen Sie dazu mit MATLAB das Testsignal als Überlagerung von Kosinusschwingungen gemäß K
x[n]
¦ cos :0 kn
für n
0 : 2K
k 0
mit der normierten Grundkreisfrequenz :0 = 2S / (2K+1). Bestimmen Sie das zugehörige Ausgangssignal entsprechend dem Wunschfrequenzgang in A13.3. Verzögern Sie dabei das Ausgangssignal um die halbe Anzahl der Koeffizienten des zu entwerfenden FIR-Systems N-ten Grades. Wählen Sie die Parameter K und N geeignet. Variieren Sie die Parameter und beobachten Sie die Veränderungen im Frequenzgang und der Impulsantwort des entworfenen FIR-Systems. Anmerkungen: (i) Die Zeitverschiebung um N/2 entspricht der Gruppenlaufzeit des linearphasigen FIR-Systems N-ter Ordnung. (ii) Eine mathematische Beschreibung des Verfahrens findet man z. B. in [WiSt85]. (iii) Das Verfahren ähnelt dem Frequenzabtastverfahren (FourierApproximation), bei dem aus äquidistanten Stützwerte des Wunschfrequenzganges durch inverse FFT in die Impulsantwort eines FIR-Systems bestimmt wird. (iv) Für den Entwurf von linearphasigen FIR-Filtern nach Vorschriften im Frequenzbereich stellt die MATLAB Signal Processing Toolbox das Programm Filter Design and Analysis Tool (fdatool) zur Verfügung. Dort findet man mit dem Equiripple-Entwurf ein leistungsfähiges Verfahren (Parks-McClellan-Algorithmus), das den maximalen Betragsfehler (Chebyshev Approximation) im Frequenzbereich minimiert [Wer06].
M13.4
Wiederholen Sie die Systemidentifikation wie in M13.1 für das IIR-System H1 ( z )
0.5775
1 0.81z 2 1 0.71z 1 0.25 z 2
Siehe auch Versuch 12. Diskutieren Sie die Ergebnisse.
110
13 Systemidentifikation mit der Fehlerquadratmethode
13.3
IIR-Systemidentifikation
13.3.1
Grundlagen
Im vorangehenden wurde mit der Fehlerquadratmethode zu einem unbekannten System ein FIR-Modell N-ter Ordnung mit ähnlichem Übertragungsverhalten bestimmt. Da die Übertragungsfunktionen von FIR-Modellen nur Nullstellen besitzen, sind IIR-Systeme mit ihren Polen nur näherungsweise darstellbar. In vielen Anwendungen, wie z. B. in der Regelungstechnik, spielen die Pole jedoch eine herausgehoben Rolle. Eine Erweiterung der Fehlerquadratmethode auf die Identifikation von IIR-Systemen ist deshalb wünschenswert. Bild 13-4 stellt hierfür einen robusten Algorithmus vor [Goo83], [WiSt85]. Er besteht im Wesentlichen aus zwei Ansätzen: x der Modellierung des nichtrekursiven Anteils (Nullstellen) durch das FIR-System B mit der Impulsantwort bM[n], wie im vorhergehenden Abschnitt; x und der Modellierung des rekursiven Anteils (Pole) durch das FIR-System A mit der Impulsantwort aM[n]. System A wird, wie der Prädiktor in Versuch 10, dem IIR-System nachgeschaltet. Dabei wird die dekorrelierende Wirkung des Prädiktors auf den Prädiktionsfehler zur Modellierung des i„nversen Systems“genutzt, siehe Orthogonalität in Abschnitt 10.3.1.
Testsignal
unbekanntes LTI-System
x[n]
???
y[n]
Fehler
u[n] aM[n]
e[n] = y[n] – u[n] – v[n]
FIR-System A ) rekursiver Anteil v[n] bM[n] FIR-System B ) nichtrekursiver Anteil Bild 13-4 IIR-Systemidentifikation mit der Fehlerquadratmethode
Weitere Motivation für den Algorithmus liefert eine Betrachtung der z-Transformierten für die Signale und die Übertragungsfunktionen der beteiligten Systeme in Bild 13-4. Mit der Übertragungsfunktion des unbekannten LTI-Systems H(z) ergibt sich nach Bild 13-4 die Übertragungsfunktion des Fehlers. E( z) X ( z)
H ( z ) >1 AM ( z ) @ BM ( z )
§
>1 AM ( z )@ ¨ H ( z ) ©
BM ( z ) · ¸ 1 AM ( z ) ¹
(13.6)
13.3 IIR-Systemidentifikation
111
Die Übertragungsfunktion setzt sich aus zwei Faktoren zusammen, wobei es hier auf den zweiten ankommt, dem mit der Übertragungsfunktion des unbekannten Systems H(z) und der Übertragungsfunktion des Modellsystems BM ( z ) 1 AM ( z )
H M ( z)
(13.7)
Geht der Fehler gegen null, so geht die Übertragungsfunktion des Modellsystems HM(z) gegen die des unbekannten Systems.
H M ( z)
BM ( z ) 1 AM ( z )
E ( z )o0
o
H ( z)
B( z ) A( z )
(13.8)
Anmerkung: Der Sonderfall AM(z) = 1 kann erkannt und ausgeschlossen werden.
Bei der praktischen Durchführung werden der rekursive und der nichtrekursive Anteil getrennt behandelt. Für die Schätzung des nichtrekursiven Anteils mit der Fehlerquadratmethode werden das unbekannte System und das nachgeschaltet System A zusammengefasst. Im Grenzfall, dass der Fehler gegen null geht, wird mit dem System B nur der Zähler des unbekannten Systems B(z) geschätzt. H ( z )
H ( z ) >1 AM ( z )@
E ( z ) o0 B( z ) >1 AM ( z ) @ o H ( z ) A( z )
B( z )
(13.9)
Die Koeffizienten der FIR-Systeme, bM[n] und aM[n], werden mit der Fehlerquadratmethode bestimmt, wobei nach Bild 13-4 der erweiterte TSE TSE
K 1
K 1
k 0
k 0
¦ e2 [k ] ¦ y[k ] u[k ] v[k ]
2
(13.10)
zugrunde gelegt wird. Es kann getrennt für die beiden FIR-Systeme und schrittweise vorgegangen werden, wobei die Koeffizienten des jeweils anderen FIR-Systems als konstant angesehen werden. Zunächst wird das Testsignal x[n], z. B. K Werte einer Musterfolge weißen Rauschens, in das unbekannte System eingespeist und das Ausgangssignal y[n] erzeugt. Im ersten Schritt wird der nichtrekursive Anteil geschätzt, indem wie in Abschnitt 13.2 die Koeffizienten bM,i des Systems B mit der Fehlerquadratmethode bestimmt werden. Dazu ist die Ordnung N des FIR-Systems geeignet vorzugeben. Die Koeffizienten des FIR-Systems für den rekursiven Anteil, aM[n], können dabei auf passend erscheinende Anfangswerte oder zu null gesetzt werden. Im zweiten Schritt wird der rekursive Anteil geschätzt. Dazu werden die Koeffizienten aM,i des Systems A mit der Fehlerquadratmethode berechnet. In der Regel wird ebenfalls die Ordnung N angesetzt. Anders als in Versuch 10 werden dabei aus y[n] berechnete Schätzwerte der AKF verwendet. Man beachte, dass die Berechnung der aM,i anhand der erweiterten Fehlergleichung erfolgt, also die Signalwerte für v[n] gemäß dem ersten Schritt verwendet werden. Die Schätzung von System A wird dadurch auf den rekursiven Anteil ausgerichtet. Der Algorithmus kann nach Bedarf iterativ fortgesetzt werden. Mit den gefunden Schätzwerten für den Prädiktor aM,i wird der erste Schritt wiederholt. Danach der zweite, usw.
112
13 Systemidentifikation mit der Fehlerquadratmethode
Die Wirkung des iterativen Verfahrens veranschaulicht das Pol-Nullstellen-Diagramm in Bild 13-5. Darin zu sehen sind die Pole und Nullstellen des Systems im Test und der Modelle für die ersten vier Iterationsstufen des Algorithmus. Die Ordnung der Modelle ist mit 8 vorgegeben. Das zu untersuchende System hat die Ordnung 4. Im Bild wird durch die Bezifferung die iterative Approximation am Beispiel einer Nullstelle und eines Poles hervorgehoben. Da die vorab festgelegte Ordnung des Modells 8 die tatsächliche von 4 übersteigt, entstehen im Modell 4 zusätzliche Pole und Nullstellen mit der Tendenz sich gegenseitig zu kompensieren; im Bild am paarweisen Gruppieren und Zusammenrücken zu erkennen. In einer Erweiterung des Algorithmus kann die Erkennung und Beseitigung überzähliger Pole und Nullstellen vorgesehen werden. 1
1
0.8
1
0.6
4 2 3
1
Imaginary Part
0.4
2
1
3
4
0.2 0 -0.2 -0.4 -0.6
1
1
-0.8
1
1
-1 -1
-0.5
0 Real Part
0.5
1
Bild 13-5 IIR-Systemidentifikation mit der iterativen Fehlerquadratmethode – Pole und Nullstellen des Systems im Test (fett) und des Modells 8-ter Ordnung für die Iterationsstufen 1, 2 (1. Iteration), 3 und 4
13.3.2
Vorbereitende Aufgaben
A13.4
Zeigen Sie, dass für die Berechnung der Modellkoeffizienten aM,i die Fehlerquadratmethode eingesetzt werden kann.
A13.5
Überlegen Sie, wie Sie aus den gefundenen Koeffizienten der FIR-Systeme bM,i und aM,i die Nullstellen und Pole des unbekannten Systems bestimmen können.
13.4 Sytemidentifikation mit den MATLAB-Funktionen lpc, prony und stmcb
113
13.3.3
Versuchsdurchführung
M13.5
Es soll das Verfahren zur Identifikation von IIR Systemen nach Bild 13-4 erprobt werden. Setzen Sie dazu die erste Stufe des Verfahrens in ein MATLAB-Programm um. Als System im Test verwenden Sie H1(z) aus M13.4. Wählen Sie die Blocklänge K und die Ordnungen N der FIR-Systeme geeignet. Führen Sie die ersten beiden Schritte durch und schätzen Sie die Übertragungsfunktion des unbekannten Systems. Geben Sie das Pol-Nullstellen-Diagramm in der komplexen z-Ebene an. Vergleichen Sie Ihr Ergebnis mit der tatsächlichen Verteilung der Pole und Nullstellen von H1(z). Bestimmen Sie auch den zugehörigen TSE. Hinweis: Verwenden Sie das Programm Filter Viewer fvtool aus der Signal Processing Toolbox zur grafischen Darstellung der Systemgrößen.
M13.6
Erweitern Sie Ihr Programm so, dass weitere Iterationsstufen (jeweils Schritt 1 und 2) durchgeführt werden. Beobachten Sie für mehrere Iterationsstufen das Pol-Nullstellen-Diagramm und den TSE. Diskutieren Sie die Ergebnisse. Welchen Einfluss hat die Ordnung der FIR-Systeme auf das Modellergebnis? Soll die Ordnung zunächst eher hoch angesetzt werden?
M13.7
Wiederholen Sie obigen Versuch mit H3 ( z)
0.2317 0.3378 z 1 0.5297 z 2 0.3378 z 3 0.2317 z 4 1 0.3396 z 1 1.2275 z 2 0.3119 z 3 0.2964 z 4
als unbekanntes System. Um welche Art von System handelt es sich?
13.4
Sytemidentifikation mit den MATLAB-Funktionen lpc, prony und stmcb
13.4.1
Grundlagen
Die Signal Processing Toolbox bietet mehrere Funktionen zur parametrischen Modellierung an. Darunter sind die Funktionen lpc, prony und stmcb, die ebenfalls auf der Minimierung eines mittleren quadratischen Fehlers beruhen. Den Ausgangspunkt der Modellierung bildet die lineare Differenzengleichung (DGL) mit der Zerlegung in die nichtrekursiven und die rekursiven Anteile, wie sie auch für die Modellprozesses in Versuch 10 diskutiert wurde. M
y[n]
N
¦ bm x[n m] ¦ ak y[n k ]
m 0
nichtrekursiver Teil o Nullstellen
k 1
rekursiver Teil o Pole
(13.11)
114
13 Systemidentifikation mit der Fehlerquadratmethode
Der nichtrekursive Anteil bildet in der Übertragungsfunktion M
¦ bm z m
m 0 N
H ( z)
(13.12)
1 ¦ ak z k k 1
das Zählerpolynom und bestimmt somit die Nullstellen des Systems. Der rekursive Anteil, das charakteristisches Polynom der DGL, legt das Nennerpolynom der Übertragungsfunktion fest und damit die Pole. Polstellen-Modell (AR model) – Lineare Prädiktion Bei der Systemidentifikation durch Prädiktion nach Bild 11-2, mit m = 1, wird der Fehler p
y[n] ¦ bk y[n k ]
e[n]
(13.13)
k 1
im quadratischen Mittel minimiert. Ist der mittlere quadratische Fehler hinreichend klein, gilt p
y[n] | ¦ bk y[n k ]
(13.14)
k 1
Letzteres kann als DGL eines Polstellen-Modells aufgefasst werden, wobei die Prädiktionskoeffizienten bk den Koeffizienten der DGL (13.11) entsprechen ak
bk
für k
1: p und a0
1
(13.15)
Das Programm lpc in der Signal Processing Toolbox leistet dies, siehe Versuch 11, M11.7. Mit [a,g] = lpc(y,p) wird für ein Signal y ein FIR-Prädiktionsfilter mit den Prädiktionskoeffizienten a bezüglich des mittleren quadratischen Fehlers entworfen. Die Varianz des Prädiktionsfehlers zeigt g an. Anmerkung: Es werden aus dem Signal y gewonnene Schätzwerte für die Korrelationsmatrix und den Korrelationsvektor verwendet. Das entstehende System der Normalengleichungen wird auch uYleWalker-Gleichung genannt. Sie wird wie in Versuch 11 mit dem Levinson-Durbin-Algorithmus gelöst, siehe MATLAB help lpc.
Pol-Nullstellen-Model (ARMA model) – Prony-Verfahren Die lineare Prädiktion sieht zur Modellierung keine Nullstellen vor. Sind tatsächlich Nullstellen vorhanden, so nehmen sie Einfluss auf die Pole des Modells – verfälschen in gewisser Weise das Ergebnis. Abhilfe schafft hier das Prony-Verfahren [LiOp88], [PaBu87], [PrMa96]. Mit dem Programm der Signal Processing Toolbox [b,a] = prony(y,n,m) erhält man ein ARMA-Modell mit den Koeffizienten b zum Zählerpolynom der Ordnung m und den Koeffizienten a zum Nennerpolynom der Ordnung n, siehe MATLAB help prony.
13.4 Sytemidentifikation mit den MATLAB-Funktionen lpc, prony und stmcb
115
Anders als der hier in Abschnitt 13.3.1 vorgestellte Algorithmus, der auch ein Rauschsignal als Testsignal am Systemeingang zulässt, wird hier eine Impulserregung x[n] = G[n] vorausgesetzt, sodass das Signal y[n] die Impulsantwort des zu klassifizierenden Systems sein muss. Die DGL (13.11) spezialisiert sich auf zwei Abschnitte: den ersten für n = 0:M, bei dem der Impuls den nichtrekursiven Teil der DGL durchläuft, und den zweiten für n t M, bei dem nur noch der rekursive Teil der DGL wirksam ist.
y[n]
N °bn ¦ ak y[n k ] für 0 d n d M ° k 1 ® N ° a y[n k ] für n ! M ° ¦ k ¯ k 1
(13.16)
Beim Prony-Verfahren wird zunächst der Grad des Zählerpolynoms M als Programmparameter m eingestellt und für n t M eine Modellierung bezüglich der n Pole im Sinne des mittleren quadratischen Fehlers durchgeführt. Danach werden die M Nullstellen berechnet. Letzteres geschieht ohne Mittelung, was insbesondere bei einer Signalstörung durch Rauschen das Ergebnis kompromittieren kann. Pol-Nullstellen-Model (ARMA model) – Steiglitz-McBride-Verfahren Während das Prony-Verfahren die Impulserregung voraussetzt, lässt das Verfahren von Steiglitz und McBride auch eine Testfunktion x zu, siehe MATLAB help stmcb. [b,a] = stmcb(y,x,n,m,iter) Der Algorithmus minimiert iterativ, wie in Bild 13-4, den quadratischen Fehler zwischen der Impulsantwort des Systems im Test und der des Modells. Die Zahl der Iterationen wird durch den Parameter iter vorgegeben. Die Zahl der Pole und Nullstellen im Modell wird durch n und m festgelegt. Bei Störung durch Rauschen liefert das Steiglitz-McBride-Verfahren typisch bessere Resultate als das Prony-Verfahren.
13.4.2
Versuchsdurchführung
M13.8
AR-Modell – Lineare Prädiktion Verwenden Sie das System H3(z) aus M13.7 einmal ohne Nullstellen und einmal mit Nullstellen. Bestimmen Sie jeweils die Impulsantwort und führen Sie eine ARModellierung mit dem MATLAB-Programm lpc durch. Wählen Sie dazu die Ordnung des Modells geeignet. Vergleichen Sie die Betragsfrequenzgänge und Impulsantworten der jeweiligen zugrunde liegenden Systeme und Modelle. Als Maß der Güte der Modelle bestimmen Sie die quadratische Abweichung der Impulsantworten (beispielsweise) für die ersten 20 Koeffizienten. Stören Sie das Signal durch additives, weißes gaußsches Rauschen. Welchen Einfluss hat das Rauschen auf die Güte des Modells? Anmerkung: Auf einen ausführlichen Test der Verfahren wird aus Aufwandsgründen verzichtet. Für einen quantitativen Vergleich könnte der quadratische Fehler bezüglich der Impulsantworten herangezogen werden, siehe Programmbeispiel 13-1. Durch eine Serie von Simulationen ließe sich so an ausgesuchten Systemen den Einflüssen der Wahl der Anzahl
116
13 Systemidentifikation mit der Fehlerquadratmethode von Polen und Nullstellen der Modelle und der Varianz der Rauschstörung nachgehen. Programmbeispiel 13-1 kann dafür als Grundlage dienen.
M13.9
ARMA-Modell – Prony-Verfahren Wiederholen Sie die Untersuchungen in M13.8 mit dem MATLAB-Programm prony.
M13.10
ARMA-Modell – Steiglitz-McBride-Verfahren Wiederholen Sie die Untersuchungen in M13.8 mit dem MATLAB-Programm stmcb. Vergleichen Sie die Resultate der Versuchsaufgaben M13.8 bis 10 und diskutieren Sie die Ergebnisse.
M13.11
Wiederholen Sie die Versuchsaufgaben M13.8 bis 10, wobei Sie das Ausgangssignal des Systems (Impulsantwort) mit Rauschen stören. Vergleichen Sie die ersten Werte der Impulsantworten der Modelle mit denen der Impulsantwort des Systems. Hinweis: Siehe Programmbeispiel 13-1. Zum Vergleich ist die Impulsantwort des MA-Modells (lpc) geeignet zu skalieren.
Programmbeispiel 13-1 Systemidentifikation mit lmc, prony und stmcb %% System identification % using MATLAB Signal Processing Toolbox functions lmc, prony and stmcb % lab13_6.m * mw * 05/09/2007 %% Input parameters Nz = 8; Np = 8; % number of zeros and poles for system model Nh = 20; % computed length of impulse responses for comparison K = 50; % simulated length of system response %% System under test and filtering b = [.2317 .3378 .5297 .3378 .2317]; % numerator a = [1 -.3396 1.2275 -.3119 .2964]; % denominator % b = 1; % all-pole system h = impz(b,a,Nh); % impulse response fvtool(b,a) x = zeros(1,K); x(1) = 1; % impulse y = filter(b,a,x); % simulated output signal of system under test randn('state',0); n = 0.1*randn(size(y)); % AWGN y = y + n; % + AWGN %% MA Model [a_lpc g] = lpc(y,Np); fvtool(1,a_lpc) [b_prony,a_prony] = prony(y,Nz,Np); fvtool(b_prony,a_prony) [b_stmcb,a_stmcb] = stmcb(y,Nz,Np); % impulse response fvtool(b_stmcb,a_stmcb) %% Display and graphics fprintf('lab13_6 lpc/prony/stcmb system identification \n') fprintf('No. of zeros = %g No. of poles = %g\n',Nz,Np) h_lpc = impz(1,a_lpc,Nh)*h(1); % scale h_prony = impz(b_prony,a_prony,Nh);
13.4 Sytemidentifikation mit den MATLAB-Funktionen lpc, prony und stmcb
117
h_stmcb = impz(b_stmcb,a_stmcb,Nh); fprintf('Impulse responses\n') fprintf(' System lpc prony stmcb\n') for n=1:Nh fprintf('(%2i) %+10.6f %+10.6f %+10.6f %+10.6f\n',n,h(n),h_lpc(n),h_prony(n),h_stmcb(n)) end fprintf('TSE of impulse response %10.6f %10.6f %10.6f\n',sum((h-h_lpc).^2),sum((h-h_prony).^2),sum((h-h_stmcb).^2)) %% stmcb with input signal K = 2000; INT = 3; x = randn(1,K); % white noise y = filter(b,a,x); % simulated output signal of system under test randn('state',0); n = 0.1*randn(size(y)); % AWGN y = y + n; % + AWGN [b_stmcb2,a_stmcb2] = stmcb(y,x,Nz,Np,INT); % impulse response fvtool(b_stmcb2,a_stmcb2) h_stmcb2 = impz(b_stmcb2,a_stmcb2,Nh); fprintf('Impulse responses (INT=%2i)\n',INT) fprintf(' System stmcb2\n') for n=1:Nh fprintf('(%2i) %+10.6f %+10.6f\n',n,h(n),h_stmcb2(n)) end fprintf('TSE of impulse response %10.6f\n',sum((h-h_stmcb2).^2))
Hinweise zu MATLAB Siehe auch frühere Versuche. Signal Processing Toolbox
fvtool, impz, levinson, lpc, prony, stmcb, xcorr
MATLAB functions
filter, randn
Þ Online-Ressourcen zum Versuch lab13_1.m, lab13_2.m, lab13_3.m, lab13_4.m, lab13_5.m, lab13_6.m, lab12_rxx.m, lab12_rxy.m, design_fir_model.m und Programme mit Ergebnissen im HTML-Format
118
14
Adaptives FIR-System
14.1
Einführung
In Versuch 10 wurden FIR-Systeme zur Prädiktion stationärer Prozesse eingesetzt. Zum Entwurf wurde die Fehlerquadratmethode angewendet. Ausgehend von der Autokorrelationsfunktion wurden die Prädiktionskoeffizienten durch Lösen der Normalengleichungen gefunden. Die Versuche 11, 12 und 13 erweiterten die Anwendung der Fehlerquadratmethode auf den Entwurf von FIR-Systemen zur Kanalentzerrung und Systemidentifikation. Dabei ersetzten aus Signalproben gewonnene Schätzwerte die Autokorrelationsfunktion. Schließlich wurde die Systemidentifikation um einen iterativen Algorithmus ergänzt, der auch IIR-Systeme modellieren kann. In diesem Versuch wird der Anwendungsbereich der Fehlerquadratmethode nochmals erweitert. Die Stationarität der Prozesse wird fallengelassen. Die linearen zeitlichen Bindungen im Signal werden nur mehr über gewisse Zeitabschnitte als näherungsweise konstant angenommen, sodass aussagekräftige statistische Mittelwerte geschätzt werden können. Man spricht dabei auch von lokalen statistischen Größen, englisch local statistics genannt. Damit wird es möglich viele Vorgänge in Natur und Technik einer angepassten Signalverarbeitung zuzuführen. Anwendungsbeispiele finden sich u. a. in der Sprachcodierung und Sprachverarbeitung, der Entzerrung von Nachrichtenübertragungskanälen, wie Leitungen und Funkstrecken, und der Rauschunterdrückung. Anmerkung: Weiterführende Literatur und ausführliche Literaturhinweise zu adaptiven Filtern findet man z. B. [BMOPSS94], [Hay02], [Kam04], [PoRa06], [PrMa96], [Ste03], [Unb98], [VHH98], [WiSt85].
Lernziele Nach Bearbeiten des Versuchs können Sie x das Prinzip der Fehlerrückführung anhand des Adaptionsalgorithmus für die MMSELösung erläutern x die Konvergenz der Prädiktionskoeffizienten in einem Bild veranschaulichen und die Konvergenzgeschwindigkeit abschätzen x den Begriff der Lernkurve erläutern und ihren Verlauf deuten
14.2
Grundlagen
14.2.1
MMSE-Lösung
Die adaptive Signalverarbeitung beruht auf dem Prinzip der Rückkopplung in Bild 14-1. Darin soll die Folge x[n] durch ein adaptives FIR-System so abgebildet werden, dass dessen Ausgangssignal y[n] dem Wunschsignal d[n] möglichst ähnlich wird. Hierzu wird das Differenzsignal, kurz Fehler e[n] genannt, beobachtet und einem Adaptionsalgorithmus übergeben, der nach einem gewissen Fehlermaß für jeden Takt die Koeffizienten des adaptiven FIR-Sytems berechnet. Anmerkung: Das Wunschsignal wird oft auch Referenzsignal genannt. Die verwendeten Formelzeichen d und e entsprechen den englischen Bezeichnungen desired bzw. error.
14.2 Grundlagen
119
Zur Herleitung des adaptiven Algorithmus wird zunächst, wie in Versuch 10, von idealisierten Verhältnissen ausgegangen. Sowohl der Eingangsprozess als auch der Wunschprozess seien stationäre Prozesse, sodass die Autokorrelationsfunktion (AKF) Rxx[l], die Korrelationsmatrix Rxx und die Kreuzkorrelationsfunktion (KKF) Rxd[l] wohl definiert sind. Als Fehlermaß wird wieder der mittlere quadratische Fehler (Mean-squared Error, MSE) herangezogen.
E e 2 [ n]
MSE
E >d[n] y[n]@ 2
(14.1)
Mit der Faltung des Eingangsprozesses x[n] mit der Impulsantwort des FIR-Systems N-ter Ordnung, b[n] = {b0, b1, …, bN}, ergibt nach kurzer Zwischenrechnung der MSE in kompakter Matrix-Vektorform. MSE
Rxx [0] bT R xx b 2bT rxd
(14.2)
Darin ist b der Vektor der Koeffizienten des FIR-Systems und rxy der Vektor der KKF. Wie in den vorhergehenden Versuchen liegt ein Normalengleichungssystem mit MMSE-optimaler Lösung bei vorgegebener Ordnung N vor. bopt
R xx1 rxd
(14.3)
Der MSE im optimalen Fall ist MSEopt
Rxx [0] bTopt rxd
Wunschsignal
x[n]
adaptives FIR-System
(14.4)
d[n]
Fehler
y[n]
e[n] = d[n] – y[n]
Adaptionsalgorithmus
Bild 14-1 Adaptive Signalverarbeitung mit Fehlerrückführung
14.2.2
Adaptionsalgorithmus
Zum Verständnis des Adaptionsalgorithmus ist es hilfreich, das Verhalten des MSE in der Nähe der MMSE-optimalen Lösung zu kennen. In Abschnitt 10.3 wurde gezeigt, dass der mittlere quadratische Fehler bezüglich der Koeffizienten bk eine nach oben offene, konkave Funktion ist. Das lokale Verhalten des MSE beschreiben seine Gradienten, die partiellen Ableitungen nach den Koeffizienten des FIR-Systems bk. In der kompakten Schreibweise der Matrix-Vektorform ist der Gradientenvektor der Spaltenvektor mit den N + 1 Komponenten
120
14 Adaptives FIR-System T
§ w w w · , ,! , ¨ ¸ MSE wbN ¹ © wb0 wb1
g
2R xx b 2rxd
(14.5)
Anmerkung: Für g = 0, beim Minimum des MSE, resultieren wieder die optimalen Koeffizienten bopt.
Ist das FIR-System zum Zeitpunkt n nicht optimal angepasst, gilt für den Gradientenvektor g[n]
2R xx b[n] 2rxd
(14.6)
Die Abweichung des Koeffizientenvektors b[n] von der MMSE-optimalen Lösung bopt kann durch kurze Zwischenrechnung angegeben werden. Dazu wird (14.6) von links mit der inversen Korrelationsmatrix erweitert. 1 1 R xx g[n] b[n] R xx1 rxd 2
b[n] b opt
(14.7)
Rechts treten nun nur noch die Koeffizientenvektoren auf. Auflösen nach der MMSE-optimalen Lösung liefert den aktuellen Koeffizientvektor und die erforderliche Anpassung in einem Schritt. bopt
1 b[n] R xx1 g[n] 2
(14.8)
Unter der idealisierten Bedingung stationärer Prozesse ist bei bekannter Korrelationsmatrix und bekanntem KKF-Vektor eine Anpassung in einem Schritt stets möglich. In den praktischen Anwendungen adaptiver Systeme ist das nicht der Fall. Korrelationsmatrix und KKF-Vektor müssen geschätzt werden. Dies ist sogar erwünscht. Erst die Einführung von Kurzzeitmittelwerten ermöglichen die Anpassung an reale dynamische Prozesse. Für die folgenden Überlegungen zur Konvergenz des Adaptionsalgorithmus gehen wir jedoch weiterhin von einem stationären Prozess aus, sodass die MMSE-optimale Lösung als Referenz benutzt werden kann. Die Adaption des Koeffizientenvektors geschieht in kleinen Schritten. In jedem Schritt wird der neue Koeffizientenvektor aus seinem Vorgänger plus einer aus dem Gradientenvektor und der Korrelationsmatrix abgeleiteten Änderung bestimmt. b[n 1] b[n] P R xx1 g[n]
(14.9)
Darin übt der Konvergenzparameter P als Schrittweite einen wesentlichen Einfluss auf das Konvergenzverhalten aus.
14.2.3
Konvergenzverhalten und Lernkurve
Aufklärung über das Konvergenzverhalten liefert die Interpretation des Adaptionsalgorithmus (14.9) als N + 1 Differenzengleichungen erster Ordnung. Damit ist für jeden Koeffizienten ein exponentieller Verlauf des Ein- bzw. Ausschwingverhaltens vorgegeben. Eine übersichtlichere Darstellung erhält man, wenn mit (14.8) das Produkt aus inverser Korrelationsmatrix und Gradientenvektor in (14.9) durch die Koeffizientenvektoren ersetzt wird. Die Adaption beginnt mit dem Anfangswert b[0] = 0. Dann resultiert das System von Differenzengleichung erster Ordnung mit jeweils rechtsseitigen Folgen
14.2 Grundlagen
121
b[n 1]
1 2P b[n] 2P bopt
für n = 0, 1, 2, … und b[0] = 0
(14.10)
Die Lösung für die Adaptionsfolge des Koeffizientenvektors ergibt sich über eine kurze Betrachtung der z-Transformierten im Bildbereich, siehe Aufgabe A14.1. b[n]
ª 1 1 2 P n º b für n = 0, 1, 2, … und b[0] = 0 ¬ ¼ opt
(14.11)
Im stationären Fall konvergiert die Folgen der Koeffizientenvektoren b[n] für k o f gegen die MMSE-optimale Lösung bopt, wenn (1–2P)n o 0. Dazu muss der Konvergenzparameter die Konvergenzbedingung einhalten. 0 P 1
(14.12)
Man beachte, für P = 1/2 resultiert die 1-Schritt-Lösung. Für P > 1/2 wechselt die momentane Abweichung von der MMSE-optimalen Lösung in jedem Takt das Vorzeichen. Die Adaptionsfolge b[n] oszilliert um bopt, weshalb üblicherweise P < 1/2 gewählt wird. Als Differenzengleichung erster Ordnung besitzt der Adaptionsalgorithmus im Falle der Konvergenz einen exponentiellen Abfall, ähnlich der bekannten Entladekurve eines RC-Gliedes. Entsprechend wird die Konvergenzgeschwindigkeit durch die Zeitkonstante Wb angegeben. Der Vergleich mit der Zeitkonstanten des RC-Gliedes und die Näherung der Exponentialfunktion durch das erste Glied der Taylor-Reihe [BSMM99] n
n § 1· 1 e n /W | 1 ¨ 1 ¸ | 1 1 2P © W¹
(14.13)
liefert die Konvergenzgeschwindigkeit als Abschätzung für die Zahl der erforderlichen Iterationen bis die MMSE-optimalen Koeffizienten des FIR-Systems annähernd eingestellt sind.
Wb |
1 2P
für
0P
1 2
(14.14)
Das Verhalten des MSE (14.2) während der Adaption kann in ähnlicher Weise untersucht werden. Für den zeitlichen Verlauf des momentanen MSE hat sich in der Literatur der etwas blumige Begriff Lernkurve eingebürgert. Man beachte auch, dass der MSE ein Erwartungswert ist, also die folgenden Überlegungen im Sinne eines Scharmittelwerts zu interpretieren sind. Ferner ist es üblich, den Koeffizientenvektor in zentrierter Form zu verwenden. c
b b opt
(14.15)
Bei Erreichen der MMSE-optimalen Lösung ist der zentrierte Koeffizientenvektor c gleich dem Nullvektor 0. Damit in den MSE (14.2) eingesetzt MSE
Rxx [0] c bopt
T
R xx c b opt 2 c bopt
T
rxd
Rxx [0] bTopt R xx b opt 2bTopt rxd cT R xx c cT R xx b opt bTopt R xx c 2cT rxd
MSE opt
0
(14.16)
122
14 Adaptives FIR-System
erhalten wir nach kurzer Zwischenrechnung den Verlauf des momentanen MSE während der Iteration
MSEopt cT R xx c
MSE
(14.17)
Die Konvergenz des Koeffizientenvektors beschreibt die Differenzengleichung erster Ordnung (14.11). Es gilt
c[n]
1 2P n c[0]
für n = 0, 1, 2, … und c[0] = –bopt
(14.18)
Für den momentanen MSE (14.17) folgt daraus MSE[n]
MSEopt (1 2P ) 2 n cT [0] R xx c[0]
(14.19)
Wie für die Koeffizienten kann auch die Konvergenzgeschwindigkeit des momentanen MSE definiert werden, vgl. (14.11).
W MSE |
1 für 4P
0P
1 2
(14.20)
Die Konvergenzgeschwindigkeit der Lernkurve ist doppelt so hoch, wie bei der Koeffizientenadaption. Daraus darf auf ein relativ robustes Verhalten des MSE bezüglich kleinerer Abweichungen des Koeffizientenvektors in der Nähe der MMSE-optimalen Lösung geschlossen werden.
14.3
Vorbereitende Aufgaben
A14.1
Zeigen Sie durch z-Transformation von (14.10) und Auflösen nach B(z), dass die Adaptionsfolge (14.11) resultiert.
A14.2
Bestimmen Sie den Konvergenzparameter P so, dass die optimale Lösung in etwa 10 Schritten erreicht ist.
14.4
Versuchsdurchführung
Im Versuch sollen die theoretischen Zusammenhänge verifiziert und anhand der Prädiktionsaufgabe in Bild 14-2 durch Simulationen veranschaulicht werden. Den Simulationen zugrunde gelegt werden stationäre ARMA-Prozesse 2. Ordnung mit Modellsystem H ( z)
c
b0 z 2 b1 z 1 b2 a0 z 2 a1 z 1 a2
mit den Koeffizienten in Tabelle 14-1. Anmerkung: Die Simulationen geschehen hier noch unter idealisierten Bedingungen. Die Rückkopplung des Fehlers wird im nächsten Versuch eingeführt.
14.4 Versuchsdurchführung
123
Innovation w[n]
IIR-System
ARMA-Modell Wunschsignal d[n]
D
Fehler x[n]
Korrelationsmatrix Rxx
adaptives FIR-System
y[n]
e[n] = d[n] – y[n]
Adaptionsalgorithmus
und KKF-Vektor rxd
Bild 14-2 Simulation der adaptiven Prädiktion
Tabelle 14-1 Butterworth-Tiefpässe 2. Ordnung No.
:3dB / S
c
b0
b1
b2
a0
a1
a2
1
0.2
0.1457
1
2
1
1
–1.1430
0.4128
2
0.4
0.3236
1
2
1
1
–0.3695
0.2722
3
0.6
0.5084
1
2
1
1
0.369
0.1958
M14.1
Bestimmen Sie mit MATLAB die jeweiligen Korrelationsmatrizen Rxx und KKFVektoren rxd für den Entwurf eines Prädiktors 2. Ordnung für die drei Modellsysteme in Tabelle 14-1. Hinweis: Siehe Versuch 10.
M14.2
Berechnen Sie für die drei Modellsysteme in Tabelle 14-1 mit MATLAB die MMSE-optimalen Lösungen bopt für den Prädiktor 2. Ordnung. Geben Sie auch die zugehörigen MSE-Werte MSEopt an.
M14.3
Nun soll die schrittweise Adaption des Prädiktors 2. Ordnung simuliert werden. Schreiben Sie ein MATLAB-Programm, welches den Koeffizientenvektor schrittweise anpasst. Für den Konvergenzparameter nehmen Sie Ihren Wert aus A10.2. Überprüfen Sie die Wirksamkeit des Adaptionsalgorithmus grafisch anhand der Signale d[n] und e[n]. Berechnen Sie in jedem Schritt den momentanen MSE und stellen Sie die Lernkurve grafisch dar. Stellen Sie auch die Filterkoeffizienten und den Gradienten über der Zeit dar. Hinweis: Ein Simulationsbeispiel ist in Bild 14-3 zu sehen.
124
14 Adaptives FIR-System Veranschaulichen Sie die Adaption des Prädiktors 2. Ordnung in der (c0,c1)-Ebene. Dazu bestimmen Sie den MSE für ausgewählte Werte des zentrierten Koeffizientenvektor c und stellen seine Höhenlinien dar. Tragen Sie darin auch die Werte des Koeffizientenvektors c ein, wie sie bei der Adaption auftreten.
M14.4
Diskutieren Sie die Ergebnisse. Welchen Einfluss auf das Adaptionsverhalten haben die Modellprozesse? Hinweis: Ein Simulationsbeispiel ist in Bild 14-4 zu sehen. Anmerkung: Siehe auch Versuch 10.
Desired signal 2
d[n] o
1 0 -1 -2
0
10
20
30 no Error
40
50
60
0
10
20
30 no Mean-squared error
40
50
60
0
10
20
30 no
40
50
60
2
e[n] o
1 0 -1
MSE[n] / MSEopt o
-2
15 10 5 0
Bild 14-3 Simulationsbeispiel für die adaptive Prädiktion: Wunschsignal d[n], Fehler e[n] und mittlerer quadratischer Fehler MSE[n] als Funktion der momentanen Prädiktionskoeffizienten
14.4 Versuchsdurchführung
125 Convergence of coefficients and MSE
2 1.5 1
c1 o
0.5
1 1.1 1.5 2
0 -0.5
5
3
-1
10
-1.5 -2 -2
-1.5
-1
-0.5
0 c0 o
0.5
1
1.5
2
Bild 14-4 Simulationsbeispiel für die Konvergenz der zentrierten Prädiktionskoeffizienten co und c1
Hinweise zu MATLAB Siehe auch frühere Versuche. MATLAB functions
contour, inv
Þ Online-Ressourcen zum Versuch lab14_1.m und Programme mit Ergebnissen im HTML-Format
126
15
Least-Mean-Square-Algorithmus
15.1
Einführung
Dieser Versuch setzt die Überlegungen zum adaptiven FIR-Filter fort. Die Idee der adaptiven Signalverarbeitung wird in Bild 15-1 nochmals veranschaulicht. Für die Adaption der Filterkoeffizienten werden in jedem Iterationsschritt die inverse Korrelationsmatrix und der Gradientenvektor benötigt. In den praktisch relevanten Fällen dynamischer Prozesskenngrößen müssten diese jeweils durch Kurzzeitmittelwerte geschätzt und die inverse Korrelationsmatrix berechnet werden. Ein Aufwand, der einem Einsatz in vielen Anwendungen entgegensteht. Lernziele Nach Bearbeiten des Versuchs können Sie x die Grundlagen des LMS-Algorithmus vorstellen und sein Konvergenzverhalten abschätzen x den LMS-Algorithmus in realisierbarer Form angeben und in ein MATLAB-Programm umsetzen x anhand von Simulationen das Konvergenzverhalten und die Fehlanpassung des LMSAlgorithmus aufzeigen x den LMS-Algorithmus vereinfachen und die Funktion der modifizierten Algorithmen durch Simulation überprüfen x das Potenzial des LMS-Algorithmus für praktische Anwendungen bewerten In diesem Versuch wird nach einer aufwandsgünstigen und robusten Alternative zur Adaption der Koeffizienten gesucht. Den Ausgangspunkt liefert die Idee des steilsten Abstieges des mittleren quadratischen Fehlers (MSE). Die Weiterentwicklung führt auf den Least-Mean-Square(LMS-)Algorithmus, dem vielleicht am weitesten verbreiteten Algorithmus der adaptiven Signalverarbeitung. Seiner Bedeutung angemessen, werden im Folgenden die Grundlagen ausführlich vorgestellt. Zunächst werden die besonderen Eigenschaften der Korrelationsmatrix behandelt. Danach wird die Methode des steilsten Abstieges vorgestellt und das resultierende Konvergenzverhalten untersucht. Die Umsetzung in den LMS-Algorithmus schließt den Grundlagenteil ab. d[n] Wunschsignal
x[n]
adaptives FIR-System
Fehler
y[n]
e[n] = d[n] – y[n]
Adaptionsalgorithmus
Fehlerrückführung
Bild 15-1 Adaptive Signalverarbeitung mit Fehlerrückführung
15.2 Grundlagen
127
15.2
Grundlagen
15.2.1
Hauptachsentransformation und Inverse der Korrelationsmatrix
Den Ausgangspunkt zur Herleitung des LMS-Algorithmus liefern Überlegungen zu den Eigenwerten der Korrelationsmatrix Rxx. Die Korrelationsmatrix besitzt Toeplitz-Form. Sie ist damit symmetrisch und nicht-singulär. Ihre Überführung in die Normalform und eine Hauptachsentransformation sind folglich möglich [BSMM99]. Anmerkung: Die Ordnung des adaptiven FIR-Systems wird hier mit N bezeichnet. Dann besitzt es N + 1 Koeffizienten und es wird die Korrelationsmatrix mit N + 1 Zeilen und Spalten benötigt. Man beachte, in der Literatur wird N auch als die Anzahl der Koeffizienten verwendet, z. B., wenn von einem Prädiktor Nter Ordnung gesprochen wird.
Benötigt werden zunächst die Eigenvektoren der Korrelationsmatrix. Den n-ten Eigenvektor vn und seinen Eigenwert On erhält man aus der Bestimmungsgleichung für Eigenvektoren, siehe Versuch 1.
R xx On I v n
0
(15.1)
Die Eigenvektoren sind orthogonal und können so normiert werden, dass 1 für m ® ¯0 sonst
vTm v n
n
(15.2)
Im Weiteren wird der Einfachheit halber angenommen, dass alle N + 1 Eigenwerte verschieden sind. Aus den Eigenvektoren werden nun die Spalten der Modalmatrix gebildet, siehe Versuch 2. M
v0
v1 ! v N
(15.3)
Wegen der Orthogonalität der Eigenvektoren ist auch die Modalmatrix orthogonal. M MT
I
und MT
M 1
(15.4)
Mit der Modalmatrix kann die Normalform und die Hauptachsentransformation zur Korrelationsmatrix angegeben werden. Es gilt R xx
M 1 ȁ M bzw. ȁ
M 1 R xx M
(15.5)
mit der Diagonalmatrix /, die die Eigenwerte auf der Hauptdiagonalen enthält, und ihre Inverse /–1.
ȁ
§ O0 0 " ¨ ¨ 0 O1 % ¨# % % ¨ " 0 0 ©
0 · ¸ # ¸ bzw. ȁ 1 0 ¸ ¸ ON ¹
§1 O0 0 ¨ 1 O1 ¨0 ¨# % ¨ " 0 ©
" 0
· ¸ % # ¸ ¸ % 0 ¸ 0 1 ON ¹
(15.6)
Die inverse Korrelationsmatrix ergibt sich aus Inversion der Normalform (15.5) mit der Orthogonalität der Modalmatrix (15.4). Anwenden der Rechenregel für das Inverse eines Produkts aus zwei Matrizen liefert in zwei Schritten
128
15 Least-Mean-Square-Algorithmus
R xx1
M
T
ȁM
1
T 1
M
ȁ M
1
M ȁ 1 M T
(15.7)
Eine explizite Matrixinversion ist somit entfallen. An ihre Stelle tritt die Bestimmung der Eigenwerte. Im endgültigen LMS-Algorithmus wird auch das vermieden. Zur Herleitung der Konvergenzeigenschaften des LMS-Algorithmus wird jedoch von den Eigenwerten gebrauch gemacht.
15.2.2
Methode des steilsten Abstiegs
Der zweite Schritt zur Vereinfachung des Adaptionsalgorithmus befasst sich mit einer alternativen Anpassung des Koeffizientenvektors. Dazu wird von der zentrierten Form des Koeffizientenvektors ausgegangen und die Rekursionsformel der Adaption (14.9) vereinfacht, indem auf die Gewichtung mit der inversen Korrelationsmatrix verzichtet wird. c[n 1] c[n] P g[n]
(15.8)
Während nach (14.11) die Momentanwerte des Koeffizientenvektors vom Startvektor auf einer Geraden in die MMSE-optimale Lösung laufen, ändern sich die Momentanwerte des Koeffizientenvektors nun jeweils in Richtung des Momentanwertes des Gradienten des MSE. Man spricht deshalb von der Methode des steilsten Abstieges. Für den Gradienten bezüglich der zentrierten Form g[n] ergibt sich aus (14.6) mit (14.3) der Zusammenhang g[n]
2R xx b[n] 2rxy
2R xx c[n] b opt 2R xx b opt
2R xx c[n]
(15.9)
Für die Rekursion der zentrierten Koeffizienten resultiert c[n 1] c[n] 2P R xx c[n]
I 2P R xx c[n]
(15.10)
Das Gleichungssystem kann durch Hauptachsentransformation der Korrelationsmatrix vereinfacht werden. Dazu wird die Rekursionsformel von links mit der transponierten Modalmatrix multipliziert. MT c[n 1] MT I 2P R xx c[n]
M
T
2P MT R xx c[n]
(15.11)
Nun wird die Koordinatentransformation c[n] MT c[n] und c[n] M c[n]
(15.12)
angewendet. Es ergibt sich mit c[n 1]
M
T
2P MT R xx M c[n]
I 2P ȁ c[n]
(15.13)
ein System von N + 1 unabhängigen Differenzengleichungen 1. Ordnung. Die Diagonalmatrix / beschreibt mit den Eigenwerten Ok die linearen Abhängigkeiten im Eingangsprozess. Für die k-te Zeile des Gleichungssystems erhält man die Differenzengleichung 1. Ordnung ck [n 1] 1 2P Ok ck [n]
für k = 0, 1, …, N
(15.14)
15.2 Grundlagen
129
Wie in Versuch 14 kann nun das Konvergenzverhalten der Methode des steilsten Abstieges untersucht werden. Die Differenzengleichungen konvergieren für 0P
1 max Ok
(15.15)
k 0,..., N
Der größte Eigenwert bestimmt den zulässigen Maximalwert des Konvergenzparameters. Die Konvergenzgeschwindigkeit bezüglich der Koeffizienten c und des momentanen MSE kann wie in Versuch 14 abgeschätzt werden. Mit (14.14) und (14.20) gilt für die Zeitkonstanten der Methode des steilsten Abstiegs
W b,k
1 2P Ok
1 4P Ok
und W MSE ,k
für k = 0, 1, …, N
(15.16)
Die Konvergenzgeschwindigkeit wird durch den kleinsten Eigenwert bestimmt.
15.2.3
LMS-Algorithmus
Um die Methode des steilsten Abstieges zuverlässig anwenden zu können, ist zur Einstellung des Konvergenzparameters (15.15) die Kenntnis des jeweils größten Eigenwertes erforderlich. Diese Information ist in den Anwendungen meist nicht verfügbar, sodass ein alternativer Weg gefunden werden muss. Die Überlegungen führen schließlich zum LMS-Algorithmus. Zunächst wird an die Rechenoperation Spur einer Matrix, englisch trace, erinnert. Für die Diagonalmatrix und die Korrelationsmatrix gelten
Tr ȁ
N
Ok
N
bzw. Tr R xx
Rxx (0)
( N 1) V x2
(15.17)
k 0
k 0
Darin ist Vx2 die Varianz des (Eingangs-)Prozesses x[n], eine statistische Größe, die als Kurzzeitmittelwert geschätzt werden kann. Ersetzt man die Diagonalmatrix in (15.17) durch die Hauptachsentransformation (15.5) und beachtet die Rechneregel für die Spur eines Produkts zweier Matrizen, so resultiert schließlich für das Produkt der Eigenwerte der Zusammenhang mit der Varianz Tr ȁ
Tr R xx
( N 1) V x2
(15.18)
Damit ist es möglich, den maximalen Eigenwert für die Wahl des Konvergenzparameters zu schätzen. Die konservative Abschätzung
P
D ( N 1)V x2
für 0 D 1
(15.19)
liefert eine konvergente Version der Methode des steilsten Abstiegs b[n 1] b[n]
D ( N 1)V x2
g[n]
(15.20)
130
15 Least-Mean-Square-Algorithmus
Die Methode des steilsten Abstieges setzt in jedem Iterationsschritt die Kenntnis des momentanen Gradienten sowie der Varianz des Eingangssignals des adaptiven FIR-Systems voraus. Für einen einfachen und robusten Algorithmus müssen der Gradientenvektor und die Varianz durch relativ einfache, aus dem Signal in Bild 15-1 bestimmbare Größen ersetzt werden. Für den Gradienten können die partiellen Ableitungen des MSE in (10.23) benutzt werden. Bei der Herleitung der Orthogonalitätsbeziehung ergab sich dort w MSE wbk
w E e 2 [ n] wbk
§ · w 2E ¨ e[n] e[n] ¸ wbk © ¹
2E e[n] x[n k ]
(15.21)
für k = 0, 1, …, N. In Matrix-Vektorform resultiert daraus mit dem Vektor des Eingangssignals
x[n]
x[n], x[n 1],!, x[n N ] T
(15.22)
der gesuchte Gradient als Erwartungswert g[n]
2E e[n] x[n]
(15.23)
Da der Erwartungswert unbekannt ist, wird der Kurzzeitmittelwert eingesetzt. Es hat sich als günstig erwiesen, die einfachste Form der Näherung, den Momentanwert, zu verwenden. Mit dem einfachen Schätzwert für den Gradienten und einem geeigneten Schätzwert der momentanen Varianz resultiert der LMS-Algorithmus zur Adaption der Koeffizienten b[n 1] b[n]
15.2.4
2D ( N 1) V x2 [n]
e[n] x[n]
(15.24)
Varianten des LMS-Algorithmus
Eine übliche Methode zur Schätzung der momentanen Varianz ist der Kurzzeitmittelwert über den aktuellen Eingangsvektor in Verbindung mit einer Mittelung über einen längeren Zeitraum mit exponentiellem Vergessen durch eine Differenzengleichung 1. Ordnung.
V x2 [n 1] (1 E ) V x2 [n] E xT [n] x[n] für 0 < E < 1
(15.25)
Der Abklingfaktor darin ist (1–E ). Bei der Schätzung der Varianz durch das Skalarprodukt in (15.25) wird die Normierung durch den Stichprobenumfang weggelassen und so der Faktor (N+1) in (15.24) bereits berücksichtigt. Damit ergibt sich eine praktisch einsetzbare Variante des LMS-Algorithmus. b[n 1] b[n]
D V x2 [n]
e[n] x[n]
für 0 < D < 2
(15.26)
Die Umsetzung des Algorithmus veranschaulicht das Blockdiagramm in Bild 15-2. Der Algorithmus wird für ein adaptives FIR-System 2. Ordnung, d. h. N = 2, dargestellt. Auf den zweiten Blick erkennt man die einfache Struktur. Sie zeigt sich in der Regelmäßigkeit und den elementaren Rechenoperationen Addition, Multiplikation und Verzögerung; allein die Division fällt etwas aus dem Rahmen.
15.2 Grundlagen
131
Anmerkung: Da die Adaption auf Schätzwerten beruht, kann die Division vereinfacht werden, z. B. durch Näherung des Divisors als Zweierpotenz-Zahl und entsprechender Schiebeoperation. Um eventuelle numerische Probleme bei sehr kleinen Schätzwerten V X2 [n] im Nenner zu vermeiden, kann eine kleine Konstante hinzugefügt werden.
Die drei Schritte des LMS-Algorithmus fasst die folgende Aufstellung zusammen. LMS-Algorithmus c Schätzung der lokalen Varianz des Eingangssignals
V x2 [n 1] (1 E ) V x2 [n] E xT [n] x[n]
für 0 E 1
(15.27)
d Berechnung des momentanen Fehlers e[n]
d [n] bT [n] x[n]
(15.28)
e Anpassen der Koeffizienten
b[n 1] b[n]
D V x2 [n]
e[n] x[n]
für 0 D 2
(15.29)
Da sich der LMS-Algorithmus in der Praxis als robust erweist, bietet es sich an, seine Komplexität durch weitere Vereinfachungen zu reduzieren. b[n 1] b[n] ǻ[n]
(15.30)
Dabei wird der Aufwand durch Näherung von Signalwerten mit der Signum-Funktion, d. h. durch +1 bzw. –1, auf Kosten der Konvergenz deutlich reduziert. Die Signum-Funktion kann für den Fehler, das Signal oder beides eingesetzt werden. ǻ1[n] D sgn(e[n]) x[n] ǻ 2 [n] D e[n] sgn(x[n])
(15.31)
ǻ3 [n] D sgn(e[n]) sgn(x[n])
Der Parameter D wird als kleine Zweierpotenz-Zahl gewählt. Auf die Anpassung der Varianz wird ganz verzichtet.
15.2.5
Fehlanpassung
Der LMS-Algorithmus beruht auf der Anpassung des Koeffizientenvektors b[n] in jedem Takt. Ist der MMSE-optimale Koeffizientenvektor bopt eingestellt, führen weitere Anpassungen in der Regel zu einer Fehleinstellung. Um den Einfluss der fehlerhaften Anpassung quantitativ zu erfassen, wird die Fehlanpassung, englisch misadjustment, im Sinne eines Scharmittelwertes als relative Zunahme des mittleren quadratischen Fehlers definiert. M
MSE MSEopt MSEopt
(15.32)
Theoretische Überlegungen und Experimente zeigen, z. B. in [WiSt85], dass die Fehlanpassung zunimmt, wenn die Zahl der Prädiktionskoeffizienten zunimmt und/oder der Konvergenz-
132
15 Least-Mean-Square-Algorithmus
parameter abnimmt. Letzteres heißt für den praktischen Einsatz, dass ein Kompromiss zwischen Konvergenzgeschwindigkeit und Fehlanpassung gewählt werden muss. Anmerkung: Auch die Eigenwerte der Korrelationsmatrix haben einen Einfluss auf die Fehlanpassung.
D
D
1–E
(.)–1
E
Eingangssignal
x[n]
x[n]
e[n–1]
D
x[n–1]
b0
D
x[n–2]
b1
x[n–3]
D
b2
D D
D
D
adaptives FIR-Filter
Fehler e[n] Wunschsignal / Referenzsignal d[n]
e[n] = d[n] – y[n]
y[n]
Ausgangssignal des adaptiven FIR-Filters / Schätzwerte
Bild 15-2 Blockdiagramm eines adaptiven FIR-Systems 2. Ordnung mit vereinfachtem LMS-Algorithmus
15.3 Versuchsdurchführung
15.3
133
Versuchsdurchführung
Im Versuch sollen Eigenschaften und die Wirksamkeit des LMS-Algorithmus durch eine Simulation untersucht werden. Für die Simulation gehen Sie wie in Bild 15-3 vor. Verwenden Sie als Modellsystem das IIRSystem aus Versuch 10 mit der Übertragungsfunktion H ( z)
0.24192
z 2 2 z 1 1 z 2 0.71z 1 0.25
Dort wurde auch der MSE-optimale Prädiktor 2. Ordnung bestimmt.
Innovation w[n] IIR-Modellsystem Wunschsignal ARMAModellprozess
d[n] D
n[n] AWGN
x[n]
adaptives FIR-System
Adaptionsalgorithmus
y[n]
Fehler e[n] = d[n] – y[n]
Fehlerrückführung
Bild 15-3 Simulation der adaptiven Prädiktion mit Fehlerrückführung und Rauschstörung
M15.1
Schreiben Sie ein MATLAB-Programm zur Bestimmung der MSE-optimalen Prädiktionskoeffizienten und des resultierenden MSE. Ergänzen Sie das Programm um die Berechnung und Ausgabe der Eigenwerte der Korrelationsmatrix. Hinweis: Verwenden Sie soweit möglich Teile aus Programmen zu früheren Versuchen.
M15.2
Erstellen Sie eine MATLAB-Programm für den LMS-Algorithmus nach (15.26) und Bild 15-2. Dabei soll der LMS-Algorithmus als MATLAB-Funktion für ein adaptive Prädiktion der Ordnung p (FIR-System der Ordnung N = p – 1) umgesetzt werden. Gestalten Sie die Funktion so, dass ein wiederholter Funktionsaufruf für eine fortlaufende Simulation ohne Blockrandeffekte möglich wird. Wählen Sie die Parameter D und E geeignet und führen Sie eine Simulation für ein adaptives FIR-System mit zwei Koeffizienten durch. Stellen Sie das Wunschsignal d[n] und den Fehler e[n] bildlich dar.
134
15 Least-Mean-Square-Algorithmus Tragen Sie auch den Verlauf der Schätzwerte der Varianz grafisch auf. Welchen Wert hat die Varianz von x[n]? Welchen Wert sollte der Schätzwert nach (15.25) annehmen? Hinweis: Definieren Sie alle den LMS-Algorithmus betreffenden Größen in einer Struktur, siehe Programmbeispiel 15-1. Für den Rücksprung sehen Sie eine Variable als Container vor, die alle für die weiteren Analysen und grafischen Ausgaben interessierenden Zwischenwerte aufnehmen kann.
Programmbeispiel 15-1 Funktionsaufruf des LMS-Algorithmus (Programmausschnitt) % .alpha - convergence parameter, % .beta - weighting parameter of variance estimator % .b - FIR filter coefficients (N+1 initial/final values) % .x - input signal (N+1 initial/final values) % .e - error (initial/final value) % .sig2 - variance (initial/final value) % .Mode - mode for updating FIR filter coefficients, % Mode = 'e*x' no sign function used % Mode = 'x*sign(e)','e*sign(x)' and 'sign(e*x) uses % sign function lms = struct('alpha',1/16,'beta',1/32,'b',zeros(p,1),'e',0,'x',... zeros(p,1),'sig2',p,'Mode','e*x'); [y,e,lms,SAVEb] = lms_algorithm(x,d,lms); % LMS algorithm
M15.3
Ergänzen Sie das Simulationsprogramm so, dass zu den temporären Prädiktionskoeffizienten auch die Lernkurve grafische dargestellt wird. Hinweis: Bild 15-4 zeigt an einem Simulationsbeispiel, wie Ihr Ergebnis aussehen könnte.
M15.4
Erweitern Sie das Simulationsprogramm um die zweidimensionale Darstellung des MSE in Abhängigkeit von den Koeffizienten (Höhenliniendarstellung in der (c0, c1)Ebene) und tragen Sie die Entwicklung der Koeffizienten ein. Wodurch unterscheidet sich das Konvergenzverhalten grundlegenden von dem in Versuch 14, Bild 14-4? Worauf ist dies zurückzuführen? Hinweis: Bild 15-5 zeigt an einem Simulationsbeispiel, wie Ihr Ergebnis aussehen könnte.
Nachdem Sie nun ein MATLAB-Programm zur Simulation des LMS-Algorithmus und zur grafischen Ausgabe interessanter Größen erstellt haben, können Sie sich ein Bild über die Eigenschaften des LMS-Algorithmus machen. M15.5
Untersuchen Sie durch Simulation den Einfluss der Parameter D und E und des Startwerts für den Schätzwert der Varianz auf die Lernkurve und die Entwicklung der Koeffizienten. Diskutieren Sie die Ergebnisse.
M15.6
Untersuchen Sie durch Simulation das Verhalten des Algorithmus bei nahezu optimaler Anpassung. Geben Sie dazu die FIR-Filterkoeffizienten der MSE-optimalen Lösung und die Varianz des Eingangsprozesses als Startwerte vor. Beobachten Sie die weitere die Entwicklung der Koeffizienten in der (c0, c1)-Ebene und bestimmen Sie die Fehlanpassung quantitativ durch Schätzung des mittleren quadratischen Fehlers. Diskutieren Sie die Ergebnisse.
M15.7
Untersuchen Sie, ob die drei vorgeschlagenen Vereinfachungen in (15.31) prinzipiell geeignet sind. Diskutieren Sie die Ergebnisse.
15.3 Versuchsdurchführung
135 Learning curve (MSE)
5 4.5
MSE[n] / MSEopt o
4 3.5 3 2.5 2 1.5 1
20
40
60
80
100 no
120
140
160
180
200
Bild 15-4 Simulation des LMS-Algorithmus – Lernkurve
Convergence of coefficients and MSE 2 1.5 1
4 6 3
c1 o
0.5
2 1.5 1.2 1.1
0
1
-0.5 -1 -1.5 -2 -2
-1.5
-1
-0.5
0 c0 o
0.5
1
1.5
2
Bild 15-5 Simulation des LMS-Algorithmus – Konvergenz der Prädiktionskoeffizienten und MSE
136
15 Least-Mean-Square-Algorithmus
Sie können nach eigenem Interesse auch weitergehende Untersuchungen vornehmen. Folgende Fragen sind von allgemeinem Interesse: Wie verhält sich der LMS-Algorithmus x bei mit Rauschen (AWGN) gestörtem Eingangssignal, siehe Bild 15-3? Sind die vereinfachten Verfahren robuster gegen eine Rauschstörung? x bei Prädiktion höherer Ordnung? x bei unterschiedlichen Modellsystemen (höhere Ordnung, Eigenwerte) ? x bei einem Audiosignal?
Hinweise zu MATLAB Siehe auch frühere Versuche. MATLAB functions
contour, eig, inv, sign, \
Þ Online-Ressourcen zum Versuch lab15_1.m, lab15_2.m, lab15_3.m, lms_algorithm.m, speech.wav und Programme mit Ergebnissen im HTML-Format
handel.wav,
137
16
Recursive-Least-Squares-Algorithmus
16.1
Einführung
In den Versuchen 14 und 15 wurde die adaptive Signalverarbeitung mit Fehlerrückführung betrachtet, wie sie in Bild 16-1 vorgestellt wird. Eine schrittweise Anpassung der Koeffizienten des FIR-Filters b = (b0, b1, …, bN )T wurde untersucht. Ausgehend von der MMSE-optimale Lösung für stationäre Prozesse, wurde in (14.9) die Koeffizientenadaption vorgeschlagen b[n 1] b[n] P R xx1 g[n]
(16.1)
Dann werden ausgehend von vorgegebenen Startwerten die Koeffizienten auf direktem Wege in die MMSE-optimalen Lösung überführt. Die Richtung wird durch die inverse Korrelationsmatrix Rxx–1 und den Momentanwert des Gradientenvektors g[n] geliefert. Die Konvergenzgeschwindigkeit steuert der Konvergenzparameter P. Für die praktische Anwendung wurde daraus in Versuch 15 mit (15.26) der aufwandsgünstige Least-mean-square-(LMS-)Algorithmus abgeleitet b[n 1] b[n]
D V x2 [n]
e[n] x[n]
(16.2)
Die Simulationsergebnisse zeigen, dass der LMS-Algorithmus relativ langsam konvergiert. Die Adaption folgt im Prinzip jeweils der momentanen Richtung des Gradienten. Man spricht deshalb auch von der Methode des steilsten Abstiegs. Anders als in (16.1) fehlt in (16.2) die Richtungsinformation zur MMSE-optimalen Lösung durch die inverse Korrelationsmatrix. Es ergibt sich ein relativ langsames Konvergenzverhalten. Dem wird im Recursive-Least-Squares-(RLS-)Algorithmus durch eine adaptive Schätzung der inversen Korrelationsmatrix Rxx–1 abgeholfen. Der Preis dafür ist eine deutlich gestiegene Komplexität. d[n] Wunschsignal
x[n]
adaptives FIR-System b[n]
Adaptionsalgorithmus
Fehler
y[n]
e[n] = d[n] – y[n]
Fehlerrückführung
Bild 16-1 Adaptive Signalverarbeitung mit Fehlerrückführung
138
16 Recursive-Least-Squares-Algorithmus
Lernziele Nach Bearbeiten des Versuchs können Sie x die Grundlagen des RLS-Algorithmus vorstellen und sein Konvergenzverhalten abschätzen x den RLS-Algorithmus in realisierbarer Form angeben und in ein MATLAB-Programm umsetzen x anhand von Simulationen das Konvergenzverhalten und das Verhalten bei Fehlanpassung des RLS-Algorithmus aufzeigen x das Potenzial des RLS-Algorithmus für praktische Anwendungen bewerten
16.2
Grundlagen
Für eine schnelle Konvergenz des adaptiven FIR-Systems wird die Information über die Korrelation des Prozesses x[n] in Form der inversen Korrelationsmatrix Rxx–1 benötigt, siehe (16.1). Geht man von dynamischen Prozessen in der Anwendung aus, bietet sich zunächst die einfachste Schätzung der Korrelation ohne zeitliche Mittelung an. Der einfache Korrelationsschätzer schreibt sich kompakt in der Matrix-Vektorform [ n] R xx
x[n] xT [n]
(16.3)
Im Beispiel eines Spaltenvektors x[n] mit drei Komponenten, d. h. drei aufeinander folgende Signalwerten, wird daraus
[ n] R xx
§ x 2 [ n] x[n] x[n 1] x[n] x[n 2] · ¨ ¸ x 2 [n 1] x[n 1] x[n 2] ¸ x[n] xT [n] ¨ x[n 1] x[n] ¨ ¸ ¨ x[n 2] x[n] x[n 2] x[n 1] x 2 [n 2] ¸¹ ©
(16.4)
Es ergibt sich stets eine symmetrische Matrix. Allerdings liegt im Allgemeinen keine Bandstruktur in Toeplitz-Form vor. Ändert sich die Korrelation des Prozesses relativ langsam, kann der Schätzwert durch eine zeitliche Mittelung verbessert werden. Führt man, wie beim LMS-Algorithmus, eine exponentielles Ausklingen alter Schätzwerte ein, so ergibt sich der Schätzwert der Korrelationsmatrix mit zeitlicher Mittelung [n] (1 E ) R [n 1] E x[n] xT [n] R xx xx
(16.5)
Der Abklingfaktor (1 – E ) ist typisch mit E im Bereich 0 < E 1 k2 @ k2 k3 z
1
(17.35) k2 k3 k1 >1 k2 @ z
2
k3 z
3
(8.12) liefert unmittelbar k3 = h[4] = 1/8. Damit erhält man zwei Gleichungen für zwei Unbekannte. Auflösen des Gleichungssystems ergibt zunächst k2 = 12/63 | 0.1905, und schließlich k1 = 240/600 = 2/5 = 0.4. Probe: Einsetzen der Koeffizienten der Lattice-Struktur in A3(z) und anschließender Koeffizientenvergleich mit der vorgegebenen Impulsantwort ergibt die Übereinstimmung, siehe auch (8.12). Zu A8.2 Keine lange Rechnung erforderlich, siehe Hinweis zur Aufgabenstellung. Zu A8. 3 Die gerade bzw. ungerade Symmetrie der Impulsantworten für Systeme N-ter Ordnung bedingt h[0] = h[N] bzw. h[0] = –h[N]. Die strikte Stabilität erfordert Koeffizienten betragsmäßig kleiner 1. Die Rekursionsformel in Programmbeispiel existiert nicht für | kN | = 1. Zu A8. 4 Die Impulsantwort kann um den Preis einer zusätzlichen Signalverzögerung durch eine führende Eins erweitert werden. h[n]
^1, b0 ,! , bN `
(17.36)
Durch einen zusätzlichen Signalpfad kann die Erweiterung kompensiert werden, siehe Bild 17-18.
FIR-Lattice-Struktur der Ordnung N+1 x[n]
h > n @
y[n]
– Kompensation Bild 17-18 Erweiterte Lattice-Struktur für symmetrische FIR-Systeme der Ordnung N
172
17 Lösungen zu den Versuchen
Zu M8.1 Siehe Programm lab8_1. Zu M8.2 Siehe Programm lab8_2, der Koeffizientenvektor der Funktion ist ein Spaltenvektor. Zu M8.3 Siehe Programm latcfir. Der Test geschieht durch Simulation der Impulsantwort, siehe lab8_3. Zu M8.4 Siehe Programm lab8_3. Die Überprüfung mit dem MATLAB-Werkzeug fvtool bestätigt die gemachten Aussagen. Die Impulsantworten hu[n] und hv[n] sind zueinander zeitlich gespiegelt. Die Betragsfrequenzgänge sind identisch. Der obere Ausgang liefert ein minimalphasiges Systems; der untere das dazu maximalphasige. Die Nullstellen des maximalphasigen reellwertigen Systems sind die am Einheitskreis gespiegelten Nullstellen des minimalphasigen Systems. Zu A8.5 Siehe MATLAB-Programm latcalp. % IIR filtering using all-pole lattice-structure filter % function [u,v] = latcalp(k,x) % x - input signal % k - lattice-structure coefficients % u,v - output signals (all-pole, all-pass) % latcalp.m * mw * 04/10/2007 function [u,v] = latcalp(k,x) Lx = length(x); % length of input signal N = length(k); % filter order u = zeros(1,Lx); v = zeros(1,Lx); % output signals s = zeros(1,N+1); % state variables s(i) = v_N-1 for n=1:Lx u1 = x(n); u0 = u1 - k(N)*s(N); % lattice structure v(n) = k(N)*u0 + s(N); for i=N-1:-1:1 u1 = u0; u0 = u1 - k(i)*s(i); s(i+1) = k(i)*u0 + s(i); end u(n) = u0; s(1) = u0; end
Zu A8.6 Für eine fortlaufende Simulation sind Blockgrenzeneffekte zu vermeiden, d. h. die Zustandsgrößen von Aufruf zu Aufruf zu speichern und zu übergeben. Zu M8.5 bis M8.8 Siehe Programm lab8_4.m. Die simulierten Impulsantworten des All-pole-Filters in Lattice-Struktur und mit dem MATLAB-Befehl filter stimmen im Rahmen der numerischen Genauigkeit überein. Der Betragsfrequenzgang bezüglich des unteren Ausganges mit dem Ausgangssignal vN[n] ist für alle normierten Kreisfrequenzen konstant 1. Ein System mit konstantem Betragsfrequenzgang wird Allpass genannt.
17.9 Lösung zu Versuch 9: Lattice-Strukturen für IIR-Systeme
17.9
173
Lösung zu Versuch 9: Lattice-Strukturen für IIR-Systeme
Zu M9.1 Siehe Programm lab9_1.m mit den Funktionen latcfilt, latcalp.m, latc1m.m, latc3m.m, latcnorm.m und latckl.m. Zu A9.1 Aus Bild 17-19 folgt mit (9.6) für die Ausgangsgrößen des Allpass-Systems 2. Ordnung
k2 U1 ( z ) z 1V1 ( z )
V2 ( z )
(17.37)
U1 ( z ) U 2 ( z ) k2 z 1V1 ( z )
Auflösen der zweiten Gleichung nach U2(z) und damit Division der ersten liefert die gesuchte Übertragungsfunktion H A,2 ( z )
V2 ( z ) U 2 ( z)
k2 U1 ( z ) z 1V1 ( z )
k2 z 1 V1 ( z ) U1 ( z )
U1 ( z ) k2 z 1V1 ( z )
1 k2 z 1 V1 ( z ) U1 ( z )
k2 z 1 H A,1 ( z )
(17.38)
1 k2 z 1 H A,1 ( z )
Nun kann die Übertragungsfunktion des Allpasses 1. Ordnung aus (9.5) eingesetzt werden. k2 z 1 H A,2 ( z )
k1 z 1 1 k1 z 1
k2 k1 1 k2 z 1 z 2
k1 z 1
1 k1 1 k2 z 1 k2 z 2
1
1 k2 z
(17.39)
1 k1 z 1
Zur Kontrolle des Ergebnisses wird (9.10) herangezogen. Das Nennerpolynom 2. Ordnung ist A2 ( z )
a0 a1 z 1 a2 z 2
1 k1 1 k2 z 1 k2 z 2
(17.40)
Daraus wird das Zählerpolynom in (9.10) bestimmt.
z 2 A2 z 1
z 2 k1 1 k2 z 1 k2
(17.41)
Der Vergleich mit Nenner und Zähler von HA,2(z) zeigt die Übereinstimmung.
U2(z) V2(z)
U1(z) –k2 k2
z–1
V1(z)
U0(z) –k1 k1
Bild 17-19 Allpass-System 2. Ordnung
z–1
V0(z)
174
17 Lösungen zu den Versuchen
Zu A9.2 Das zu untersuchende System mit drei Stufen, drei Teilübertragungsfunktionen, ist in Bild 17-20 dargestellt. X(z)=U3(z)
V3(z)
U2(z) –k3 k3
z–1
U1(z) –k2 k2
V2(z)
z–1
U0(z) –k1 k1
V1(z)
z–1
V0(z)
Bild 17-20 Allpass-System 3. Ordnung
Die erste Teilübertragungsfunktion in (9.13) ergibt sich aus dem Schaltungszwang V0(z) = U0(z). Damit ist sie gleich der Übertragungsfunktion des All-pole-Systems 3. Ordnung, siehe (8.21) für N = 3. Der Ansatz zur Berechnung der zweiten Teilübertragungsfunktion ist Bild 17-20 zu entnehmen. Es gilt k1 U 0 ( z ) z 1U 0 ( z )
V1 ( z )
k z U 1
1
0 ( z)
(17.42)
und somit
k z UX ((zz)) k z A 1( z)
V1 ( z ) X ( z)
1
1
0
1
1
(17.43)
3
Für die dritte Teilübertragungsfunktion entnehmen wir zunächst aus Bild 17-20 k2 U1 ( z ) z 1V1 ( z )
V2 ( z )
(17.44)
Nun kann U1(z) mit (9.5) ersetzt werden.
V2 ( z )
V ( z) k2 1 z 1V1 ( z ) H A,1 ( z )
k2 1 k1 z 1 z 1 k1 z 1 k1 z
1
V ( z) 1
(17.45)
Die Teilübertragungsfunktion resultiert wie in (9.13) V2 ( z ) X ( z)
k2 1 k1 z 1 z 1 k1 z 1 k1 z 1
Zu M9.2 Nennerkoeffizienten
k z 1
1
A3 ( z )
k2 k1 1 k2 z 1 z 2 A3 ( z )
a0 = 1, a1 = –0.9531, a2 = 0.8714, a3 = –0.2895
Zu M9.3 Reflexionskoeffizienten k1 = –0.4636, k2 = 0.6500, k3 = –0.2895
(17.46)
17.9 Lösung zu Versuch 9: Lattice-Strukturen für IIR-Systeme
175
Zu M9.4 Die Bestimmungsgleichungen der Koeffizienten der Leiterstruktur leiten sich von der Übertragungsfunktion H3 ( z)
Z ( z) A3 ( z )
(17.47)
mit dem Zählerpolynom (9.12) Z ( z)
v0 V0 ( z ) v1 V1 ( z ) v2 V2 ( z ) v3 V3 ( z )
v0 v1 k1 z 1 v2 k2 k1 >1 k2 @ z 1 z 2
v3 a3 a2 z 1 a1 z 2 a0 z 3
(17.48)
ab. Ausmultiplizieren und Sortieren nach den Potenzen von z–1 liefert
Z ( z)
v0 v1k1 v2 k2 v3 a3 ª¬v1 v2 k1 >1 k2 @ v3 a2 º¼ z 1 > v2 v3 a1 @ z 2 v3 a0 z 3
(17.49)
Mit dem vorgegebenen Zählerpolynom (Wunschzählerpolynom) Z ( z)
b0 b1 z 1 b2 z 2 b3 z 3
1 2.203 z 1 2.203 z 2 z 3
(17.50)
gilt v3
b3 a0
v2
b2 v3 a1
v1
b1 v2 k1 (1 k2 ) v3 a2
3.7458
v0
b0 v1k1 v2 k2 v3 a3
0.9748
1 3.1561
(17.51)
Zu M9.5 bis M9.7 Siehe Programme latclad.m und lab9_2.m. % IIR system in lattice-ladder structure % lab9_2.m * mw * 04/13/2007 %% Filter coefficients b = [1 2.203 2.203 1]; % denominator a = [1 -.9531 .8714 -.2895]; % numerator %% Ladder structure coefficients k = latca2k(a); % lattice coefficients v = zeros(1,4); % ladder coefficients v(4) = b(4)/a(1); v(3) = b(3) - v(4)*a(2); v(2) = b(2) - v(3)*k(1)*(1+k(2))-v(4)*a(3); v(1) = b(1) - v(2)*k(1) - v(3)*k(2) - v(4)*a(4); %% Impulse response x = [1 zeros(1,20)]; [uf,vf,y] = latclad(k,v,x); %% Impulse response - MATLAB functions
176
17 Lösungen zu den Versuchen
[K,V] = tf2latc(b,a); % reflection and ladder coefficients (MATLAB) [F,G] = latcfilt(K,V,x); % lattice-ladder structure (MATLAB) Y = filter(b,a,x); % direct form II (MATLAB) %% Compare system outputs fprintf('lab9_2 : System output signals\n') fprintf(' y[n] F[n] Y[n] : vf[n] G[n]\n') for n=0:10 fprintf('%7.4f %7.4f %7.4f : %7.4f %7.4f\n',y(n+1),F(n+1),Y(n+1),vf(n+1),G(n+1)) end
Bildschirmausgabe lab9_2 : y[n] 1.0000 3.1561 4.3397 2.6754 -0.3180 -1.3781 -0.2618 0.8592 0.6482 -0.2068 -0.5131
System output signals F[n] Y[n] : vf[n] 1.0000 1.0000 : -0.2895 3.1561 3.1561 : 0.5955 4.3397 4.3397 : -0.1333 2.6754 2.6754 : 0.2703 -0.3180 -0.3180 : 0.5461 -1.3781 -1.3781 : 0.2464 -0.2618 -0.2618 : -0.1628 0.8592 0.8592 : -0.2118 0.6482 0.6482 : 0.0113 -0.2068 -0.2068 : 0.1482 -0.5131 -0.5131 : 0.0701
G[n] -0.2895 0.5955 -0.1333 0.2703 0.5461 0.2464 -0.1628 -0.2118 0.0113 0.1482 0.0701
% IIR filtering using lattice-ladder structure filter % function [u,v,y] = latclad(k,c,x) % x - input signal % k,c - lattice, ladder coefficients % u, v - output signal (all-pole, all-pass) % y : output ladder structure % latclad.m * mw * 04/13/2007 function [u,v,y] = latclad(k,c,x) Lx = length(x); % length of input signal N = length(k); % filter order u = zeros(1,Lx); v = zeros(1,Lx); y = zeros(1,Lx); % output signals s = zeros(1,N); % state variables s(N) = v_N-1 for n=1:Lx u1 = x(n); u0 = u1 - k(N)*s(N); % lattice structure v(n) = k(N)*u0 + s(N); for i=N-1:-1:1 u1 = u0; u0 = u1 - k(i)*s(i); s(i+1) = k(i)*u0 + s(i); end u(n) = u0; s(1) = u0; y(n) = sum(c.*[s v(n)]); % ladder structure end
17.9 Lösung zu Versuch 9: Lattice-Strukturen für IIR-Systeme
177
Zu A9.3 Signalflussgraph mit Allpass-System 2. Ordnung in 1-Multiplizierer-Form
Eingangssignal x[n]
k2
1/2 Bandpass
k1
yHP[n]
Bandsperre
D
yBS[n]
D
Allpass 2. Ordnung Bild 17-21 Signalflussgraph mit Allpass-System 2. Ordnung in der 1-Multiplizierer-Form
Zu A9.4 Mit dem Allpass-System 2. Ordnung können Bandpässe und Bandsperren realisiert werden, siehe Bild 17-21. Zu M9.8 bis M9.10 Siehe Programm lab9_demo.m.. Zu M9.11 bis M9.13 Siehe Programm lab9_demo2.m. Es resultieren Bandpässe und Bandsperren. Mit dem Parameter D kann die Breite des Durchlassbereiches (3dB-Bandbreite) des Bandpasses bzw. des Sperrbereiches der Bandsperre eingestellt werden. Der Parameter E definiert die Lage des Durchlassbereiches bzw. der Lücke. Frequency responses - bandstop and bandpass filters 1
|H(f)| / Hbs (0) o
0.8 0.6 0.4 0.2 0
0
5
10
15
20
25
f in kHz o
Bild 17-22 Betragsfrequenzgänge der Filter mit dem Allpass-System 2. Ordnung in der 1-MultipliziererForm für D = 0.8 und E = 0.4 (lab9_demo2)
178
17 Lösungen zu den Versuchen original sound signal
x(t) o
1 0 -1
0
1
2
0
1
2
0
1
2
3
4
5 6 7 t in s o bandstop sound signal ( alpha = 0.8, beta = 0.4 )
8
9
3
4
8
9
3
4
8
9
y bs (t)] o
1 0 -1
5 6 7 t in s o bandpass sound signal ( alpha = 0.8, beta = 0.4 )
y bp(t) o
0.5 0 -0.5
5
6
7
t in s o
Bild 17-23 Audiosignale vor und nach der Filterung mit dem Allpass-System 2. Ordnung in der 1-Multiplizierer-Form für D = 0.8 und E = 0.4 (Abtastfrequenz 8.192 kHz, lab9_demo2)
17.10
Lösung zu Versuch 10: Lineare Prädiktion
Zu A10.1 Musterfunktionen eines Modellprozesses können generiert werden, indem ein unkorreliertes Rauschsignal, auch weißes Rauschen genannt, entsprechend gefiltert wird. Der MATLAB-Befehl randn(1,L)erzeugt L Werte einer Musterfolge eines normierten, weißen, normalverteilten Rauschprozesses. Für das Leistungsdichtespektrum (LDS) Sxx(:) und die Autokorrelationsfunktion (AKF) Rxx[l] des Prozesses gilt der Zusammenhang S xx (:)
N0 : l 2
N0 G [l ] mit V 2 2
Rxx [l ]
N0 2
(17.52)
Mit dem MATLAB-Befehl filter(b,a,x)wird die Filterung eines Signals x durch ein IIR-Systems mit den Zählerkoeffizienten b und Nennerkoeffizienten a vorgenommen. Für das LDS bzw. die AKF des Prozesses am Filterausgang gilt mit weißem Rauschen am Eingang S yy (:) R yy [l ]
S xx (:) H e j:
2
2
V 2 H e j:
Rxx [l ] Rhh [l ] V Rhh [l ]
2
(17.53)
17.10 Lösung zu Versuch 10: Lineare Prädiktion
179
Zu A10.2 Die AKF am Filterausgang ist gleich der Zeit-AKF der Impulsantwort. Mit dem MATLAB-Befehl impz(b,a,N)erhält man die ersten N Werte der Impulsantwort des Filters h[0], h[1], … , h[N–1]. Die Zeit-AKF Rhh[l] resultiert dann in hinreichender Näherung, falls die Länge N genügend groß gewählt wird, durch die Pseudo-Faltung der Impulsantwort mit sich selbst. Bei der Durchführung mit dem MATLAB-Befehl conv(h,flipud(h)) wird dazu einmal die Impulsantwort durch den MATLAB-Befehl flipud(h) zeitlich gespiegelt. Zu A10.3 Berechnung der MMSE-optimalen Koeffizienten für den Prädiktor 1. Ordnung mit Gleichungssystem, Lösung und MSE R[0] b0 b0
MSEopt
R[1]
R[1] R[0]
R[0] b0 R[1]
(17.54)
R[0] 2 R[1] 2 R[0]
den Prädiktor 2. Ordnung, siehe auch cramersche Regel § R[0] R[1] · § b0 · ¨ ¸¨ ¸ © R[1] R[0] ¹ © b1 ¹
b0
R[0] R[1] R[1] R[2]
R[0]
2
R[1]
MSEopt
2
, b1
§ R[1] · ¨ ¸ © R[2] ¹
R[0] R[2] R[1]
R[0]
2
R[1]
2
(17.55)
2
R[0] b0 R[1] b1 R[2]
Zu A10.4 Ein AR-Modell N-ter Ordnung besitzt nur Pole, d. h., die Übertragungsfunktion ist H AR ( z )
1 N
¦ ai z i
(17.56)
i 0
Ein FIR-Filter N-ter Ordnung besitzt nur Nullstellen, d. h., die Übertragungsfunktion ist N
H FIR ( z )
¦ bi z i
(17.57)
i 0
Gilt ai
bi
i
0: N
(17.58)
180
17 Lösungen zu den Versuchen so liefert die Kaskade der Übertragungsfunktionen H AR ( z ) H FIR ( z ) 1
(17.59)
Die beiden Übertragungsfunktionen sind zueinander invers. Zu M10.1 bis M10.5 AKF, Filterung und Prädiktion 1. und 2. Ordnung ) siehe Programm lab10_1.m für ausführliche grafische Darstellungen und die nachfolgende Textausgabe lab5_10 : Prediction coefficients and error signal power 1st order : b0 = 0.788526 ; MSEopt = 0.378472 2nd order : b0 = 1.3168 ; b1 = -0.669952 ; MSEopt = 0.2086 estimated mean signal power white noise : Ryy[0] = 1.00968 colored noise: Rxx[0] = 1.01051 estimated mean prediction error power 1st order : Ree[0] = 0.384548 2nd order : Ree[0] = 0.212626
Zu M10.6 MSE als konkave Funktion ) siehe Programm lab10_2.m für ausführliche grafische Darstellungen. Zu M10.7 Prädiktion höherer Ordnung, Prädiktionsgewinn ) siehe Programm lab10_3.m für ausführliche grafische Darstellungen und die nachfolgende Textausgabe. Lab10_3 mw 04/18/2007 prediction coefficients b(0) = 2.12013 b(1) = -2.63495 b(2) = 2.4092 b(3) = -1.74346 b(4) = 0.938281 b(5) = -0.29424 minimum MSE for m = 1 : MSEopt = 0.102022 prediction gain : Gp = 9.80167 estimated mean signal powers innovation : Rww[0] = 0.996744 model process: Rxx[0] = 0.970783 model process: Ree[0] = 0.100722
Tabelle 17-11 Abhängigkeit des Prädiktionsgewinns Gp von der Ordnung p des MSE-optimalen Prädiktors für das Prozessmodell 2. Ordnung in A10.1 p
1
2
3
4
5
6
7
8
9
10
15
20
Gp
2.64
4.80
6.54
7.89
8.95
9.80
10.5
11.1
11.6
12.0
13.4
14.2
17.11 Lösung zu Versuch 11: LD-Algorithmus u. linearer Prädiktor in Lattice-Struktur
181
Anmerkung: N = 40, Gp = 15.5
Bei einem Prädiktionsgewinn von 16 (12 dB) können nach der 6dB-pro-Bit-Regel 2 Bit an Wortlänge zur Signaldarstellung eingespart werden. Der Prädiktionsgewinn ist abhängig von der Korrelation des Signals. Für die Sprach- und Audiocodierung ist die durch lineare Prädiktion allein erzielbare Kompression der Daten eher gering.
Prediction gain Gp in dB o
12
10
8
6
4
0
5
10
15 20 25 Prediction order p o
30
35
40
Bild 17-24 Prädiktionsgewinn Gp über der Ordnung p des Prädiktors (Tabelle 17-11)
17.11
Lösung zu Versuch 11: LD-Algorithmus u. linearer Prädiktor in Lattice-Struktur
Zu A11.1 und 2 Prädiktor 1. Ordnung, siehe Bild 17-25 mit den zugehörigen Impulsantworten, siehe auch A10.3 he [n] {1, b0
r 1 } {1, k r0
r 1} r0
(17.60)
Anmerkung: Wie im Bild 17-25 sichtbar wird, unterscheiden sich beim Prädiktor 1. Ordnung die beiden Strukturen nicht. x[n]
D
x[n] –b0
e[n] D
e[n]
k
Bild 17-25 Prädiktor 1. Ordnung als transversales FIR-Filter (links) und in Lattice-Struktur (rechts)
Zu A11.3 und 4 Prädiktor 2. Ordnung, Bild 17-26 mit den zugehörigen Impulsantworten, siehe auch A10.3 he [n] {1, b0
r0 r1 r1r2 r02 r12
, b1
r0 r2 r12 r02 r12
} {1, k1 1 k2 , k2 }
(17.61)
182
17 Lösungen zu den Versuchen Aus dem Vergleich der Impulsantworten folgt k2
b1
k1
b0 1 b1
r02 r12
D
x[n]
r0 r2 r12
(17.62)
r1 r0
D -b1
-b0
e[n]
x[n]
e[n] k1
D
k2
D
Bild 17-26 Prädiktor 2. Ordnung als transversales FIR-Filter (oben) und in Lattice-Struktur (unten)
Zu A11.5 Prädiktor 2. Ordnung, Levinson-Durbin-Algorithmus Für den Prädiktor 2. Ordnung folgt mit p = 2 für die erste Stufe nach (11.25) mit D1(1) = k1 = –r1/r0 aus (11.26) q (1)
r2 D1(1) r1
E (1)
r0
k2
r1 r1 r0
q (1) E (1)
r2
r1 r1 r0
r2 r0 r12
r02 r12
(17.63)
r2 r0 r12 r02 r12
Für die Prädiktionskoeffizienten folgt aus (11.26)
D 0(2)
1
D1(2)
D1(1) k2D1(1)
D 2(2)
k2
k1 1 k2
b0
(17.64)
b1
Zu M11.1 Simulation mit dem MATLAB-Befehl latcfilt und den Reflexionskoeffizienten k1 und k2 aus A11.2 bzw. A11.4. Die Simulationsergebnisse stimmen mit denen aus Versuch 10 überein ) siehe Programm lab11_1.m. Zu M11.2 und 3 Levinson-Durbin-Algorithmus ) siehe Programm lev_dur.m und SignalProcessing-Toolbox-Funktion levinson Für die Simulation ) siehe Programm lab11_2.m.
17.11 Lösung zu Versuch 11: LD-Algorithmus u. linearer Prädiktor in Lattice-Struktur
183
Für den Prädiktor 7. Ordnung ergibt sich mit 10.5 dB der gleiche Prädiktionsgewinn wie in Versuch 10, siehe Tabelle 17-11. % Levinson-Durbin-algorithm % r acf sequence [r_o, r_1, r_2,..., r_p-1] % p prediction order % k reflection coefficients % lev_dur.m * mw * 08/22/2006 function k = lev_dur(r,p); alpha = zeros(p,p); alpha(1,1) = -r(2)/r(1); E = zeros(p,1); E(1) = r(1) + alpha(1,1)*r(2); q = zeros(p,1); q(1) = r(3) + alpha(1,1)*r(2); k = zeros(p,1); k(1) = alpha(1,1); for m=2:p k(m) = -q(m-1)/E(m-1); E(m) = E(m-1)*(1-k(m)^2); for i=1:m-1 alpha(m,i) = alpha(m-1,i) + k(m)*alpha(m-1,m-i); end alpha(m,m) = k(m); q(m) = r(m+2); for n=1:m q(m) = q(m) + alpha(m,n)*r(m-n+2); end end
Zu M11.4 All-pole-Modellsystem ) siehe Programm lab11_3.m Im Falle eines All-pole-Systems 2. Ordnung als Modellsystem kann bei der linearen Prädiktion mit Ordnungen größer als zwei keine Verbesserung mehr erzielt werden. Der Prädiktor 2. Ordnung ist bereits optimal, siehe inverses Filter. Die Prädiktionskoeffizienten b3, b4 usw. werden im Rahmen der numerischen Genauigkeit null. Gleiches gilt für die Reflexionskoeffizienten, sodass bei einer iterativen Berechnung mit dem Levinson-Durbin-Algorithmus entsprechend abgebrochen werden kann. Zu M11.5 und M11.6 Prädiktion eines Audiosignals ) siehe Programm lab11_4.m mit unten stehender Textausgabe und Grafikausgabe in Bild 17-27 Für das Sprachsignal speech.wav ergibt sich ein relativ hoher Prädiktionsgewinn da bei der Abtastfrequenz von 16 kHz die benachbarten Abtastwerte relativ stark korreliert sind. Bei Telefonsprache beträgt die Abtastfrequenz nur 8 kHz, wie auch beim Audiosignal handel.wav. Bei letzterem lassen sich nur wesentlich geringere Prädiktionsgewinne erzielen; im Beispiel ca. 3.4. Da die Restsignale, Prädiktionsfehler, gut verständlich sind, ist anzunehmen, dass noch ein wesentlicher Redundanzanteil im Restsignal verbleibt. Die lineare Prädiktion, angepasst auf Signalausschnitte der Dauer von ca. 1 s, ist zur Kompression von Telefonsprach- und Musiksignalen wenig geeignet.
184
17 Lösungen zu den Versuchen
Bildschirmanzeige des Programms lab11_4 für die Audiodatei speech.wav lab11_4 : Reflection coefficients k1 = -0.982861 k2 = 0.47298 k3 = 0.16021 k4 = 0.218412 k5 = 0.179777 k6 = 0.37979 k7 = 0.0129872 Audio signal Rxx[0] = 0.031681 Residual signal Ree[0] = 0.00064467 Prediction error E = 0.000642065 Prediction gain Gp = 16.9146 dB
Audio signal (original)
ACF 1 Rxx (W) / Rxx (0) o
1
x(t) o
0.5 0 -0.5 -1
0
0.5
1 1.5 t in s o Prediction error
2
e(t) o
0.2 0 -0.2 -0.4
0
0.5
1 1.5 t in s o Audio signal (restored)
2
0.5 y(t) o
-0.5
0
5
10 15 W in ms o ACF
20
25
0
5
10 15 W in ms o ACF
20
25
0
5
10 15 W in ms o
20
25
0.02 0.01 0 -0.01
1 Ryy (W) / Rxx (0) o
1
0 -0.5 -1
0
0.03 Ree(W) / Rxx (0) o
0.4
0.5
0
0.5
1 t in s o
1.5
2
0.5 0 -0.5
Bild 17-27 Grafische Ausgaben des Programms lab11_4.m mit dem Sprachsignal x(t), der geschätzten AKF des Audiosignals Rxx(W), dem Restsignal e(t) und der geschätzten AKF Ree(W) für die Prädiktion mit Ordnung p = 7, sowie das restaurierte Audiosignal y(t) mit seiner geschätzten AKF (speech.wav, Abtastfrequenz fs = 16 kHz, digitale Simulation)
Zu M11.7 Der Befehl lpc fasst im Wesentlichen die beiden MATLAB-Befehle xcorr und levinson zusammen.
17.12 Lösung zu Versuch 12: Entwurf von nichtrekursiven Entzerrer
185
17.12
Lösung zu Versuch 12: Entwurf von nichtrekursiven Entzerrer
A12.1
Entwurf des FIR-Entzerrers bei Impulserregung Zum Bild 12-1 werden die folgenden Signale definiert: das Testsignal als Impuls, die rechtsseitige Impulsantwort und das Referenzsignal als verzögerter Impuls. x[n] G [n] u[n] h[n]
mit
d [ n ] G [ n m]
für 0 d m K
h[n] 0 n 0
(17.65)
Damit ist die Hilfsfunktion rdu (vgl. Kreuzkorrelation) gleich der verschobenen und zeitlich invertierten Impulsantwort
rdu [n]
K 1
K 1
k 0
k 0
¦ d [k ] u[k n] ¦ G [k m] h[k n]
h[m n] für 0 d n < N
(17.66)
also
rdu
§ rdu [0] · ¨ ¸ ¨ rdu [1] ¸ ¨ # ¸ ¨ ¸ © rdu [ N ] ¹
§ h[m] · ¨ ¸ ¨ h[m 1] ¸ ¨ ¸ # ¨ ¸ © h[m N ] ¹
(17.67)
Für die Hilfsfunktion ruu (vgl. Autokorrelation) gilt Entsprechendes ruu [m, n]
K 1
¦ h[k m] h[k n]
für 0 d n, m < N
(17.68)
k 0
mit ruu [0, 0]
ruu [1, 0]
K 1
K 1
k 0
k 0
¦ h[k ] h[k ] ¦ h2 [k ]
K 1
¦ h[k 1] h[k ]
k 0
ruu [1,1]
K 1
¦ h[k 1] h[k 1]
k 0
Rhh [0]
f
¦ h 2 [k ]
k K
h0 h1 h1h2 " hK 2 hK 1 h02 h12 " hK2 2
ruu [0,1]
(17.69)
ruu [0, 0] hK2 1
usw. Damit sind alle Größen bekannt, um den TSE in MATLAB in Matrix-Vektorform anzugeben und das Gleichungssystem bezüglich der Entzerrerkoeffizienten zu lösen. A12.2
Die Blocklänge K ist so groß zu wählen, dass alle wesentlichen Anteile der Impulsantwort erfasst werden.
186
17 Lösungen zu den Versuchen
Zu M12.1 ) siehe Programm lab12_1.m. Impulse response (channel)
Frequency response (channel)
0 -1
2
|H(ej: )| o
h[n] o
1
0
2
4
6
8
1 0
10
0
no Impulse response (equalizer)
4
6
8
0
10
0
6
8
b[n] o v[n] o
0.6
0.8
1
2
|V(ej: )| o
4
0.4
Frequency response (cascade)
0 2
0.2
: / So
1
0
1
2
no Impulse response (cascade)
-1
0.8
4
|B(ej: )| o 2
0.6
Frequency response (equalizer)
0 0
0.4
: / So
2
-2
0.2
1 0
10
0
0.2
no
0.4
0.6
0.8
1
: / So
Bild 17-28 Grafische Darstellungen des Programms lab12.1 zu Bild 12-1 mit den Zeitsignalen links und zugehörigen Betragsspektren rechts für die Entzerrerordnung 3 und System H1(z)
Impulse response (channel)
Frequency response (channel) 2 |H(ej: )| o
h[n] o
1 0.5 0 -0.5
0
10
20
1 0
30
0
no Impulse response (equalizer) |B(ej: )| o
b[n] o
0.8
1
Frequency response (equalizer)
0
10
20
5 0
30
0
no Impulse response (cascade)
0.2
0.4
0.6
0.8
1
: / So Frequency response (cascade) 1.1 |V(ej: )| o
1 v[n] o
0.6
10
0
0.5 0 -0.5
0.4
: / So
2
-2
0.2
0
10
20 no
30
1 0.9
0
0.2
0.4
0.6
0.8
1
: / So
Bild 17-29 Grafische Darstellungen des Programms lab12.1 zu Bild 12-1 mit den Zeitsignalen links und zugehörigen Betragsspektren rechts für die Entzerrerordnung 30 und System H1(z)
17.12 Lösung zu Versuch 12: Entwurf von nichtrekursiven Entzerrer
187
Zu M12.2 siehe Tabelle 17-12, ) siehe Programm lab12_1.m Tabelle 17-12 Totaler quadratischer Fehler (TSE) in Abhängigkeit von der Entzerrerordnung p und die maximale Abweichung vom Wunschbetragsfrequenzgang (lab12.1.m) mit System H1(z) p
1
2
3
4
5
6
7
8
9
TSEopt
0.67
.31
.30
.17
.17
.099
.098
.061
.061
dmax
.94
.84
.84
.74
.74
.64
.64
.54
.54
p
10
20
TSEopt
.038
.0044
dmax
.46
.19
30 5.3 10
40 –3
3.1 10–5
.07
.02
0
10
-1
TSEopt (+) , d (o) o
10
-2
10
-3
10
-4
10
-5
10
0
10
1
10 po
2
10
Bild 17-30 Totaler quadratischer Fehler (TSE) und maximale Abweichung vom Wunschverlauf des Betragsfrequenzgangs (d) in Abhängigkeit von der Ordnung des Entzerrers für das System H1(z), siehe Tabelle 17-12 (TSEplot.m)
Zu M12.3 Das System mit H2(z) besitzt ein konjugiert komplexes Nullstellenpaar bei z01,2 = r j und ist somit nicht invertierbar. Trotzdem kann ein FIR-Entzerrer sinnvoll eingesetzt werden. Im Beispiel wird für die Ordnung 30 des Entzerrers der Betragsfrequenzgang im Bereich von 0 bis 0.9S näherungsweise entzerrt.
188
17 Lösungen zu den Versuchen
Impulse response (channel)
Frequency response (channel) 2
0.5
|H(ej: )| o
h[n] o
1
0 -0.5
0
10
20
1.5 1 0.5 0
30
0
no Impulse response (equalizer)
|B(ej: )| o
b[n] o
0.8
1
Frequency response (equalizer)
0 -20 0
10
20
400 200 0
30
0
no Impulse response (cascade) 1.5
0.5
1
0
10
20 no
0.4
0.6
0.8
1
Frequency response (cascade)
1
0
0.2
: / So
|V(ej: )| o
v[n] o
0.6
600
20
-0.5
0.4
: / So
40
-40
0.2
30
0.5 0
0
0.2
0.4
0.6
0.8
1
: / So
Bild 17-31 Grafische Darstellungen des Programms lab12.1 zu Bild 12-1 mit den Zeitsignalen links und zugehörigen Betragsspektren rechts für die Entzerrerordnung 30 und System H2(z) (M12.3)
Zu M12.4 Bestimmung der Koeffizienten des Entzerrers für ein weißes Rauschsignal als Testsignal siehe Programm lab12_2.m und Bild 17-32. Das Beispiel in Bild 17-32 zeigt, dass für eine Länge der Testfolge von K = 1024 die Einstellung der Entzerrerkoeffizienten mit dem Kriterium des TSE erfolgreich durchgeführt werden kann, siehe Impulsantwort und Betragsfrequenzgang des Entzerrers.
17.12 Lösung zu Versuch 12: Entwurf von nichtrekursiven Entzerrer
short-time estimate of PDS (channel input)
0
10
20
30 no Channel output signal
40
50
u[n] o
0
0
10
20
30 40 no Impulse response (equalizer)
50
5
10 15 no Equalizer output signal
20
10
20
30
b[n] o v[n] o
0.4
0.6
0.8
50 0 -50
0
0.2
0.4
0.6
0.8
0 -20
0
0.2
0.4
0.6
0.8
40
50
0 -50
0
0.2
0.4
0.6
0.8
: / So
Zu M12.5 ) siehe Programm lab12_3.m.
s[n] o
1 0.5
0
5
10
15
20 no
25
30
35
40
0
5
10
15
20 ko
25
30
35
40
0
5
10
15
20 no
25
30
35
40
y[n] o
2 1
v[n] o
2 1 0 -1
1
50
Bild 17-32 Bestimmung der Koeffizienten des FIR-Entzerrers mit weißem Rauschen als Testsignal (lab7_2.m, p = 20, H1(z), K = 1024)
0
1
20
no
0
1
short-time estimate of PDS (equalizer output)
0
0
0.2
: / So
5
-5
0
Frequency response (equalizer)
0
0
-50
: / So
2
-2
0
short-time estimate of PDS (channel output)
5
-5
50
: / So Suu(: ) in dB o
0
|B(ej: )| in dB o
-5
Svv (: ) in dB o
x[n] o
5
Sxx (: ) in dB o
Channel input signal
189
Bild 17-33 Entzerrung eines gefilterten OOK-Signals mit einem FIR-Entzerrer der Ordnung 10 (lab7_3.m, p = 10, H1(z), K = 40)
1
190
17 Lösungen zu den Versuchen
%% Design of FIR equalizer % design of TSE optimum non-recursive linear equalizer (FIR) % [b,TSE] = design_fir_equalizer(x,u,p) % x - test signal (length(x) >= p required) % u - output signal % p - order of FIR equalizer % b - coefficients of FIR equalizer % TSE - total-squared error % functions lab12_rxx.m and lab12.rxy.m are required % ** design_fir-equalizer.m * mw * 05/04/2007 function [b,TSE] = design_fir_equalizer(x,u,p) %% Empirical acf and ccf rr = zeros(p,p); % time autocorrelation matrix for m=0:p-1 rr(1+m,1+m) = lab12_rxx(m,m,u); for n=m+1:p-1 rr(1+m,1+n) = lab12_rxx(m,n,u); rr(1+n,1+m) = rr(1+m,1+n); end end r = zeros(p,1); % time crosscorrelation function for n=0:p-1 r(1+n) = lab12_rxy(n,x,u); end b = rr\r; % equalizer coefficients rr^-1 * r TSE = lab12_rxx(0,0,x) - b'*r; % mean power of prediction error % function rxx = lab12_rxx(m,n,x) % m,n : shift factors 0