Einfluss endlicher Wordlänge bei IIR-Filtern 1 y[n ] L1 M 1 b x[n k ] a k 0 k m 1 m y[n m ] L1 H (z ) k b z k k 0 M 1 1 am z m m 0 Koeffizienten a und b brauchen hohe Genauigkeit. SOS eines Cauer-Filters 9. Ordnung b02 1 b12 -1.114274521674663 b22 1 1 1 a12 1.880474185557961 a22 0.8993108224 2 Fehler durch endliche Genauigkeit • Quantisierungsfehler bei der A/D-Wandlung • Quantisierungsfehler durch begrenzte Koeffizientenwortlänge • Überlauffehler durch begrenzte Registerlänge bei der Addition • Rundungsfehler bei der Begrenzung der Wortlänge nach der Multiplikation 3 Fehler hängen ab von • Wortlänge und Rechenoperation • Quantisierungsmethode • Filterstruktur 4 Quantisierungsfehler Koeffizienten Magnitude Response (dB) 0 Filter #1 Magnitude (dB) -10 Filter #2: Quantized Filter #2: Reference -20 -30 -40 -50 0 0.1 0.2 0.3 0.6 0.7 0.4 0.5 Normalized Frequency ( ×π rad/sample) 0.8 0.9 Cauerfilter 8. Ordnung rot unquantisiert grün quantisiert auf 8 bit 5 Quantisierungsfehler Koeffizienten Impulse Response Filter #1: Quantized Filter #1: Reference 0.015 Q: 6 bit 0.01 Amplitude 0.005 0 -0.005 -0.01 -0.015 0 5 10 15 20 Samples 25 30 35 6 DF I • Nur ein Addierer (Quantisierungspunkt) • Kein interner Knoten • Overflow selbstkorrigierend oder behandelt • Eingang mit b0 skaliert 7 DF II • Die Pole der vorgeschalteten Feedback-Stufe verstärken das Rauschen stärker als DF I • Zwei Addierer (Quantisierungspunkte) • Ausgang Feedbackstufe = interner Knoten bei dem Overflow auftreten kann. • Eingang nicht skaliert 8 Kaskadierung bk 0 bk 1 z1 bk 2 z2 H ( z ) G H k ( z ) G 1 ak 2 z2 k 1 k 1 1 ak 1 z K K Bei höherer Ordnung gibt es zahlreiche Möglichkeiten der Zuordnung von Polen und Nullstellen und des konstanten Faktors zu den Kaskaden. P. Davis, M. K. Ibrahim and R Hearing: Using MATLAB to ANALYSE FINITE WORD LENGTH EFFECTS IN INFINITE IMPULSE RESPONSE DIGITAL FLTERS 9 Parallelschaltung Anordnung ohne Einfluss 10 Grenzzyklen Ausgang x[n] w1n] b10 y[n] z –1 Eingang a11 b11 z –1 a12 Die Addition von zwei oder mehreren großen Zahlen gleichen Vorzeichens kann zu Overflow führen. In 2er-Komplement-Darstellung würde aus einer sehr großen positiven Zahl eine sehr große negative Zahl. b12 Durch die Rückkoppelung des großen w1[n 1] und w1[n 2] kann es zu unerwünschten Signalschwingungen (Grenzzyklen) kommen, die möglicherweise nur durch Reset des Filters beendet werden können. 11 Addition mit Begrenzung Ausgang Eingang Addierer mit Begrenzungsfunktion: Vermeidet zwar Grenzzyklen, aber die Skalierung der Eingangssignale ist dennoch erforderlich, um das (nichtlineare) Begrenzen zu vermeiden. 12 Skalierung w1[n] 1/s1 s1b10 y[n] x[n] z –1 s1b11 a11 Skalierung mit s1, Gesamtverstärkung unverändert, da Zählerkoeffizienten mit s1 multipliziert. z –1 a12 s1b12 Skalierung vermeidet Overflow schlechteres Signal-Rausch-Verhältnis Verstärkung von Eingang bis w1 bleibt 1 kein Overflow 13 Skalierung sk k 0 hk (k ) sk n hk (n ) sk max H k (w ) 0 2 L1-Norm L2-Norm L∞-Norm 14 2 hk (n ) max H k () hk (n ) n n L -Norm L2 -Norm L1 -Norm Filter höherer Ordnung werden häufig durch Kaskadierung von Filtern 2. Ordnung realisiert. Die Skalierungsfaktoren sind dann für jede Kaskade zu ermitteln (Entwurfsprogramme). Die MATLAB-Funktion zp2sos unterstützt scaling (L2- und L∞-Norm) und ordering. 15 Statistische Verfahren Analyse von Quantisierungsfehlern durch deterministische Modelle ist auf Grund der (nichtlinearen) Produktquantisierung und des Abschneidens beim Summenüberlauf nicht zielführend. Quantisierungsfehler als zusätzliche Rauschquellen modelliert (lineares Model) v(n ) x (n ) z –1 a e(n ) 16 Vereinfachungen • Fehlerfolge gleichverteilt • Fehlerfolgen stationäres weißes Rauschen und daher unkorreliert • Fehlerfolge unkorreliert mit der Eingangsfolge • Mittelwert Null, Varianz: 2b 2 12 2 e 17 Vereinfachtes Modell v(n ) y(n ) q(n ) y(n ) q(n ) ay(n 1) aq(n 1) x (n ) e(n ) v(n ) x (n ) z –1 a e(n ) y(n ) ay(n 1) x (n ) q(n ) aq(n 1) e(n ) q2 e2 k 2 2 h (k ) Parseval e 2 H ()2d 18 Beispiel IIR 1. Ordnung h(n ) a n 1(n ) q2 e2 a 2k k 0 Faktor 1 / (1 a 2 ) 2 e 1 a 2 Je näher Pol dem Einheitskreis, desto größer der Faktor. 19 »Regeln« für Kaskadierung • Pole und Nullstellen nahe dem Einheitskreis zusammenfassen Verstärkung Kaskade klein • Kaskaden in Reihenfolge der abnehmenden maximalen Verstärkung anordnen Rauschleitung der Vorstufen nicht signifikant von den Folgestufen verstärkt 20 Beispiel y(n ) x (n ) z –1 z –1 (1) 1 4 1 2 e2 (n ) e1(n ) y(n ) x (n ) z –1 z –1 e1(n ) q21 2.90e2 , (2) 1 2 1 4 e2 (n ) q22 3.16e2 , q22 2 q1 1.09 21 Grenzzyklen durch Produktrundung 0.04 0.04 0.035 0.03 0.03 Amplitude Amplitude 0.02 0.025 0.02 0.01 0.015 0 0.01 -0.01 0.005 0 0 5 10 15 20 Zeit y[n ] 0.6 y[n 1] 0.04 0 [n ], y[1] 0 -0.02 0 5 10 Zeit 15 y[n ] 0.6 y[n 1] 0.04 0 [n ], 20 y[1] 0 22