Folien

Werbung
Einfluss endlicher Wordlänge
bei IIR-Filtern
1
y[n ] 
L1
M 1
 b x[n  k ]   a
k 0
k
m 1
m
y[n  m ]
L1
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 z1  bk 2 z2
H ( z )  G H k ( z )  G
1
 ak 2 z2
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.90e2 ,
(2)
1
2
1
4
e2 (n )
q22  3.16e2 ,
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
Herunterladen