Kapitel 4: Digitale Systeme

Transcription

Kapitel 4: Digitale Systeme
ZHAW, DSV1, FS2009, Rumc, 4-1
Kapitel 4: Digitale Systeme
Inhaltsverzeichnis
4.1. EINLEITUNG.....................................................................................................................2
4.2. LTD-SYSTEME .................................................................................................................3
4.3. DIFFERENZENGLEICHUNG............................................................................................3
4.4. IMPULSANTWORT UND FALTUNGSSUMME ................................................................5
4.5. Z-TRANSFORMATION .....................................................................................................7
4.6. ÜBERTRAGUNGSFUNKTION........................................................................................10
4.7. REALISIERUNGSSTRUKTUREN...................................................................................13
4.8. NICHTIDEALITÄTEN ......................................................................................................17
4.9. BEISPIEL „FESTKOMMA-REALISIERUNG EINES IIR-FILTERS“ .................................20
4.10. ANHANG MATLAB SPT-FUNKTIONEN .......................................................................22
4.11. ANHANG KORRELATION ............................................................................................24
Literatur- bzw. Quellenverzeichnis
[1]
M. Meier: „Signalverarbeitung“, ISBN 3-528-16955-9, Vieweg Verlag, Oktober 2000.
[2]
A.V. Oppenheim, R.W. Schafer, J. R. Buck: „Zeitdiskrete Signalverarbeitung“,
2., überarbeitete Auflage, ISBN 3-8273-7077-9, Pearson Studium, 2004.
ZHAW, DSV1, FS2009, Rumc, 4-2
4.1. Einleitung
Ein digitales System transformiert eine zeitdiskrete (oder digitale) Eingangszahlenfolge
mit Hilfe eines Algorithmus in eine zeitdiskrete (oder digitale) Ausgangszahlenfolge, siehe
Abbildung 4-1.
zeitdiskrete
Zahlenfolge
x[n]
Digitales System
(Digitalfilter)
y[n]
zeitdiskrete
Zahlenfolge
Abbildung 4-1: Digitales System.
In der digitalen Signalverarbeitung verwendet man statt dem Begriff „digitales System“ oft
auch den Begriff „Digitalfilter“, auch wenn die Filterfunktion nicht im Vordergrund steht.
Digitale Systeme haben gegenüber analogen Systemen grosse Vorteile, siehe [1]:
•
Reproduzierbarkeit: Das Systemverhalten wird durch exakte numerische Werte und nicht
durch Schaltungskomponenten bestimmt, deren Werte innerhalb eines Produktionsloses
streuen, mit der Zeit altern und/oder mit der Temperatur driften.
•
Flexibilität: Die numerischen Parameter lassen sich einfach modifizieren (konfigurieren)
oder im Betrieb sogar verändern (adaptive Systeme).
•
Vorhersagbarkeit: Das digitale System kann in der Entwurfsphase sehr gut simuliert und
in der Realisierungsphase dann „1:1“ implementiert werden.
•
Komplexität: Dank der Reproduzierbarkeit und der Vorhersagbarkeit können mit digitalen
Systemen komplexe Algorithmen realisiert werden.
•
Integrierbarkeit: In einem digitalen System werden oft mehrere Anwendungen integriert.
Natürlich gibt es auch Nachteile:
•
Geschwindigkeit: Auch wenn die digitale real-time Signalverarbeitung grosse Fortschritte
macht, ist sie im Vergleich zur analogen Signalverarbeitung langsam. Filter bei hohen
Frequenzen werden nach wie vor analog realisiert.
•
Preis: Für eine einzelne, einfache Anwendung ist die analoge Lösung kostengünstiger.
In diesem Kapitel werden nur lineare, zeitdiskrete und zeitinvariante Systeme, sogenannte
linear, time-invariant, discrete bzw. LTD-Systeme, betrachtet. Die Beschreibung im Zeit- und
im Frequenzbereich ist eng mit der Beschreibung der analogen, linearen Systeme verwandt.
Im Folgenden wird der Einfachheit halber die diskrete Zeit statt mit (nTs) nur noch mit [n]
dargestellt, solange klar ist, wie gross die Abtastperiode Ts ist.
ZHAW, DSV1, FS2009, Rumc, 4-3
4.2. LTD-Systeme
Für ein lineares, zeitdiskretes System gilt das Superpositionsprinzip:
aus x1[n] → y1[n] und x2[n] → y2[n] folgt: c1·x1[n] + c2·x2[n] → c1·y1[n] + c2·y2[n].
Diskrete Systeme bezeichnet man als zeitinvariant, wenn 2 gleiche, aber um k Abtastperioden zeitverschobene Eingangsfolgen in 2 gleiche, um k Abtastperioden zeitverschobene
Ausgangsfolgen transformiert werden:
x[n] → y[n] => x[n-k] → y[n-k] für alle k.
Die Zeitinvarianz bedeutet, dass die Systemparameter bzw. -koeffizienten konstant bleiben.
Ein LTD-System bezeichnet man als kausal, wenn der n-te Eingangswert x[n] nur den
aktuellen Ausgangswert y[n] und die zukünftigen Ausgangswerte y[n+1], ... beeinflusst.
Ein LTD-System bezeichnet man als stabil, wenn es beschränkte Eingangsfolgen (Ix[n]I<∞
für alle n) in beschränkte Ausgangsfolgen transformiert.
4.3. Differenzengleichung
Ein lineares, zeitinvariantes, analoges System kann mit einer Differentialgleichung vollständig beschrieben werden.
Ein LTD-System hingegen kann mit einer Differenzengleichung vollständig beschrieben
werden. Das soll an einem kleinen Beispiel demonstriert werden.
Beispiel
Das in Abbildung 4-2 dargestellte analoge RC-Tiefpass-Filter kann mit der folgenden
Differentialgleichung vollständig beschrieben werden
τ⋅
dy(t)
+ y(t) = x(t) .
dt
R
b0
τ = RC
y[n]
x[n]
x(t)
C
y(t)
Ts
-a1
Abbildung 4-2: Analoges RC-Tiefpass-Filter und digitales Approximationsfilter.
Die Differentialgleichung kann digital approximiert werden, indem man die kontinuierliche
Zeit t durch die diskrete Zeit nTs ersetzt und für die Ableitung z.B. die folgende Näherung
verwendet,
dy(t)
1
≈
[y(nTs ) − y((n − 1)Ts )] .
dt
Ts
ZHAW, DSV1, FS2009, Rumc, 4-4
Das resultierende digitale Approximationsfilter kann jetzt mit der Differenzengleichung
y[n] = b 0 ⋅ x[n] − a1 ⋅ y[n − 1]
beschrieben werden, wobei b0=Ts/(Ts+τ) und a1=b0-1.
In Abbildung 4-2 ist das Blockschaltbild des digitalen Approximationsfilters dargestellt.
Es enthält alle Realisierungselemente eines LTD-Systems, nämlich einen Multiplikator
mit einer Konstanten, einen Addierer und ein Verzögerungsglied (mit Ts bezeichnet).
Die allgemeine Form der Differenzengleichung eines LTD-Systems lautet
N
M
k =0
k =1
y[n] = ∑ b k ⋅ x[n − k] − ∑ a k ⋅ y[n − k] .
(4.1)
In Abbildung 4-3 ist das zugehörige Blockdiagramm dargestellt.
x[n-1]
x[n]
Ts
b0
x[n-N]
...
Ts
bN-1
b1
bN
...
-aM
-aM-1
Ts
y[n-M]
y[n]
-a1
...
Ts
y[n-1]
Abbildung 4-3: Blockdiagramm eines LTD-Systems (ausgezogen: nicht-rekursiver
bzw. Feed-Forward-Teil, gestrichelt: rekursiver bzw. Feed-Back-Teil).
Man unterscheidet zwei Klassen von LTD-Systemen:
•
Nichtrekursive LTD-Systeme
Alle Koeffizienten ak, k=1,...,M, in der Differenzengleichung (4.1) sind Null. Der in Abbildung 4-3 gestrichelt dargestellte Teil fällt weg. Der Ausgangswert y[n] hängt nur vom
aktuellen Eingangswert x[n] und den N letzten Eingangswerten x[n-1], ..., x[n-N] ab. Die
Impulsantwort ist endlich lang (siehe unten). Diese Systeme werden meistens Finite
Impulse Response bzw. FIR-Filter genannt. Weitere Bezeichnungen: Transversalfilter,
moving average bzw. MA-System, All-Zero-Filter.
•
Rekursive LTD-Systeme
Der Ausgangswert y[n] hängt nicht nur vom aktuellen Eingangswert x[n] und den N letzten Eingangswerten x[n-1], ..., x[n-N] ab, sondern auch von den letzten M Ausgangswerten y[n-1], ..., y[n-M]. Die Impulsantwort ist normalerweise unendlich lang (siehe unten).
Diese Systeme werden deshalb Infinite Impulse Response bzw. IIR-Filter genannt. Der in
Abbildung 4-3 gestrichelt eingezeichnete Feedback-Teil wird manchmal auch als AutoRegressiv- bzw. AR-System oder als All-Pole-Filter bezeichnet.
ZHAW, DSV1, FS2009, Rumc, 4-5
4.4. Impulsantwort und Faltungssumme
Neben der Differenzengleichung gibt es bei den LTD-Systemen noch eine andere Beschreibung der Ein-/Ausgangscharakteristik.
Wird ein LTD-System mit einem Kronecker-Delta- bzw. einem Einheitsimpuls
⎧1 wenn n = 0
⎩0 wenn n ≠ 0
δ [ n] = ⎨
(4.2)
angeregt, so reagiert das System mit der Impulsantwort h[n], siehe Abbildung 4-4.
h[n]
δ[n]
LTDSystem
1
n
n
Abbildung 4-4: Impulsantwort eines LTD-Systems.
Jede Eingangsfolge x[n] kann in der folgenden Form dargestellt werden (siehe [1]):
x[n] =
∞
∑ x[k ] ⋅ δ [n − k ]
(4.3)
k =−∞
Wegen der Linearität dürfen die Ausgangssignale, die durch die einzelnen Summanden in
Gleichung (4.3) angeregt werden, einfach aufsummiert werden.
Für den Eingang x0[n] = x[0]·δ[n] resultiert der Ausgang y0[n] = x[0]·h[n]. Wegen der Zeitinvarianz resultiert für den Eingang xk[n] = x[k]·δ[n-k] der Ausgang yk[n] = x[k]·h[n-k]. Die Summe
über alle k ergibt dann das Ausgangssignal
y[n] =
∞
∑
k =−∞
x[k ] ⋅ h[n − k ] =
∞
∑ h[k ] ⋅ x[n − k ]
(4.4)
k =−∞
Die Summen in diesem Ausdruck werden Faltungssummen genannt. Die zweite Summe
folgt durch Variablensubstitution u=n-k in der ersten Summe.
Für die Auswertung der Faltungssumme zum Zeitpunkt n muss entweder das Eingangssignal
x[k] oder die Impulsantwort h[k] in der Zeit umgekehrt bzw. gefaltet und n Positionen nach
rechts verschoben werden.
Beispiel
Das in Abbildung 4-2 dargestellte digitale RC-Tiefpass-Filter hat die Impulsantwort
h[n] = {b 0 , − b 0 ⋅ a1, b 0 ⋅ a12 , − b 0 ⋅ a13 , ...}
für
n ≥ 0.
(4.5)
In Abbildung 4-5 ist die Berechnung des Ausgangswerts y[10] grafisch dargestellt, wobei
die rechte Faltungssumme in Gleichung (4.4) verwendet wird und am Eingang der Einheitsschritt
ZHAW, DSV1, FS2009, Rumc, 4-6
⎧1 wenn n ≥ 0
⎩0 wenn n < 0
ε [ n] = ⎨
anliegt.
In Abbildung 4-5 ist auch die Schrittantwort dargestellt für den Fall τ=RC=1s (Grenzfrequenz 0.16 Hz) und Ts=0.1s (Abtastfrequenz fs=10 Hz) bzw. b0 = 0.0909 und
a1 = -0.9091.
y[10]
Abbildung 4-5: Berechnung des Ausgangswerts y[n] mit der Faltung.
Aus Abbildung 4-3 ist auch ersichtlich, dass die Impulsantwort des FIR-Filters
(a-Koeffizienten sind Null)
hFIR[n] = {b0, b1, ..., bN} für n=0, ..., N
direkt durch die Filterkoeffizienten gebildet wird und endlich lang ist.
(4.6)
ZHAW, DSV1, FS2009, Rumc, 4-7
4.5. z-Transformation
Wie die Laplace-Transformation bei den analogen Systemen spielt die z-Transformation bei
der Beschreibung der digitalen Systeme im Bild- bzw. Frequenzbereich eine wichtige Rolle.
Ausgehend von der Definition der Laplace-Transformation und Gleichung (2.2) erhält man
die Laplace-Transformierte des zeitdiskreten Signals x[n] in der Form
X (s) =
∞
x[n] ⋅ e− nsT
∑
n =−∞
s
.
(4.7)
Mit Hilfe der Abkürzung
z = esTs
(4.8)
kann man die Laplace-Transformierte eines zeitdiskreten Signals auch wie folgt darstellen
X ( z) =
∞
x[n] ⋅ z − n .
∑
n =−∞
(4.9)
X(z) bezeichnet man als z-Transformierte des zeitdiskreten Signals x[n]. Wie aus der Herleitung ersichtlich ist, handelt es sich bei der z-Transformation eigentlich nicht um eine neue
Transformation, sondern um eine Anpassung der Laplace-Transformation für zeitdiskrete
Signale bzw. um eine Erweiterung der Fouriertransformation für zeitdiskrete Signale, wie wir
weiter unten noch sehen werden.
Die z-Transformierte existiert nur in ihrem Konvergenzbereich. In diesem Kurs wird dieser
Aspekt aber nicht weiter verfolgt, weil wir keine „kritischen“ Signale betrachten.
Beispiel
Die z-Transformierte des Kronecker-Delta- bzw. Einheitsimpulses lautet
δ[n]
(4.10)
1
Beispiel
Mit Hilfe der z-Transformation der in Gleichung (4.5) gegebenen Impulsantwort erhält
man die z-Übertragungsfunktion des digitalen RC-Tiefpass-Filters
H(z) =
b 0 ⋅ (1 - a1 ⋅ z -1 + a12 ⋅ z -2 -+ ...) =
b0
1+a1 ⋅ z -1
wobei im zweiten Schritt die Summenformel für die geometrische Reihe
1 + q + q2 + ... = 1/(1-q), verwendet worden ist für den Fall IqI<1 bzw. Ia1I<1.
(4.11)
ZHAW, DSV1, FS2009, Rumc, 4-8
Es gibt einen einfachen Zusammenhang zwischen der Fourier- und der z-Transformierten.
Die Fouriertransformierte X(f) erhält man aus der Laplace-Transformierten X(s), indem man
s=j2πf setzt. Die Laplace-Transformierte X(s) erhält man aus der z-Transformierten X(z),
indem man die Abkürzung (4.8) verwendet. Damit folgt:
X ( f ) = X ( z = e j2π f Ts ) .
(4.12)
Interpretation
Wenn man die z-Transformierte X(z) auf dem Einheitskreis z=ej2πfTs auswertet, erhält man
die Fouriertransformierte X(f) des zeitdiskreten Signals. X(f) ist offensichtlich periodisch mit
fs. Dieser Zusammenhang ist übrigens schon in Gleichung (2.6) hergeleitet worden.
Beispiel:
Der Frequenzgang H(f) des digitalen RC-Tiefpass-Filters kann aus der z-Übertragungsfunktion (4.11) wie folgt bestimmt werden:
H(f) =
b0
(4.13)
1 + a1 ⋅ e − j 2π f Ts
In Abbildung 4-6 ist der Amplitudengang IH(f)I des digitalen RC-Tiefpass-Filters mit der
Grenzfrequenz fg=100 Hz und der Abtastfrequenz fs=10 kHz dargestellt (τ=1/(2πfg) bzw.
b0 = 0.06 und a1 = -0.94). Im Sperrbereich f>fg kann der Amplitudengang wie erwartet
durch eine Gerade mit der Steigung -20 dB pro Dekade approximiert werden.
Abbildung 4-6: Amplitudengang des digitalen RC-Tiefpass-Filters.
Es existiert eine Formel für die inverse z-Transformation, nämlich
x[n] =
1
2πj
∫ X ( z) ⋅ z
C
n −1
dz
(4.14)
ZHAW, DSV1, FS2009, Rumc, 4-9
Sie hat in der Praxis aber nur wenig Bedeutung. Das C in Gleichung (4.14) steht für „contour“
und stellt eine geschlossene Kurve um den Nullpunkt dar, die im Gegenuhrzeigersinn durchlaufen werden muss.
Es gibt Alternativen, um aus der z-Transformierten X(z) das zeitdiskrete Signal x[n] zu
bestimmen:
•
Integral-Inversionsformel (siehe [2])
•
Fortlaufende Division
Beispiel
Das zeitdiskrete Signal h[n] der in Gleichung (4.11) gegebenen z-Transformierten H(z)
kann man z.B. durch ausdividieren wie folgt bestimmen:
b0·z : z+a1 = b0 - b0a1·z-1 + b0a12·z-2 ...
b0z + b0a1
-b0a1
-b0a1-b0a12·z-1
b0a12·z-1
•
Partialbruchzerlegung
Wie wir gleich sehen werden, sind die Filter-Übertragungsfunktionen (UTF) H(z) rationale
Funktionen mit einem Zähler- und einem Nenner-Polynom (in z bzw. z-1). Solche Funktionen kann man in Partialbrüche zerlegen, wobei für jeden Partialbruch eine geometrische
Reihe im Zeitbereich resultiert [vgl. auch Gleichung (4.11)].
H ( z ) = A0 +
Ak ⋅ z
∑
k =1 z − pk
N
h[n] = A0 ⋅ δ [n] +
N
∑A ⋅p
k =1
k
n
k
(n ≥ 0)
(4.15)
Die z-Transformation besitzt folgende Eigenschaften, welche ausgehend von der Definitionsgleichung (4.9) der z-Transformierten bewiesen werden können:
Linearität:
a ⋅ x 1 [n] + b ⋅ x 2 [n]
a ⋅ X1 (z) + b ⋅ X 2 (z)
Zeitverschiebung:
x[n − k]
Faltung:
x[n] ∗ h[n]
z −k ⋅ X(z)
X(z) ⋅ H(z)
Multiplikation mit einer Exponentialfolge:
a n ⋅ x[n]
X(z/a)
Multiplikation mit der Zeit:
n ⋅ x[n]
− z ⋅ dX(z)/dz
ZHAW, DSV1, FS2009, Rumc, 4-10
4.6. Übertragungsfunktion
Im Zeitbereich kann die Ausgangsfolge y[n] eines LTD-Systems durch Faltung der Eingangsfolge x[n] mit der Impulsantwort h[n] gebildet werden. Mit Hilfe der z-Transformation kann die
Faltung im Zeitbereich in eine Multiplikation im z-Bereich transformiert werden, siehe Abbildung 4-7.
Zeitbereich
x[n]
Bildbereich
X(z)
h[n]
y[n] = x[n]*h[n]
Y(z) = X(z)·H(z)
H(z)
Abbildung 4-7: Ein- und Ausgang eines LTD-Systems im Zeit- und Bildbereich.
Die z-Transformierte H(z) der Impulsantwort h[n] wird (z-) Übertragungsfunktion des LTDSystems genannt. Aus Abbildung 4-7 ist ersichtlich, dass gilt
H(z) =
Y(z)
.
X(z)
(4.16)
Neben der Faltungsumme beschreibt auch die Differenzengleichung den Zusammenhang
zwischen x[n] und y[n] am Ein- und Ausgang eines LTD-Systems.
Wenn man die Differenzengleichung (4.1) z-transformiert, erhält man mit Hilfe der Zeitverschiebungseigenschaft der z-Transformation den Ausdruck
N
M
k =0
k =1
Y(z) = ∑ b k ⋅ z −k ⋅ X(z) − ∑ a k ⋅z −k ⋅ Y(z) .
(4.17)
Aus den Gleichungen (4.16) und (4.17) kann man nun die Übertragungsfunktion in Funktion
der Koeffizienten der Differenzengleichung bestimmen
N
Y(z)
H(z) =
=
X(z)
∑b
k =0
M
k
⋅ z −k
1 + ∑ ak ⋅ z
=
−k
b 0 + b1 ⋅ z −1 + ... + b N ⋅ z −N
.
1+ a1 ⋅ z −1 + ... + a M ⋅ z −M
(4.18)
k =1
Die Übertragungsfunktion H(z) eines LTD-Systems ist eine rationale Funktion bestehend
aus einem Zähler- und einem Nennerpolynom in z oder z-1, je nachdem, ob man Zähler und
Nenner mit zN erweitert oder nicht.
Jedes Polynom mit Grad n hat n Nullstellen. Die Nullstellen zk des Zählerpolynoms von H(z)
nennt man die Nullstellen der Übertragungsfunktion und die Nullstellen pk des Nennerpolynoms von H(z) nennt man die Pole der Übertragungsfunktion. Für ein stabiles H(z) liegen die
Pole innerhalb des Einheitskreises.
ZHAW, DSV1, FS2009, Rumc, 4-11
Die Übertragungsfunktion H(z) eines LTD-Systems kann in die folgende Pol-NullstellenDarstellung gebracht werden:
N
H(z) = b
∏ (z − z
k
∏ (z − p
k
)
⋅ z M−N
k =1
0 M
(4.19)
)
k =1
Den Frequenzgang H(f) des Digitalfilters erhält man durch Auswerten dieses Ausdrucks auf
dem Einheitskreis, d.h.
N
H(f) = H(z = e
j 2π f Ts
)=b
∏ (e
j 2π f Ts
∏ (e
j 2π f Ts
k =1
0 M
− zk )
⋅ e j2π f Ts (M−N) .
(4.20)
− pk )
k =1
Das Betragsspektrum
N
H(f) = K
∏e
j2πfTs
∏e
j2πfTs
k =1
M
k =1
− zk
(4.21)
− pk
kann man bestimmen, indem man vom Punkt z=ej2πfTs auf dem Einheitskreis die Abstände zu
den Nullstellen bzw. den Polen multipliziert bzw. dividiert. Dies soll an einem Beispiel veranschaulicht werden.
Beispiel
In Abbildung 4-8 ist das Pol-Nullstellen-Diagramm eines Hochpass-Filters in der z-Ebene
dargestellt. Die Übertragungsfunktion H(z) lautet
(z − 1) ⋅ (z − j) ⋅ (z + j)
= K ⋅ (1 − z −1 + z −2 − z −3 ) ,
z3
H(z) = K ⋅
wobei K einen beliebigen Normierungsfaktor darstellt.
z-Ebene
s2
s4
f=fs/2
3 Pole
P=ej2πfTs
für f=fs/8
s1
s3
f=0
x[n]
Ts
K
1
Ts
-1
Ts
1
-1
+
y[n]
Nullstelle
Abbildung 4-8: Hochpass-Filter und Pol-Nullstellendiagramm der Übertragungsfunktion.
ZHAW, DSV1, FS2009, Rumc, 4-12
Der Amplitudengang IH(f)I an der Stelle f=fs/8 kann mit den in Abbildung 4-8 dargestellten
Abständen bestimmt werden, d.h.
H ( f s / 8)
= K⋅
s1 ⋅ s 2 ⋅ s 3
s 43
Weiter ist IH(f=0)I=0 und IH(f=±fs/4)I=0, weil in diesen Fällen eine der Strecken s1, s2 oder
s3 die Länge Null aufweist.
Aus der 2. Darstellung von H(z) oben und der Zeitverschiebungseigenschaft der z-Transformation folgt (für K=1), dass
Y(z) = X(z) ⋅ (1 − z −1 + z −2 − z −3 )
y[n] = x[n] − x[n − 1] + x[n − 2] − x[n − 3]
Diese Differenzengleichung kann mit dem in Abbildung 4-8 dargestellten FIR-Filter
realisiert werden. Aus dem Blockdiagramm ist gut ersichtlich, dass ein konstantes
Eingangssignal (DC) vollständig unterdrückt wird.
In Abbildung 4-9 ist der Amplitudengang des Hochpass-Filters (für K=1) dargestellt.
Abbildung 4-9:
Amplitudengang des Hochpass-Filters.
ZHAW, DSV1, FS2009, Rumc, 4-13
4.7. Realisierungsstrukturen
LTD-Systeme können mit einer Differenzengleichung oder einer Übertragungsfunktion eindeutig beschrieben werden. Es gibt aber viele Möglichkeiten, LTD-Systeme zu realisieren
bzw. zu implementieren.
Im Idealfall sind die folgenden Realisierungsstrukturen alle gleichwertig. Im Realfall mit
endlich genauen Filterkoeffizienten bzw. beschränkten Wortlängen verhalten sie sich aber
unterschiedlich.
Im Folgenden werden die Realisierungsstrukturen mit vereinfachten Signalflussgraphen wie
in Abbildung 4-10 dargestellt. Ein Zweig mit einem beschrifteten Pfeil stellt eine Multiplikation
mit einer Konstanten dar. Fehlt die Beschriftung, ist die Konstante 1. Addierer werden mit
einem Plus-Symbol gekennzeichnet und Abzweigpunkte mit einem Punkt. Verzögerungselemente schliesslich werden mit einem Pfeil und dem Symbol z-1 dargestellt.
b0
x[n]
y[n] = b0·x[n] – a1·y[n-1]
z
-a1
-1
H(z) = b0 / (1+a1·z-1)
Abbildung 4-10: Beispiel eines Signalflussgraphen.
Die Differenzengleichung (4.1) kann einfach mit der in Abbildung 4-11 dargestellten Direktstruktur 1 realisiert werden. Die Direktstruktur 1 wird in der Praxis meistens nur für die Realisierung von FIR-Filtern verwendet.
x[n]
z-1
x[n-1]
x[n-N]
b0
+
y[n]
+
-a1
b1
+
bN
+
-aM
z-1
y[n-1]
y[n-M]
Abbildung 4-11: Direktstruktur 1.
Die beiden kaskadierten Teilsysteme in der Direktstruktur 1 dürfen vertauscht werden, ohne
dass sich das Verhalten des Gesamtsystems verändert. Dann liegen aber die beiden Verzögerungsketten nebeneinander und können zu einer Kette zusammengefasst werden.
Die resultierende Struktur in Abbildung 4-12 wird Direktstruktur 2 genannt. Im Vergleich zur
Direktstruktur 1 hat sie nur noch die halbe Anzahl Speicherzellen. Die Anzahl Speicherzellen
ist minimal, weil sie gleich der Filterordnung ist (ohne Beweis).
ZHAW, DSV1, FS2009, Rumc, 4-14
x[n]
+
bo
w[n]
+
z-1
-a1
y[n]
+
b1
+
-aM
bN
w[n-N]
Abbildung 4-12: Direktstruktur 2.
Mit Hilfe der in Abbildung 4-12 eingezeichneten Werte w[n], w[n-1], ..., w[n-N] kann der Ausgangswert y[n] in Funktion des Eingangswerts x[n] wie folgt berechnet werden:
Schritt 0:
(zirkulärer) w-Buffer {w[n-1], ..., w[n-N]} mit Nullen initialisieren
Schritt 1:
w[n] = x[n] - a1·w[n-1] -…- aM·w[n-M]
Schritt 2:
y[n] = b0·w[n] +…+ bN·w[n-N] ausgeben
Schritt 3:
w-Buffer schieben, w[n] speichern
(effizienter: im Ringbuffer ältesten Wert w[n-N] mit w[n] überschreiben)
Schritt 4:
neuen Eingangswert x[n+1] lesen und mit Schritt 1 weiterfahren
Das Transponierungstheorem für (lineare) Signalflussgraphen besagt, siehe [1] oder [2]:
„Werden alle Signalflussrichtungen umgekehrt, alle Addierer durch Knoten und alle Knoten
durch Addierer ersetzt sowie Ein- und Ausgang vertauscht, dann bleibt die Übertragungsfuntkion H(z) unverändert.“
Durch Transposition der Direktstruktur 2 erhält man die in Abbildung 4-13 dargestellte transponierte Struktur 2.
x[n]
bo
w1[n]
b1
+
-a1
+
z-1
wN[n]
bN
y[n]
z-1
+
-aM
Abbildung 4-13: Transponierte Direktstruktur 2.
ZHAW, DSV1, FS2009, Rumc, 4-15
Mit Hilfe der in Abbildung 4-13 eingezeichneten Werte w1[n], w2[n], ..., wN[n] kann der Ausgangswert y[n] in Funktion des Eingangswerts x[n] wie folgt berechnet werden (Annahme
M=N):
y[n]
=
b0·x[n] + w1[n-1]
w1[n]
=
b1·x[n] - a1·y[n] + w2[n-1]
:
wN-1[n] =
bN-1·x[n] - aM-1·y[n] + wN[n-1]
wN[n] =
bN·x[n] - aM·y[n]
Die in Gleichung (4.19) gegebene Pol-Nullstellen-Darstellung der Übertragungsfunktion H(z)
ermöglicht eine weitere Realisierungsstruktur. Die komplexen Pole und Nullstellen treten immer in konjugiert komplexen Paaren auf. Diese Paare können so zusammengefasst werden,
dass eine Kaskade von Biquads 2. Ordnung mit reellen Teil-Übertragungsfunktionen Hk(z),
k=1,...,L, entsteht, d.h.
H(z) = K ⋅
(z − z1 ) ⋅ (z − z1* ) (z − z L ) ⋅ (z − z*L )
⋅⋅⋅
= K ⋅ H1 (z) ⋅⋅⋅ H L (z) .
(z − p1 ) ⋅ (z − p1* ) (z − p L ) ⋅ (z − p*L )
(4.22)
K ist ein beliebiger Verstärkungs- bzw. Abschwächungsfaktor. Bei der Realisierung von IIRFiltern ungerader Ordnung degeneriert ein Biquad zu einem System 1. Ordnung.
Die einzelnen Biquads werden wieder in einer Direktstruktur realisiert, siehe Abbildung 4-14.
x[n]
K1
b10
b11
b12
...
+
z-1
+
z-1
+
KL
bL0
-a11
bL1
-a12
bL2
y[n]
+
z-1
+
z-1
+
-aL1
-aL2
Abbildung 4-14: Kaskadierung von Biquads in transponierter Direktform 2.
Kaskaden- und Parallelstrukturen verhalten sich in Bezug auf Quantisierungseffekte (siehe
unten) günstiger als Direktstrukturen. Die Quantisierung der Filterkoeffizienten beeinflusst
nicht alle Pole und Nullstellen gleichzeitig wie bei der Direktstruktur, sondern immer nur die
Paare eines Biquads, und hat damit einen kleineren Einfluss auf den Frequenzgang.
Es gibt zahlreiche Möglichkeiten der Pol-Nullstellenpaarung für die Biquads einer Kaskade.
In der Praxis wird normalerweise wie folgt verfahren:
a) Der letzte Biquad enthält das komplexe Polpaar, das am nächsten beim Einheitskreis
liegt, und das dazu nächstgelegene konjugiert komplexe Nullstellenpaar.
b) Die übrig gebliebenen Pole und Nullstellen werden nach der Regel a) kombiniert.
ZHAW, DSV1, FS2009, Rumc, 4-16
Mit Regel a) wird die grösste Überhöhung im Frequenzgang mit einer Abschwächung ganz
in der Nähe der Überhöhung kompensiert. Damit wird der Dynamikbereich des Biquads eingeschränkt, was vorteilhaft ist, wenn die Signale nur mit endlicher Genauigkeit repräsentiert
werden können.
Die rationale Übertragungsfunktion H(z) in Gleichung (4.18) kann auch als Summe von
Partialbrüchen dargestellt werden, siehe Gleichung (4.23). Wenn man wieder die konjugiert
komplexen Pole zusammenfasst, kann die Übertragungsfunktion H(z) als Summe von reellen
Biquads dargestellt und in einer Parallelstruktur implementiert werden.
H(z) =
Ak
A*k
+
∑
z − p*k
k =1 z − p k
L
=
L
∑H
k =1
k
(z)
(4.23)
FIR-Filter-Strukturen findet man durch Nullsetzen der Feedback-Koeffizienten ak, k=1,...,M, in
den oben dargestellten Realisierungsstrukturen. In Abbildung 4-15 ist die Realisierung eines
FIR-Filters mit der Direktstruktur 1 dargestellt, die häufig verwendet wird.
z-1
x[n]
b0
x[n-1]
b1
+
+
z-1
...
bN-1
R=R+X·Y
+
x[n-N]
bN
+
y[n]
Abbildung 4-15: FIR-Filter-Realisierung in Direktstruktur 1.
FIR-Filter mit mehr als 100 Taps (Abzapfpunkten) sind in der Praxis keine Seltenheit. In
Echtzeit-Anwendungen ist es darum wichtig, dass die N Multiply-And-Accumulate (MAC)
Operationen R=R+X·Y in Abbildung 4-15 sehr schnell ausgeführt werden können. Digitale
Signalprozessoren sind darauf spezialisiert.
Es gibt noch weitere Strukturen für spezielle Realisierungsvarianten von digitalen Systemen
bzw. Digitalfiltern, siehe z.B. [2].
ZHAW, DSV1, FS2009, Rumc, 4-17
4.8. Nichtidealitäten
Viele Nichtidealitäten bei der Realisierung von digitalen Systemen bzw. Digitalfiltern hängen
mit der endlichen Wortlänge in der Zahlendarstellung zusammen.
Festkomma-Zahlendarstellung
Bei der Festkomma-Zahlendarstellung mit einem Wort der Länge W Bits wird die Position
des binären Kommas fest vereinbart.
Bei allen gängigen Signalprozessoren wird die Zweierkomplementdarstellung verwendet,
da sie viele Vorteile hat (eindeutige Null, einfache Subtraktion, effiziente Algorithmen für die
Multiplikation).
In Abbildung 4.16 sind die am häufigsten verwendeten Kommastellen und die Gewichtung
der einzelnen Bitpositionen für Zweierkomplement-Zahlen mit Vorzeichen und für Zweierkomplement-Zahlen ohne Vorzeichen dargestellt.
signed integer
bW-1
b0
W-1
20
-2
2W-2 2W-3
sign-bit
bW-1
unsigned integer
W-1
2
b0
W-2
2
20
W-3
2
b0
bW-1
signed fractional
-20
2-1
2-(W-1)
2-2
sign-bit
b0
bW-1
unsigned fractional
2-1
2-2
2-W
2-3
Abbildung 4-16: Festkomma-Zahlendarstellungsarten (Zweierkomplement).
In Tabelle 4-1 sind für eine Wortlänge von W=3 Bits die Zahlenwerte für die vier oben
erwähnten Formate aufgelistet. Vergewissern Sie sich, dass eine binäre Zahl b einfach
negiert werden kann, indem alle Bits von b invertiert und 1 LSB addiert wird.
[b2 b1 b0]
[000]
[001]
[010]
[011]
[100]
[101]
[110]
[111]
signed integer
0
1
2
3
-4
-3
-2
-1
unsigned integer
0
1
2
3
4
5
6
7
signed fractional
0.00
0.25
0.50
0.75
-1.00
-0.75
-0.50
-0.25
unsigned frac.
0.000
0.125
0.250
0.375
0.500
0.625
0.750
0.875
Tabelle 4-1: Worte der Länge W=3 und entsprechende Festkomma-Zahlenwerte.
ZHAW, DSV1, FS2009, Rumc, 4-18
Die Festkomma-Zahlendarstellung hat einen gewichtigen Vorteil. Die HW-Realisierung der
Zahlenarithmetik braucht weniger Chipfläche als die HW-Realisierung der GleitkommaZahlenarithmetik. Deshalb sind Festkomma-DSP’s im Allgemeinen kostengünstiger als
vergleichbare Gleitkomma-DSP’s.
Die Festkomma-Zahlendarstellung hat aber die folgenden Nachteile:
•
Die Filterkoeffizienten müssen quantisiert bzw. können nicht beliebig genau dargestellt
werden. Dadurch verändert sich die Lage der Pole und Nullstellen in der z-Ebene bzw.
der resultierende Frequenzgang.
Wie erwähnt sind die Kaskaden- und die Parallelstruktur weniger sensitiv auf die
Koeffizientenquantisierung als die Direktstrukturen.
Besonders selektive IIR-Filter mit Polen ganz nahe beim Einheitskreis können im Extremfall durch die Quantisierung der Filterkoeffizienten ausserhalb des Einheitskreises zu
liegen kommen und so sogar instabil werden.
•
Die Additionsergebnisse können überlaufen. Die resultierenden nichtlinearen Verzerrungen können bei IIR-Filtern im Extremfall grosse Überlaufschwingungen anregen. Dagegen kann man Folgendes unternehmen:
=> Das Eingangssignal des Filters bzw. eines Biquads kann gezielt so skaliert bzw. abgeschwächt werden, dass die Addierer nicht mehr überlaufen können. Dadurch sinkt
aber das Signal-zu-Quantisierungsgeräuschverhältnis (SNR).
=> Neuere DSP’s weisen ein grosses MAC-Register der Länge 2·W+8 Bits auf. Dadurch
können viele Multiplikationsergebnisse ohne Rundungsfehler berechnet und temporäre
Überlaufe toleriert werden.
Die Zweierkomplement-Arithmetik hat nämlich die folgende, nützliche Eigenschaft:
Werden mehrere Zweierkomplement-Zahlen addiert, deren Summe nicht überläuft, ist
das Resultat der Zweierkomplement-Addition dieser Zahlen auch richtig, wenn Zwischensummen überlaufen.
•
Das Resultat der Multiplikation von 2 Zahlen der Länge W-Bits ist im Allgemeinen 2·WBits lang. Irgendwann muss deshalb eine Rundung vorgenommen werden. Das resultierende Rundungsrauschen kann bei IIR-Filtern im Extremfall zu Grenzschwingungen mit
kleinen Amplituden führen, die z.B. bei der digitalen Audiosignalverarbeitung stören.
Gleitkomma-Zahlendarstellung
Die Gleitkomma-Zahlendarstellung soll am Beispiel des IEEE Standards 754/854 (32 Bit)
dargestellt werden, siehe Abbildung 4-17.
s
b31
Exponent 1 ≤ E ≤ 254
b30
b23
Mantisse 1 ≤ M < 2
b22
hidden 1
Abbildung 4-17: IEEE 754/854 Gleitkomma-Zahlendarstellung.
b0
ZHAW, DSV1, FS2009, Rumc, 4-19
Der (float)-Wert F der Gleitkomma-Zahl wird bestimmt durch
F = (−1)s ⋅ M ⋅ 2E −127 ,
(4.24)
wobei M die Mantisse und E den Exponenten darstellen.
Beim IEEE-Standard ist die Mantisse 23 Bit lang, wobei man sich vor dem Komma eine 1
denkt. Dadurch nimmt die Mantisse Werte zwischen 1 und 2 an.
Der Exponent ist 8 Bit lang. Die Werte E=0 und E=255 werden zur Darstellung von Null,
keine Zahl (engl: nan bzw. not a number) und Unendlich reserviert. In Gleichung (4.24) liegt
E deshalb im Bereich 1 ≤ E ≤ 254.
Die grösste darstellbare Zahl ist etwas kleiner als 2·2254-127 ≈ 3.4·1038. Die kleinste darstellbare Zahl ist -1·21-127 ≈ -1.17·10-38.
Der Dynamikbereich ist damit sehr gross und betragsmässig kleine Zahlen können sehr
genau dargestellt werden.
Das Überlaufproblem kann im Wesentlichen ausgeschlossen werden. Allerdings entstehen
kleine Quantisierungsfehler beim Addieren und Multiplizieren von 2 Gleitkomma-Zahlen.
ZHAW, DSV1, FS2009, Rumc, 4-20
4.9. Beispiel „Festkomma-Realisierung eines IIR-Filters“
Es soll ein Digitalfilter mit folgender Spezifikation entworfen und als Biquad-Kaskade mit
quantisierten Filterkoeffizienten realisiert werden.
Filterart
(elliptisches) Tiefpass-Filter
Filterordnung
N=4
Abtastfrequenz
fs=8000 Hz
Eckfrequenz Durchlassbereich
fDB=1000 Hz
Eckfrequenz Sperrbereich
fSB=1300 Hz
max. Rippel im Durchlassbereich
Rp=3 dB
min. Rippel im Sperrbereich
Rs=40 dB
Wortbreite
W=8 Bit
Tabelle 4-2: Filterspezifikation Beispiel-Filter.
In Abbildung 4-18 ist das Pol-Nullstellendiagramm der resultierenden UTF H(z) dargestellt,
wobei die Filterkoeffizienten noch nicht quantisiert worden sind.
Dieses IIR-Filter wird nun als Biquad-Kaskade realisiert. Die UTF H(z) wird dazu in die
beiden Teil-UTF H1(z) und H2(z) faktorisiert, d.h.
H(z) = k1·H1(z) · k2·H2(z) ,
(4.25)
wobei die in Abbildung 4-18 dargestellte Pol-Nullstellenpaarung vorgenommen wird (Matlab
Signal Processing Toolbox tf2sos).
H2(z)
H1(z)
H1(z)
H2(z)
Abbildung 4-18: Pol-Nullstellendiagramm zu Beispiel-Filter.
ZHAW, DSV1, FS2009, Rumc, 4-21
An den Ausgängen der beiden Biquad-Filter darf kein Wert grösser als 1 werden. Die beiden
Skalierungsfaktoren k1 und k2 der beiden Biquad-Filter H1(z) und H2(z) in Gleichung (4.25)
werden deshalb so gewählt, dass
k1·max(IH1(f)I) < 1 und k1·k2· max(IH1(f)·H2(f)I) < 1
(4.26)
Damit wird ein Überlauf unwahrscheinlich, aber nicht unmöglich. Die beiden Skalierungsfaktoren k1 und k2 können in die b-Koeffizienten der beiden Biquad-Filter integriert werden.
In Abbildung 4-19 ist das Spektrum [dB] von k1·IH1(f)I und k2·IH2(f)I dargestellt, wobei nun
alle Filterkoeffizienten auf W=8 Bit quantisiert worden sind. Im 2. Biquadfilter ist die Pol-Überhöhung gut erkennbar.
Die Summe der beiden Teil-Spektren ergibt das Spektrum [dB] des Gesamt-Filters H(z). Es
ist gut erkennbar, dass die Spezifikation aus Tabelle 4-2 erfüllt werden kann.
In Abbildung 4-19 ist das Spektrum [dB] des Filters IHdir(f)I dargestellt, das ausgehend von
der Filterspezifikation in Tabelle 4-2 nicht als Biquad-Kaskade, sondern in einer Direktform
mit 8-Bit quantisierten Filterkoeffizienten realisiert worden ist. Man erkennt, dass die Spezifikationen aus Tabelle 4-2 nicht mehr erfüllt sind.
Abbildung 4-19: Betragsspektren der beiden Biquadfilter, des Biquad-Kaskaden-Filters
sowie eines äquivalenten Filters in Direktstruktur.
ZHAW, DSV1, FS2009, Rumc, 4-22
4.10. Anhang Matlab SPT-Funktionen
% Dokumentation
% ====================================================================
help signal
% listet alle Funktionen der Signal Processing Toolbox auf
help filter
% Hilfe für Funktion "filter"
doc conv
% Hilfe für Funktion "conv", nur >> doc Zugang zu Index-Suche
% Filterung mit der Differenzengleichung (vgl. Beispiel S. 4-5/6)
% ====================================================================
b=[0.0909];
% b-Filterkoeffizienten
a=[1 -0.9091];
% a-Filterkoeffizienten
x=ones(1,50);
% Einheitssprung (Zeilenvektor)
y=filter(b,a,x);
% Filterung via Differenzengleichung 4.1
stem(y,'filled');
% Alternative zu plot, Stängel-Plot
pause
% Filterung mit der Faltungssumme (vgl. Beispiel S. 4-5/6)
% ====================================================================
h=0.0909*(0.9091).^[0:50];
% Impulsantwort
stem(h,'filled');
% Plot der Impulsantwort
pause
y=conv(x,h);
stem(y,'filled');
pause
% Faltung
ZHAW, DSV1, FS2009, Rumc, 4-23
% Frequenzgang eines Filters (vgl. Beispiel S. 4-8)
% ====================================================================
clear
fs=10000;
% Abtastfrequenz
b=[0.06];
% Filterkoeffizienten, Zählerkoeffizienten der UTF
a=[1 -0.94];
% Filterkoeffizienten, Nennerkoeffizienten der UTF
[H,w]=freqz(b,a);
% Frequenzgang, Achtung Normierung der Frequenz
fachse=(w/pi)*(fs/2);
% Entnormierung der Frequenzachse
semilogx(fachse,20*log10(abs(H)),'LineWidth',2.0); % Bodediagramm
grid;
xlabel('Frequenz [Hz]');
% Beschriftung x-Achse
ylabel('Amplitude [dB]')
% Beschriftung y-Achse
title('Bodediagramm RC-TP 1. Ordnung');
% Titel für Plot
pause
% Pol-Nullstellendiagramm (vgl. Beispiel S. 4-11)
% ====================================================================
clear
b=[1 -1 1 -1];
% Filterkoeffizienten FIR-Filter
a=[1];
zplane(b,a);
% Pol-Nullstellen-Darstellung
pause
% Transformation PN-Darstellung <==> UTF
% ====================================================================
[Z,P,K]=tf2zpk(b,a)
% UTF => PN-Darstellung, Bildschirmausgabe
pause
[num,den]=zp2tf(Z,P,K)
% PN-Darstellung => UTF
ZHAW, DSV1, FS2009, Rumc, 4-24
4.11. Anhang Korrelation
Die unnormierte (Kreuz-) Korrelation zwischen den Signalen x[n] und y[n] ist wie folgt
definiert
rxy [m] =
∞
∑ x[n] ⋅ y[n + m] .
(4.27)
n = −∞
Die Korrelation ist ein Mass für die Ähnlichkeit der beiden Signale x[n] und y[n].
Wenn y[n] = x[n] nennt man rxx[m] Autokorrelation. Sie gibt an, wie ähnlich sich ein Signal
x[n] und eine um m Abtastintervalle verschobene Kopie von x[n] sind. Die Autokorrelation ist
natürlich maximal wenn m=0 und entspricht dann der Signalleistung.
In der Technik wird die Korrelation sehr häufig eingesetzt, z.B. um das endlich lange Signalmuster x[n] im unendlich langen Zeitsignal y[n] zu finden, oder die zeitliche Verschiebung
zwischen einem Sendesignal x[n] und dem Empfangssignal y[n] zu bestimmen usw.
In der Folge nehmen wir an, dass das Signal x[n] nur aus N+1 Werten im Zeitintervall
n=0,…,N besteht, y[n] aber unendlich lang ist. Der Korrelationswert rxy[m] kann dann wie folgt
bestimmt werden:
rxy[m] = x[0]·y[m] + x[1]·y[m+1] + … + x[N]·y[m+N] .
(4.28)
In Abbildung 4-20 ist die Berechnung der Korrelation rxy[m] grafisch dargestellt.
x[n]
rxy [m] =
∞
∑ x[n] ⋅ y[n + m]
n = −∞
m·Ts
y[n]
x[n]
…
y[1] y[0] y[1]
m·Ts
…
y[m]
x[0]
… y[m+N]
…
…
x[N]
rxy[m]
= x[0]·y[m] + x[1]·y[m+1] + … + x[N]·y[m+N]
Abbildung 4-20: Berechnung der Korrelation rxy[m].
ZHAW, DSV1, FS2009, Rumc, 4-25
Gleichung (4.28) kann aber wie folgt umformuliert werden:
rxy[m] = x[N]·y[m+N] + x[N-1]·y[m+N-1] + … + x[0]·y[m+N-N] .
(4.29)
Die Korrelation rxy[m] kann also auch durch Faltung von y[n] mit dem zeitlich umgedrehten
Signal x[N-n] = h[n], n=0,…,N, bestimmt werden. Damit kann die Korrelation rxy[m] mit dem
in Abbildung 4-21 dargestellten FIR-Filter bestimmt werden.
y[m+N-1]
Ts
y[m+N]
b0
=x[N]
y[m]
Ts
b1
=x[N-1]
bN
=x[0]
+
b0 b1
rxy[m] = x[-.] * y[.]
bN
Signal x[n] zeitlich umgedreht !
Matlab
b = x(N:-1:1);
rxy = filter(b,1,y);
% oder xcorr()
Abbildung 4-21: Bestimmung der Korrelation rxy[m] durch FIR-Filterung.

Documents pareils