ZHW, DSV 1, 2006/01, Rur&Hrt 4-1 Kapitel 4: Digitale Systeme Inhaltsverzeichnis 4.1. EINLEITUNG ................................................................................................................................................ 2 4.2. LTD-SYSTEME ............................................................................................................................................. 3 4.3. DIFFERENZENGLEICHUNG .................................................................................................................... 3 4.4. IMPULSANTWORT UND SCHRITTANTWORT .................................................................................... 5 4.5. FALTUNGSSUMME..................................................................................................................................... 6 4.6 AUSGANGS-FOLGE = EINGANGS-FOLGE STOSSANTWORT ....................................................... 8 4.7. FREQUENZGANG........................................................................................................................................ 9 4.8 AUSGANGS-SPEKTRUM = EINGANGS-SPEKTR ∙ FREQUENZGANG ........................................... 11 4.9. Z-TRANSFORMATION ............................................................................................................................. 12 4.10. ÜBERTRAGUNGSFUNKTION ............................................................................................................... 15 4.11. VERGLEICH LAPLACE-, Z- UND FOURIER-TRANSFORMATION ............................................. 18 4.12. ANHANG: FORMELN UND MATLAB-BEFEHLE ............................................................................. 20 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. ZHW, DSV 1, 2006/01, Rur&Hrt 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 Anwendungen 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. ZHW, DSV 1, 2006/01, Rur&Hrt 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. Oder anders ausgedrückt: Der Ausgangswert y[n] eines kausalen Systems hängt nur von den bis zu diesem Zeitpunkt eingetroffenen Eingangssignalen x[n], x[n-1], …, x[n-] ab. Das Kausalitätsprinzip entspricht dem Gesetz von Ursache und Wirkung. Nichtkausale Systeme werden z.B. in der Bildverarbeitung eingesetzt. Anstelle der Zeit n treten hier aber die x- und y-Koordinaten der Bildpunkte. 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 (Maschensatz für elektrische Spannungen). 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, ZHW, DSV 1, 2006/01, Rur&Hrt 4-4 dy(t) 1 [y(nTs ) y((n 1)Ts )] . dt Ts 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-N] x[n-1] x[n] Ts b0 ... b1 Ts bN-1 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 (= MA-System), All-Zero-Filter (= Übertragungsfunktion hat Nullstellen, aber keine Pole, resp. alle Pole liegen bei z = 0). Rekursive LTD-Systeme Der Ausgangswert y[n] hängt nicht nur vom aktuellen Eingangswert x[n] und den N letz- ZHW, DSV 1, 2006/01, Rur&Hrt 4-5 ten 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 Auto-Regressiv- (= AR-System) oder als All-Pole-Filter (= der gestrichelte Teil hat keine Nullstellen) bezeichnet. 4.4. Impulsantwort und Schrittantwort 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 0 für 1 n n 0 n 0 (4.2) angeregt, so reagiert das System mit der Impulsantwort h[n], siehe Abbildung 4-4. δ[n] h[n] LTDSystem 1 n n Abbildung 4-4: Impulsantwort eines LTD-Systems. Die Impulsantwort ist für die Analyse und den Entwurf von digitalen Systemen sehr praktisch, da das Eingangssignal aus lauter Nullen besteht ausser zum Zeitpunkt n = 0 ist das Signal 1. Für analoge Systeme ist die Impulsantwort weniger praktisch, da die Amplitude des Eingangs sehr gross sein muss (Gefahr der Übersteuerung), damit am Ausgang überhaupt etwas gemessen werden kann. Deshalb wird anstelle der Impulsantwort oft die Schrittantwort verwendet. Wird ein LTD-System mit einem Einheitsschritt 0 für 1 n n 0 n 0 (4.3) angeregt, so reagiert das System mit der Schrittantwort g[n], siehe Abbildung 4-5. [n] g[n] LTDSystem 1 n Abbildung 4-5: Schrittantwort eines LTD-Systems. Impuls- und Schrittantwort lassen sich einfach ineinander umrechnen: n ZHW, DSV 1, 2006/01, Rur&Hrt 4-6 Für digitale Systeme mit diskreter Zeitvariablen gilt: n n n und als Folge der Linear ität resp. n n n 1 und n g n hn hn g n g n 1 (4.4) Für analoge Systeme mit kontinuierlicher Zeitvariablen gilt: t t t dt und als Folge der Linear ität d t resp. t und dt g t t ht dt dg t ht dt (4.5) Impuls- und die Schrittantwort sind gleichwertig und beschreiben ein LTD-Systems vollständig und eindeutig. Die Impulsantwort lässt sich bei einem digitalen System messtechnisch einfach ermitteln. Die Schrittantwort ist messtechnisch vorteilhaft bei analogen Systemen. 4.5. Faltungssumme Jede Eingangsfolge x[n] kann in der folgenden Form dargestellt werden (siehe [1]): xn xk n k (4.6) n weil δ[n-k] immer 0 ist ausser für n = k. Wegen der Linearität dürfen die Ausgangssignale, die durch die einzelnen Summanden in Gleichung (4.6) 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 yn xk hn k n hk xn k xn hn (4.7) n Die Summen in diesem Ausdruck werden Faltungssummen genannt. Die zweite Summe folgt durch Variablensubstitution u=n-k in der ersten Summe und sind somit gleichwertig. Die Schreibweise mit dem Multiplikations-Stern steht abgekürzt für die Faltungssumme. 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.8) ZHW, DSV 1, 2006/01, Rur&Hrt 4-7 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 Einheitssprung 1 wenn n 0 0 wenn n 0 [ n] (4.9) anliegt. In Abbildung 4-5 (Demo: dsv1kap4_digisys_faltungschritt.m) ist auch die Sprungantwort 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-5 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. ZHW, DSV 1, 2006/01, Rur&Hrt 4-8 4.6 Ausgangs-Folge = Eingangs-Folge Stossantwort Die im letzten Kapitel hergeleiteten Formeln gelten nicht nur für den Schritt als Eingangsfolge sondern ganz allgemein. Die Demo dsv1kap4_digisys_faltung.m führt diesen Sachverhalt schrittweise für beliebige Filter und Eingangsfolgen vor. diskrete Zeit n = 0 0 5 10 15 15 0.5 5 10 0.5 15 5 10 0 0 5 10 15 0 10 15 0 0 0 5 10 15 Filter: b = 0.2 a = -0.8 0 5 10 15 Filter: b = 0.2 a = -0.8 15 0 5 10 15 0 5 10 15 0.5 15 0.5 0.5 0 5 10 15 1 1 0.5 10 1 0 y[n] 0.5 10 0 1 y[n] 1 5 5 0 5 1 0.5 0 1 0 x[n-k] x[n-k] 0 15 0.5 15 1 0.5 10 0 0 1 5 1 0 0 x[n] 0 h[k] h[k] h[k] 10 1 0 x[n-k] 5 0.5 0 0 0 1 0.5 h[k] 0 y[n] 0.5 x[n-k] 0 1 1 x[n] x[n] x[n] 0.5 diskrete Zeit n = 12 diskrete Zeit n = 1 1 y[n] diskrete Zeit n = -1 1 0.5 0.5 0 0 0 5 10 15 Filter: b = 0.2 a = -0.8 0 5 10 15 Filter: b = 0.2 a = -0.8 Abbildung 4-6: Ausgangswerte y[n] mit Hilfe der Faltung berechnet für RC-Tiefpass-Filter und Sägezahnimpuls. Aus Abbildung 4-6 ist gut ersichtlich: Solange der Eingang x[n] Null ist (n < 0), ist der Ausgang y[n] Null (kausales System). h[k] ist die Impulsantwort, die das Filter beschreibt. x[n-k] stellt den bis zum Zeitpunkt n eingetroffenen Eingang zeitlich gespiegelt dar. Der Ausgang wird als Faltungssumme berechnet: y[n] = ∑x[n-k]∙h[k] Rechts ist ersichtlich, dass der Ausgang abklingt, wenn der Eingag wieder länger auf Null ist. diskrete Zeit n = 0 0 15 10 15 -1 -1 10 0 15 x[n-k] 0 -1 0 5 10 -1 0 5 Filter: b = 0.8 10 0 0 5 10 0 -1 0 5 10 15 -0.8 a = -0.8Filter: b = 0.8 5 10 15 0 5 10 15 0 5 10 15 0 x[n] -1 5 10 15 1 0 -1 15 0 1 0 0 1 y[n] 15 0 15 -1 15 1 0 5 1 x[n-k] 5 10 -1 5 10 0 -1 1 0 -1 10 15 0 5 -0.8 a = -0.8Filter: b = 0.8 1 15 1 y[n] 0 1 5 1 0 0 -1 0 h[k] h[k] h[k] 5 1 0 0 -1 h[k] 10 1 x[n-k] 5 1 x[n-k] 0 -1 0 diskrete Zeit n = 12 1 x[n] x[n] x[n] 0 -1 y[n] diskrete Zeit n = 1 1 y[n] diskrete Zeit n = -1 1 0 -1 10 15 0 5 -0.8 a = -0.8Filter: b = 0.8 Abbildung 4-7: Ausgangswerte y[n] mit Hilfe der Faltung berechnet für RC-Hochpass-Filter und Rechtecksignal. 10 15 -0.8 a = -0.8 ZHW, DSV 1, 2006/01, Rur&Hrt 4-9 4.7. Frequenzgang Zur messtechnischen Erfassung des Frequenzganges werden am Eingang nacheinander Sinussignale unterschiedlicher Frequenz angelegt. Bei einem linearen zeit-invarianten System erscheint nach kurzer Zeit am Ausgang ein Sinus gleicher Frequenz. Bei jeder Frequenz werden die Amplituden von Ein- und Ausgang, sowie die Phasenverschiebung gemessen (=> Bode-Diagramm zeichnen). Der Frequenzgang H(f) besteht somit aus dem Amplitudengang |y(f)| / |x(f)| und dem Phasengang y(f) - x(f). So wie die Impulsantwort beschreibt der Frequenzgang ein LTD-System vollständig un eindeutig. D.h. in der Impulsantwort (oder in der Schrittantwort) und im Frequenzgang stecken die gleichen Informationen, obwohl sie messtechnisch verschieden erfasst werden. Der Frequenzgang H(f) eines Digitalfilters ist die Fouriertransformierte der Impulsantwort h[n] und periodisch mit der Abtastfrequenz fs. H(f) beschreibt den Einfluss des Digitalfilters auf die Amplitude und die Phase der Frequenzkomponente f im Eingangssignal. H(f) kann bestimmt werden, indem die z-Übertragungsfunktion H(z) für z=ej2πf/fs (auf dem Einheitskreis) ausgewertet wird. H(f) IH(f)I Im[H(f)] φ(f) Re[H(f)] Abbildung 4-8: Polarkoordinatendarstellung von H(f). Der Frequenzgang H(f) ist normalerweise komplexwertig und kann deshalb wie folgt in Polarkoordinaten dargestellt werden, siehe auch Abbildung 4-8: H(f ) H(f ) e j(f ) . (4.10) IH(f)I in Gleichung (4.10) nennt man Amplitudengang. Er wird oft in dB angegeben, d.h. H(f ) dB 20 log10 ( H(f ) ) (4.11) Das Argument von H(f) in Gleichung (4.10) nennt man Phasengang. Er ist gegeben durch (f ) arctan( Im[H(f )] ) Re[H(f )] (4.12) und ist nur bis auf Vielfache von 2π bestimmt. Für reellwertige Impulsantworten h[n] gilt die Symmetrie H(f ) H*(f ) H(f ) e j( f ) , (4.13) wobei H* die konjugiert komplex zu H ist. Der Vergleich der Gleichungen (4.10) und (4.13) zeigt, dass der Amplitudengang gerade und der Phasengang ungerade ist, d.h. ZHW, DSV 1, 2006/01, Rur&Hrt 4-10 H(f ) H(f ) (f ) (f ) (4.14) In Abbildung 4-9 ist ein typischer Amplituden- und Phasengang eines IIR-Filters dargestellt. Abbildung 4-9: Typischer Amplituden- und Phasengang (Bode-Diagramm) eines IIR-Filters. Bei harmonischer Anregung kann der Filterausgang mit Hilfe des Amplituden- und Phasengangs einfach wie in Abbildung 4-9 dargestellt bestimmt werden. cos(2πf0·nTs) Abbildung 4-10: H(f) IH(f0)I·cos[2πf0·nTs+φ(f0)] = IH(f0)I·cos[2πf0·(nTs-Δ0)] Bedeutung des Amplituden- und Phasengangs. Eine einzelne Frequenzkomponente bei f0 wird in der Amplitude mit IH(f0)I gewichtet und erleidet eine Phasenverschiebung von φ(f0) bzw. eine Zeitverzögerung von Δ0 (f 0 ) . 2π f0 (4.15) Unterschiedlich verzögerte Frequenzkomponenten eines Signals können sich zu störenden Signalverzerrungen summieren. Wenn der Phasengang in einem bestimmten Frequenzbereich linear ist bzw. wenn in einem bestimmten Frequenzbereich φ(f) = -K·f gilt, wobei K eine Konstante ist, werden gemäss Gleichung (5.6) alle betreffenden Frequenzkomponenten beim Durchlaufen des Filters um die gleiche, konstante Zeit Δ = K/2π verzögert. Beispiel In Abbildung 5-2 ist der Phasengang am Anfang des Durchlassbereichs fast linear, d.h. ZHW, DSV 1, 2006/01, Rur&Hrt 4-11 die Signalkomponenten bis ca. 700 Hz werden durch das Filter fast gleich verzögert. Mit (kausalen) IIR-Filtern können keine vollständig linearen Phasengänge realisiert werden. Mit FIR-Filtern hingegen schon (dafür ist die Zeitverzögerung grösser)! Beispiel (Matlab Signal Processing Toolbox) Wenn der Vektor H den komplexen Frequenzgang darstellt, kann der Amplitudengang HdB in [dB] und der Phasengang phi in [rad] wie folgt bestimmt werden: HdB=20*log10(abs(H)); phi=unwrap(angle(H)); Die Funktion unwrap korrigiert 2π-Sprünge, die bei der Auswertung der arctanFunktion entstehen, siehe Gleichung (5.3). Der Frequenzgang (Betrag und Phase) beschreibt ein LTD-System vollständig und eindeutig. Der Frequenzgang H(f) ist die Fourier-Transformierte der Impulsantwort h(t). H(z) = H(e^j∙2∙f/fs) ist die Fourier-Transformierte von h(n) bei einem digitalen System. Der Frequenzgang lässt sich messtechnisch einfach ermitteln. Am Eingang werden Sinus-Signale x(f) verschiedner Frequenz eingespeist. Bei LTD-Systemen ist der stationäre Ausgang y(f) ein Sinus gleicher Frequenz. Frequenzgang (Bode-Diagramm): |H(f)| = |y(f)| / |x(f)| und H(f) = y(f) - x(f) 4.8 Ausgangs-Spektrum = Eingangs-Spektr ∙ Frequenzgang Im Kapitel „Ausgangs-Folge = Eingangs“ wurde gezeigt, wie mit Hilfe der Impulsantwort und der Faltungssumme das Signal am Ausgang als Funktion der Zeit berechnet werden kann. Da im Frequenzgang die gleiche Information steckt wie in der Impulsantwort, ist es möglich das Ausgangssignal im Frequenzbereich (Amplitude und Phase) direkt zu bestimmen. Amplitude (Beträge multiplizieren): Phase (Winkel addieren): |y[f]| = |x[f]||H[f]| y(f) = x(f) + H(f) Beispiel: Das Signal x(500Hz) = 2.5Vpp47° liegt am Eingang des TP-Filters von Abb. 4.9. Welches Signal erscheint am Ausgang? Aus der Abbildung 5.2 liest man bei 500Hz heraus: 0.98-2rad = 0.98-115° Signal am Ausgang: y(500Hz) = (2.5Vpp0.98)(47°+(-115°)) = 2.45Vpp-68° ZHW, DSV 1, 2006/01, Rur&Hrt 4-12 4.9. 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.16) Mit Hilfe der Abkürzung z esTs (4.17) kann man die Laplace-Transformierte eines zeitdiskreten Signals auch wie folgt darstellen X ( z) x[n] z n . n (4.18) 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.19) 1 Beispiel Mit Hilfe der z-Transformation der in Gleichung (4.8) 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 (4.20) 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. 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.17) verwendet. Damit folgt: X ( f ) X ( z e j2 f Ts ) . (4.21) ZHW, DSV 1, 2006/01, Rur&Hrt 4-13 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.20) wie folgt bestimmt werden: H(f) b0 1 a1 e j 2π f Ts (4.22) In Abbildung 4-11 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-11: Amplitudengang des digitalen RC-Tiefpass-Filters. Es existiert eine Formel für die inverse z-Transformation, nämlich x[n] 1 2j X ( z) z n 1 dz (4.23) C Sie hat in der Praxis aber nur wenig Bedeutung. Das C in Gleichung (4.23) 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]) ZHW, DSV 1, 2006/01, Rur&Hrt 4-14 Fortlaufende Division Beispiel Das zeitdiskrete Signal h[n] der in Gleichung (4.20) 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.20)]. H ( z ) A0 Ak z k 1 z pk N h[n] A0 [n] N A k 1 k pkn (n 0) (4.24) Die z-Transformation besitzt folgende Eigenschaften, welche ausgehend von der Definitionsgleichung (4.18) der z-Transformierten bewiesen werden können: Linearität: a x1[n] b x 2 [n] a X1(z) b X2 (z) Zeitverschiebung: x[n k] Faltung: x[n] h[n] z k X(z) X(z) H(z) Multiplikation mit einer Exponentialfolge: an x[n] X(z/a) Multiplikation mit der Zeit: n x[n] z dX(z)/dz ZHW, DSV 1, 2006/01, Rur&Hrt 4-15 4.10. Ü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-12. Zeitbereich x[n] Bildbereich X(z) h[n] y[n] = x[n]*h[n] Y(z) = X(z)·H(z) H(z) Abbildung 4-12: 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-12 ist ersichtlich, dass gilt H(z) Y(z) . X(z) (4.25) 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.26) Aus den Gleichungen (4.25) und (4.26) 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.27) 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. ZHW, DSV 1, 2006/01, Rur&Hrt 4-16 Die Übertragungsfunktion H(z) eines LTD-Systems kann in die folgende Pol-NullstellenDarstellung gebracht werden: N H(z) b (z z k ) z MN k 1 0 M (z p k (4.28) ) 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 (MN) . (4.29) pk ) k 1 Diese Methode ist sehr praktisch für ein schnelles Abschätzen des Frequenzganges. Die Terme (z-zk) resp. (z-pk) können als komplexe Zeiger (oder als Vektoren) aufgefasst werden. Für die Bildung der Produkte können deshalb die Zeiger-Beträge multipliziert und die Winkel addiert/subtrahiert werden: N Amplituden gang : H z K zz k 1 M k z p k 1 (4.21) k N M k 1 k 1 Phasengang : H z z z k z pk M z k N 1 Das Betragsspektrum 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-13 ist das Pol-Nullstellen-Diagramm eines Hochpass-Filters in der zEbene dargestellt. Die Übertragungsfunktion H(z) lautet H(z) K (z 1) (z j) (z j) K (1 z 1 z 2 z 3 ) , z3 wobei K einen beliebigen Normierungsfaktor darstellt. ZHW, DSV 1, 2006/01, Rur&Hrt 4-17 z-Ebene s2 f=fs/2 s4 P=ej2πfTs für f=fs/8 s1 x[n] Ts K 1 f=0 Ts -1 Ts 1 -1 3 Pole s3 + y[n] Nullstelle Abbildung 4-13: Hochpass-Filter und Pol-Nullstellendiagramm der Übertragungsfunktion. Der Amplitudengang IH(f)I an der Stelle f=fs/8 kann mit den in Abbildung 4-13 dargestellten Abständen bestimmt werden, d.h. H ( f s / 8) K s1 s 2 s3 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-13 dargestellten FIR-Filter realisiert werden. Aus dem Blockdiagramm ist gut ersichtlich, dass ein konstantes Eingangssignal (DC) vollständig unterdrückt wird. In Abbildung 4-14 ist der Amplitudengang des Hochpass-Filters (für K=1) dargestellt. Abbildung 4-14: Amplitudengang des Hochpass-Filters. ZHW, DSV 1, 2006/01, Rur&Hrt 4-18 4.11. Vergleich Laplace-, z- und Fourier-Transformation Der Zusammenhang zwischen der Laplace- und der z-Transformation ist gegeben durch die Substitution z=ej2πfTs . Deshalb gelten die Eigenschaften der Laplace-Tranformation auch für die Fourier-Transformation. s-Ebene z-Ebene Im(s ) Im(z) j2π·f s j2π·fs/ 2 Re(s ) Re(z) j2π·fs/2 j2π·fs Abbildung 4-15: z-Transformation der s-Ebene Aus der Abbildung ist ersichtlich dass die Substitution z=ej2πfTs eine Periodizität mit 2 bewirkt. Die Abbildung s z ist eindeutig. Die Abbildung z s ist vieldeutig. Die imaginäre Achse der s-Ebene wird auf den Einheits-Kreis der z-Ebene abgebildet. Die linke s-Halbebene wird ins Innere des Einheits-Kreises der z-Ebene abgebildet. Bei stabilen Systemen liegen alle Pole in der linken s-Halbebene resp. innerhalb des zEinheitskreises. Die s-Ebene wird für kontinuierliche Signale und Systeme genutzt, die z-Ebene für zeitdiskrete (abgetastete). Damit ergibt sich eine ergänzende Sichtweise auf die Phänomene die im Kapitel 2 „AD/DA-Umsetzung“ beschrieben wurden. Beim Abtasten eines kontinuierlichen Signals (s z) erzeugen um fs verschobene Signale die gleiche Werte-Folge und können nicht mehr unterschieden werden. Deshalb werden vor dem AD-Wandler Anti-Aliasing-Filter benötigt. Undersampling ist hiermit ebenfalls bildlich erklärt. Bei der Rekonstruktion (z s) werden Spiegel-Spektren, die um Vielfache der Abtastfrequenz fs verschoben sind, erzeugt. Die unerwünschten Frequenz-Bereiche müssen mit einem Anti-Imaging-Filter am Ausgang des DA-Wandlers unterdrückt werden. ZHW, DSV 1, 2006/01, Rur&Hrt 4-19 kontinuierlich in der s-Ebene (Laplace): s = +j* Amplitudengang entlang der imaginären Achse (Fourier) 2 2 abs(H) abs(H) 1.5 1 0 10 1 0.5 1 0 0 -10 Im(s) = -1 -2 0 -10 Re(s) = zeitdiskret in der z-Ebene (z-Transformation): z = exp(s*Ts) -5 0 5 10 Amplitudengang entlang dem Einheistkreis (Fourier) 2 1 abs(H) abs(H) 1.5 0 1 0.5 0 Im(z) 1 -1 0 -0.5 0.5 1 Re(z) 0 -10 -5 0 /Ts 5 10 Abbildung 4-16: z-Ebene und s-Ebene, sowie Fourier-Transformation Demo: dsv1kap4_digisys_vergleich.m Betrachtet man in der s-Ebene nur den Verlauf entlang der imaginären Achse so kommt man zur Fourier-Transformation für kontinuierliche Signale. Betrachtet man in der z-Ebene nur den Verlauf entlang des Einheitskreises so kommt man zur Fourier-Transformation für abgetastete Signale. Die Periodizität der z-Ebene ist gut ersichtlich. Bei tiefen Frequenzen stimmen die s- und z-Kurvenverläufe gut überein. In der Nähe von gibt es Abweichungen als Folge des Einflusses des „nächsten Frequenz-Bandes“. Das muss beim Entwurf von Hochpass-Filtern berücksichtigt werden. ZHW, DSV 1, 2006/01, Rur&Hrt 4-20 4.12. Anhang: Formeln und Matlab-Befehle Beschreibung Filter-Koeffizienten Formel Nullstellen und Pole z k , pk Frequenz f (Signal - Frequenz) f s (Abtast - Frequenz) Eingangsfolge Ausgangsfolge Fensterung Impulsantwort Faltung im Zeitbereich Matlab b = [b0, b1, b2, …] a = [1, a1, a2, …] z = [z1, z2, …] p = [p1, p2, …] k % Verstärkungsfaktor w % w = pi*f/fs normiert! bk , a k N % Sample-Anzahl xn yn wn xw n wn xn x y w = window(@hamming,N) hn hn H z hn bn (nur bei FIR) yn hn xn yn h = ifft(H) [h,t] = impz(b,a) % Näherung y = conv(x,h) hk xn k k Filterung im Zeitbereich N M k 0 k 1 yn bk xn k a k yn k H z bn X z xn Y z H z X z y n Y z Übertragungsfunktion H z H z hn Filterung im Frequenzbereich Übertragungsfunktion mit b,a-Koeffizienten y = fftfilt(b,x) % nur FIR-Filter! % vorteilhaft für lange Folgen % Umweg: fft-Filter-ifft H = fft(h); N H z Y z X z b k 0 M k [H,w] = freqz(b,a,N) H = freqz(b,a,w) z k 1 a k z k freqz(b,a) % plotten zplane(b,a) % plotten k 1 Übertragungsfunktion mit Nullst. und Polen N Y z H z k X z z z k 1 M k z p k 1 Übertragungsfunktion mit Biquads second-order-section y = filter(b,a,x) z M N zplane(z,p) % plotten k [b,a] = invfreqz(H,w,Nb,Na) % Näherung [z,p,k] = tf2zp(b,a) [b,a] = zp2tf(z,p,k) z z1 z z1 ... Y z H z k X z z p1 z p1* ... [sos,g] = tf2sos(b,a) [b,a] = sos2tf(sos,g) Konj. kompl. Nullstellen/Pole kombinieren => Weniger Quantisierungs-Fehler [sos,g] = zp2sos(z,p,k) [z,p,k] = sos2zp(sos,g) * ZHW, DSV 1, 2006/01, Rur&Hrt 4-21 In der Tabelle wurden die Befehle mit den am häufigsten benötigten Parametern aufgeführt. Mit „help befehl“ resp. „doc befehl“ werden alle möglichen Varianten aufgelistet. Hilfe und Dokumentation: Matlab-Signal-Processing-Toolbox help signal % listet alle Funktionen der SPT auf der Kommandozeile auf doc signal % listet alle Funktionen der SPT im grafischen Hilfesystem auf help plot % Hilfe zum Plotten auf der Kommandozeile doc plot % Hilfe zum Plotten im grafischen Hilfesystem help befehl % Hilfe zu „befehl“ auf der Kommandozeile doc befehl % Hilfe zu „befehl“ im grafischen Hilfesystem Visualisierung und Entwurf: Matlab-Signal-Processing-Toolbox fdatool % Filter Design and Analysis Tool fvtool(b,a) % Filter Visualization Tool sptool % Signal Processing Tool wintool % Window Design and Analysis Tool Wvtool(W) % Window Visualization Tool Befehle zum Plotten plot % Plotten eines (oder mehrerer) x-y-Kurvenverlaufs semilogx % wie plot, aber x-Achse logarithmisch semilogy % wie plot, aber y-Achse logarithmisch loglog % wie plot, aber beide Achses logarithmisch stem % Plotten einer x-y-Punkteschar auf Stängel stairs % Plotten eines x-y-Treppensignals subplot % Mehrere Plots ins gleiche Fenster zeichnen hold on/off % Mehrere Plots ins gleiche Achsensystem zeichnen pause() % Anhalten der Ausgabe, weiter auf Tastendruck pause(zeit) % Anhalten der Ausgabe, weiter nach zeit Sekunden Amplituden- und Phasengang der Übertragungsfunktion Habs = abs(H) % Amplitudengang der Übertragungsfunktion Hdb = 20*log10(abs(H)) % Amplitudengang der Übertragungsfunktion in dB phi = angle(H) % Phasengang der Übertragungsfunktion in radian phi = angle(H)*180/pi % Phasengang der Übertragungsfunktion in Grad phi = unwrap(angle(H)) % Phasengang der Übertragungsfunktion, 2-Sprünge korrigiert Zwei- und einseitiges Spektrum Die N-Punkt-FFT eines reellwertigen Signals liefert ein zweiseitiges Spektrum mit N äquidistanten Frequenzlinien zwischen 0 und fs. Die zweite Hälfte des Spektrums ist dabei ein konjugiert komplexes Abbild der ersten Hälfte. Ohne Informationsverlust kann deshalb das einseitige Spektrum verwendet werden. In diesem Fall wird nur die erste Hälfte (N äquidistante Frequenzlinien zwischen 0 und fs/2) des Vektors genommen, die Amplituden werden verdoppelt, die Phasen bleiben gleich. Matlab-Index beginnt bei 1, Sample- und Frequenzlinien-Nummerierung jedoch bei 0 fs = 8000; % Abtastfrequenz N = 64; % Samples = Anzahl Frequenzlinien n = 0:N-1; % Sample-Nummerierung = Frequenzlinien-Nummer. t = n/fs; % Abtast-Zeitpunkte f = n*fs/N; % Frequenzen der Frequenzlinien Zeilen- in Spalten-Vektor umwandeln, und umgekehrt b = a'; % ' transponiert den Vektor oder die Matrix ZHW, DSV 1, 2006/01, Rur&Hrt 4-22 Frequenz versus Kreisfrequenz Bei einigen Befehlen arbeitet Matlab mit der normierten Frequenz f/fs/2, also die Frequenz bezogen auf die Nyquist-Frequenz. Zahlenbereich: 0 bis 1. Andere Matlab-Befehle arbeiten mit der normierten Kreisfrequenz. Zahlenbereich: 0 bis . Wieder andere erwarten f und fs als separate Parameter. Die Details müssen in der Hilfestellung zum Befehl nachgelesen werden. help befehl resp. doc befehl.