Die Diskrete Fouriertransformation (DFT)
Transcription
Die Diskrete Fouriertransformation (DFT)
Kapitel 1 Die Diskrete Fouriertransformation (DFT) 1.1 Einleitung Zerlegt man Signale in sinusoidale (oder komplex exponentielle) Komponenten, dann spricht man von der Darstellung der Signale im Frequenzbereich. In Anlehnung an die Physik wird diese Darstellung auch Spektraldarstellung genannt. Die bekannteste Form der Darstellung im Frequenzbereich ist die Zerlegung von periodischen kontinuierlichen Signalen in Fourierreihen. Die Zusammensetzung von zeitbegrenzten kontinuierlichen Signalen aus sinusoidalen Komponenten führt zur Fouriertransformation. Die Diskrete Fouriertransformation (DFT) ist eine Rechenvorschrift zur Bestimmung der Spektralkomponenten von periodischen diskreten Signalen. Mit Hilfe der diskreten Fouriertransformation sind wir in der Lage, (digitale) Signale auf eine Art und Weise zu verarbeiten (analysieren, synthetisieren, verändern), wie es bei kontinuierlichen Signalen nicht möglich ist. Bei kontinuierlichen Signalen ist man auf die Möglichkeiten der analytischen Behandlung eingeschränkt. Die analytische Behandlung liefert zwar tiefe Einsichten in das Verständnis von Signalen und Systemen, in vielen Fällen ist aber eine analytische Berechnung nicht möglich und man ist auf numerische Verfahren angewiesen. Fourierreihe, Fouriertransformation und DFT sind einander vom mathematischen Kern sehr ähnlich, was man in der Tabelle » Gegenüberstellung Fourierreihe, Fouriertransformation, DFT« leicht sehen kann. Bei jeder dieser Transformationen gibt es das Transformationspaar: 1 2 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Zusammensetzung eines Zeitsignals1 aus seinen spektralen Komponenten, Frequenzsynthese oder Übergang vom Frequenz- in den Zeitbereich genannt. Bestimmung des spektralen Inhalts eines Zeitsignals, Frequenzanalyse oder Übergang vom Zeit- in den Frequenzbereich genannt. Da das Rechnen mit sinusoidalen Komponenten im Reellen aufwendig ist, bedient man sich bei der Signalverarbeitung der komplexen Darstellung und rechnet bei Bedarf auf reellwertige Darstellung um. Die Umrechnung auf reellwertige Signale erfolgt durch Realteilbildung oder durch Darstellung in konjugiert komplexer Form. Ob ein Signal reell- oder komplexwertig ist, kann aus dem Zusammenhang erkannt werden. Um leichter unterscheiden zu können verwenden wir gelegentlich x(t) für reellwertige, x(t)für komplexwertige Signale. x(t) x(t) Aej(!0 t+') Aej(!0 t+') = A cos (! o t + ') + jA sin (! o t + ') n o = Re Aej(!0 t+') = A cos (! o t + ') = (1.1) j' j! 0 t = Ae | {z } e (1.2) X x(t) = X j!0 t X e + e 2 2 j! 0 t (1.3) Zu beachten ist, dass in X die Phase ' scheinbar verschwunden ist. Dafür ist die Amplitude komplex, da die Phase ' durch Herausheben mit der Amplitude zusammengefasst wird. Damit spart man sich Schreibarbeit. Gegenüberstellung Fourierreihe, Fouriertransformation, DFT Synthese Analyse 1 R P jk! 0 t Fourierreihe x(t) = Xk e Xk = T1 x(t)e k= 1 Fouriertransformation DFT (1) DFT (2) x(t) = x[n] = ! b0 = 1 2 1 N 2 N x[n] = 1 N R1 !0 = T0 : : :Periodendauer R1 X(!) = x(t)e j!t X(!)ej!t 1 NP1 != X[k]ejkb!0 n 1 1; :::; 1 NP1 X[k] = x[n]e jkb !0 n n=0 k=0 NP1 2 T0 jk! 0 t T0 X[k]ej(2 X[k] = NP1 x[n]e j(2 n=N )k n=0 k=0 n = 0; 1; 2; :::; N k=N )n 1 k = 0; 1; 2; :::; N 1 Wir können uns bei der Signalverarbeitung auf Zeitsignale beschränken und sprechen von Zeit- und Frequenzbereich. Die dargestellten Methoden können aber auch auf andere Zusammenhänge angewandt werden. In diesen Fällen sprechen wir vom Original- und Bildbereich. 1 1.2. ZEITDISKRETE SINUSOIDALE SIGNALE 3 Bei der Fouriersynthese (Übergang vom Frequenz- in den Zeitbereich) werden die Frequenzkomponenten Xn ej!n t des Signals addiert. Jede Frequenzkomponente ! n hat die zugehörige (komplexe) Xn Amplitude . Fourierreihe: Bei periodischen Signalen treten diskrete (endlich oder unendlich viele) Spektrallinien (Frequenzkomponenten) auf, aus denen das Signal zusammengesetzt (aufgebaut) ist. Fouriertransformation: Bei zeitlich begrenzten (aperiodischen) Signalen tritt ein kontinuierliches Spektrum (unendlich nahe beieinander liegende Spektrallinien) auf, das Aufsummieren erfolgt daher über die Integration. Anmerkung 1.1 Zeitlich begrenzte Signale haben für begrenzte Zeit Werte ungleich Null, vorher und nachher ist der Signalwert Null. Wir verwenden zum Aufbauen unserer Signale aber sinusoidale Aufbaufunktionen, die sich von 1 bis +1 erstrecken, also (auß er in den Nulldurchgängen) ungleich Null sind. Um zu erreichen, dass der Signalwert Null wird, müssen sich die Aufbaufunktionen durch Überlagerung auslöschen. Das ist nur möglich, wenn man unendlich viele Aufbaufunktionen verwendet, die unendlich dicht liegen. DFT (1): Bei der DFT treten endlich viele diskrete Spektrallinien auf, die summiert werden müssen. Um die einzelnen Frequenzkomponenten besser zu erkennen und um sich die Darstellung besser merken zu können, wurde in DFT (1) die (unübliche) Schreibweise mit ! b gewählt. In der Literatur ist die Schreibweise DFT (2) gebräuchlich. Bei der Fourieranalyse werden die in x(t) enthaltenen Zeiger in die Gegenrichtung » gedreht« , also mit e jk!0 t multipliziert, wodurch die Komponente k angehalten wird, während alle anderen Komponenten sich mit Vielfachen von ! 0 drehen. Bildet man nun den Mittelwert über die Periode T0 , so ergibt sich Xk für angehaltene Komponente, für alle anderen Komponenten ist der Mittelwert Null. Bei der Fourierreihe und der Fouriertransformation treten zeitkontinuierliche Signale auf, der Mittelwert wird daher mit Integration bestimmt. Bei der DFT treten zeitdiskrete Signale auf, der Mittelwert wird daher durch Summenbildung bestimmt. 1.2 Zeitdiskrete sinusoidale Signale Wir können zeitdiskrete sinusoidale Signale in folgenden Formen darstellen2 x[n] = A cos(! 0 n + ') bzw. x[n] = Xej!0 n 1<n<1 2 Bei zeitkontinuierlichen Signalen verwenden wir ! zur Darstellung der Frequenz, bei zeitdiskreten Signale verwenden wir zur Unterscheidung ! b . Wenn eine Verwechslung auszuschließ en ist, verwenden wir wegen der einfacheren Schreibweise nur !. 4 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Zum Unterschied von kontinuierlichen sinusoidalen Signalen gibt es für zeitdiskrete sinusoidale Signale Einschränkungen, die wir im Folgenden näher betrachten wollen. Periodizität mit der Periodendauer N ist nur dann gegeben, wenn x[n + N ] = x[n] für alle n Den kleinsten Wert von N , für den diese Beziehung gilt, nennt man Grundperiodendauer. Für die komplexe Exponentialfunktion erhalten wir ej!0 (n+N ) = ej!0 n ej!0 N = ej!0 n Damit diese Gleichung stimmt, muss gelten ej!0 N = 1 = ejk2 k beliebige ganze Zahl Aus obiger Gleichung folgt ! 0 N = 2 f0 N = 2 k und es ist daher k N Ein zeitdiskretes sinusoidaDie zeitdiskrete sinusoidale Schwingung kann also nur dann periodisch sein, les Signal ist nur dann peri- wenn f0 das Verhältnis von zwei ganzen Zahlen, also rational, ist. Wir können odisch, wenn seine Frequenz daher schreiben f0 das Verhältnis von zwei 2 k ganzen Zahlen, also eine raej!0 n = ej N n tionale Zahl ist. Bei gegebener Periodendauer N können wir unterschiedliche komplexe ExFür die Periodendauer N ponentialfolgen durch Änderung von k erzeugen. Es gibt allerdings nur N unexistieren nur N unterscheidterschiedliche Frequenzen, da bare komplexe Exponential2 (k+N ) 2 k 2 k folgen. ej N n = ej N n ej2 n = ej N n f0 = Der Bereich von k kann daher auf k = 0; 1; 2; : : : ; N 1 eingeschränkt werden. x[n] = ej 2 k N n ; k = 0; 1; 2; : : : ; N 1 Die Abbildung 1.1 zeigt den Realteil von komplexen Exponentialfolgen mit der Periodendauer N = 8 (Punkte 0 : : : 7). Zur besseren Erkennbarkeit der Periodizität ist der Punkt 8, der erste Punkt der neuen Periode, ebenfalls dargestellt. Die Folgen 1 $ 7, 2 $ 6 und 3 $ 5 sind aus Symmetriegründen identisch. Für k > N 1 wiederholen sich die Folgen: 8 $ 0, 9 $ 1, 10 $ 2, 11 $ 3. 1.3 Eigenschaften der diskreten Fouriertransformation DFT/iDFT sind, abgesehen Ermittlung des spektralen Inhalts eines Signals x[n] vom negativen Vorzeichen N X1 und der Skalierung 1=N , 2 n X[k] = x[n]e j N k k = 0; 1; 2; : : : ; (N identisch. n=0 1) DFT 1.3. EIGENSCHAFTEN DER DISKRETEN FOURIERTRANSFORMATION5 1 0 -1 0 5 k=0 1 1 1 0 0 0 -1 0 -1 5 k=1 1 5 k=2 1 0 -1 0 -1 0 5 k=7 0 5 k=6 1 1 0 0 0 0 -1 5 k=8 0 5 k=3 0 5 k=5 0 5 k=4 0 5 k = 11 0 -1 1 -1 0 -1 1 0 -1 1 0 -1 5 k=9 1 0 0 5 k = 10 -1 Abbildung 1.1: Realteil komplexe Exponentialfolge Berechnung des Signals aus seinen Spektralkomponenten x[n] = N 1 1 X X[k]ej(2 N k=N )n n = 0; 1; 2; : : : ; (N 1) inverse DFT k=0 Diese Schreibweise der DFT führt zu einer sehr kompakten Darstellung. Um zu » sehen« , was hinter der kompakten Darstellung steckt, lösen wir die Reihendarstellung auf und erhalten X[k] = x[0]e j(2 0=N )k +x[1]e j(2 1=N )k +x[2]e .. . j(2 2=N )k +x[N 1]e k = 0; 1; 2; : : : ; (N 1) j([2 (N 1)=N ])k Wir wählen als Beispiel N = 4 und erhalten unter Verwendung der Euler’schen Beziehung ej' = cos ' + j sin ' ! e j' = cos ' j sin ' X[k] = 3 X n=0 x[n] fcos (2 nk=4) j sin (2 nk=4)g 6 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) X[0] = x[0] fcos (2 +x[1] fcos (2 +x[2] fcos (2 +x[3] fcos (2 X[1] = x[0] fcos (2 1 0=4) 2 0=4) j sin (2 j sin (2 1 0=4)g 2 0=4)g 3 0=4) j sin (2 3 0=4)g 0 1=4) j sin (2 0 1=4)g j sin (2 1 1=4)g 2 1=4) j sin (2 2 1=4)g +x[3] fcos (2 3 1=4) j sin (2 3 1=4)g = x[0] fcos (2 = 0 0=4)g 1 1=4) 0 2=4) j sin (2 0 2=4)g +x[1] fcos (2 1 2=4) j sin (2 1 2=4)g 2 2=4) j sin (2 2 2=4)g +x[3] fcos (2 3 2=4) j sin (2 3 2=4)g +x[2] fcos (2 X[3] j sin (2 +x[1] fcos (2 +x[2] fcos (2 X[2] 0 0=4) x[0] fcos (2 0 3=4) j sin (2 0 3=4)g +x[1] fcos (2 1 3=4) j sin (2 1 3=4)g 2 3=4) j sin (2 2 3=4)g +x[3] fcos (2 3 3=4) j sin (2 3 3=4)g +x[2] fcos (2 Jeder X[k]-Term ist die Summe des Punkt-für-Punkt-Produkts der Eingangsfolge x[n] und der komplexen Exponentialfolge (hier in kartesischer Schreibweise). Die Frequenz k der sinusoidalen Folgen hängt ab von der Abtastfrequenz des Originalsignals und der Zahl der Abtastpunkte. Bei einer Abtastfrequenz von 480 Hz und 16 Punkten ist der Frequenzraster fs = N X[0] = 480 = 30 16 0 Hz; X[1] = 30 Hz; X[2] = 60 Hz; : : : ; X[15] = 450 Hz Wie man sieht, steckt hinter der DFT ein beachtlicher Rechenaufwand, den NP1 2 n man hinter der kompakten Notation X[k] = x[n]e j N k nicht vermuten n=0 würde. Als Beispiel berechnen wir das Spektrum des Signals x(t) = sin(2 1000 t) + sin(2 2000 t + 34 ), dargestellt in Abbildung 1.2, mit 1.3. EIGENSCHAFTEN DER DISKRETEN FOURIERTRANSFORMATION7 1.5 1 0.5 0 -0.5 -1 -1.5 0 1 2 3 Abbildung 1.2: x(t) = sin(2 4 1 t) + 5 1 2 6 sin(2 7 2 t + 3 =4) Hilfe einer Tabellenkalkulation. Das Signal wird mit der Abtastfrequenz fs = 8 kHz abgetastet. Es werden nur acht Punkte berechnet, um den Rechenaufwand gering zu halten. X[k] = x[n] 2 N XN = 1 N =0 2 8 x[n] cos n 2 8 1 n 2 kn N j sin cos( 28 1 n) 2 kn N sin( 28 1 n) x[n] cos() 0:3535 0:785398 0 0:000 1:000 0:000 0:354 0:3535 1 0:785 0:707 0:707 0:250 0:6464 2 1:571 0:000 1:000 0:000 1:0607 3 2:356 0:707 0:707 0:750 0:3535 4 3:142 1:000 0:000 0:354 1:0607 5 3:927 0:707 0:707 0:750 1:3535 6 4:712 0:000 1:000 0:000 0:3535 7 5:498 0:707 0:707 0:250 X [k = 1] 0.000 Wiederholt man obigen Rechenoperationen für k = 0; 2 7; 8; 9, so ergeben sich die Werte der folgenden Tabelle. Insbesondere kann man sehen, dass X[0] = X[8]; X[9] = X[1]; : : : : Das Spektrum ist periodisch. Realteil Imaginärteil Betrag\Phase X[k = 1] 0:000 j4:000 4\ 90 X[k = 2] 1:414 j1:414 2\45 X[k = 3] 0:000 j0:000 0\0 X[k = 4] 0:000 j0:000 0\0 X[k = 5] 0:000 j0:000 0\0 X[k = 6] 1:414 j1:414 2\ 45 X[k = 7] 0:000 j4:000 4\90 X[k = 0; 8] 0:000 j0:000 0\0 X[k = 9; 1] 0:000 j4:000 4\ 90 x[n] sin() 0:000 0:250 0:646 0:750 0:000 0:750 1:354 0:250 –j 4.000 4\–90 8 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) 4 2 0 -2 -4 0 1 2 3 4 5 6 7 3 4 Imaginärteil 5 6 7 Realteil 4 2 0 -2 -4 0 1 2 Abbildung 1.3: Spektrum von x[n] = [0:35 0:35 0:64 1:06 0:35 1:06 1:35 0:35] Das Spektrum des abgetasteten Signals x[n] = [0:3536 0:3536 0:6464 1:0607 0:3536 1:0607 1:3536 0:3536] kann einfacher mit der Matlabfunktion X = fft(x) berechnet werden. Das ermittelte Spektrum ist in Abbildung 1.3 dargestellt. Die Spektralkomponente X[0 ] = 0, da der Gleichanteil des Signals Null ist. Der Betrag der Spektralkomponente jX[1] = 4j und der Betrag der Spektralkomponente jX[2] = 2j. 1.3.1 DFT Amplituden Das Auftreten der Amplituden jX[1] = 4j und jX[2] = 2j ist überraschend, da die Amplituden unseres kontinuierlichen Ausgangssignals 1 bzw. 0:5 waren. Das ist eine Besonderheit der DFT: Enthält ein reellwertiges Signal eine sinusoidale Komponente der Amplitude A, wird die zugehörige Spektralkompor = A N2 . (Bei komplexwertigen Signalen mit sinusoidaler Komponente nente XA k wird XA = AN .) Da man in der Regel an den relativen und nicht an den absoluten Amplituden der Signale interessiert ist, spielt dieser Skalierungsfaktor keine wichtige Rolle. 1.3.2 Periodizität Für das N Punkt DFT Paar x[n]und X[k] folgt aus den Beziehungen der DFT bzw. der iDFT unmittelbar x[n + N ] = x[n] für alle n X[k + N ] = X[k] für alle k 1.3. EIGENSCHAFTEN DER DISKRETEN FOURIERTRANSFORMATION9 Sowohl Spektrum als auch Zeitfunktion sind periodisch fortgesetzt, es gibt Sowohl Zeitfolge als auch Spektrum sind bei der DFT also keine DFT für aperiodische Folgen. periodisch. Es gibt keine DFT für eine aperiodische 1.3.3 Symmetrieeigenschaften der DFT Folge! Für die Spektralkomponenten der DFT gilt: X[k] = X [N k] Re fX[k]g = Re fX[N k]g ; Im fX[k]g = Im fX[N k]g Beispiel N gerade: N = 8 : X1 = X7 ; X2 = X6 ; X3 = X5 ; X4 = reell, N ungerade: N = 7 : X1 = X6 ; X2 = X5 ; X3 = X4 :3 Die Symmetrieeigenschaft lässt sich mit Hilfe der komplexen Exponentialfunktion sehr einfach beweisen, in dem wir N k für k ersetzen. X[k] = N X1 x[n]e j 2Nn k n=0 X[N k] = N X1 x[n]ej 2 n N k ) X[N k] = N X1 x[n]e j 2Nn (N n=0 k) = N X1 n=0 = X [k] j2 n j x[n]e| {z }e 2 n N k 1 n=0 Aus dieser Eigenschaft können wir noch ablesen, dass der Realteil von X[k] eine gerade Funktion ist, der Imaginärteil von X[k] ungerade ist, der Betrag von X[k] gerade und die Phase von X[k] ungerade ist. Für die praktische Berechnung bedeutet das, dass wir nur N2 +1 Komponenten berechnen müssen, die restlichen Komponenten ergeben sich aus der Symmetrie. 1.3.4 Diese Eigenschaft gilt nur für reellwertige Zeitfolgen, was bei technischen Signalen immer der Fall ist. Linearität der DFT Die DFT besitzt die Eigenschaft der Linearität wir können daher den Überlagerungssatz anwenden. Deshalb können komplexe Signale in sinusoidale Komponenten zerlegt und dann die DFT angewandt werden. x1 [n] + x2 [n] X1+2 [k] = X1 [k] + X2 [k] = N X1 n=0 = N X1 fx1 [n] + x2 [n]g e x1 [n]e j 2Nn k + n=0 1.3.5 j 2Nn k N X1 x2 [n]e j 2Nn k = X1 [k] + X2 [k] n=0 Frequenzachse der DFT Durch die Abtastung der Signale geht die Frequenzachse verloren. Am Beispiel Ohne Kenntnis der Abtastfrequenz können wir das Si3 Die DFT berechnet das Spektrum von 0 2 : Häu…g ist es anschaulicher das Spektrum von bis darzustellen. Mit Hilfe der Matlab-Funktion fftshift(X) kann das erreicht gnal nicht eindeutig rekonwerden. struieren! 10 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Abbildung 1.4: Abbbildung 1.2 zeitverschoben der Kosinusschwingung sehen wir, dass x[n] = x(nT ) = A cos(!nTs + ') = A cos(b ! n + ') und wir erhalten die normalisierte Kreisfrequenz ! b = nTs . Von der diskreten Darstellung …nden wir zur kontinuierlichen Darstellung über die Beziehung fkontinuierlich = k fNs . Der Abstand der Spektrallinien der DFT ist daher fNs , auß erhalb dieses Rasters treten keine Spektrallinien auf. 1.3.6 (Zirkuläre ) Verschiebung im Zeitbereich Wenn die DFT des Signals x[n] , X[k] ist, dann gilt für das zeitverschobene Signal x[n m] , Xverschoben [k] = X[k]e j 2Nk m Das Spektrum des zeitverschobenen Signals errechnet sich also aus X[k], wobei jede Spektralkomponente k eine frequenzproportionale (lineare) Phasenver2 k schiebung von e j N m erfährt. Das Amplitudenspektrum des zeitverschobenen Signals bleibt –wenig überraschend –unverändert. Für unser Beispiel Abbildung 1.2 haben wir Betrags- und Phasenspektrum berechnet und erhalten die Phasen k = 1 ! 90 ; k = 2 ! +45 Verschieben wir unser Signal nach links, in Abbildung 1.4 um n = 3, dann erhalten wir x[n] = [1:0607 0:3536 1:0607 1:3536 0:3536 0:3536 0:3536 0:6464] Das zugehörige Spektrum ist in Abbildung 1.5 dargestellt. Das Betragsspektrum ist unverändert, das neue Phasenspektrum ergibt sich 2 1 2 2 2 k durch Multiplikation mit ej N m ! ej 8 3 = 135 und ej 8 3 = 270 aus den Phasen des nichtverschobenen Signals 90 + 135 = 45 und +45 + 270 = 315 = 45 : Liegt ein Signal spiegelsymEin zweites Beispiel, dargestellt in Abbildung 1.6, zeigt die Verschiebung metrisch um den Nullpunkt, einer Dreiecksfolge. Liegt die Dreiecksfolge symmetrisch um n = 0; dann ist die ist die Phase immer Null. Phase Null. Bei Verschiebung nach rechts wird die Phase negativ, bei Verschiebung nach links positiv. 1.3. EIGENSCHAFTEN DER DISKRETEN FOURIERTRANSFORMATION11 4 2 0 -2 -4 0 1 2 3 4 5 6 7 4 5 6 7 Betrag 50 0 -50 0 1 2 3 Phas e Abbildung 1.5: Spektrum von x[n] = [1.06 0.35 -1.06 -1.35 -0.35 0.35 0.35 0.64] 10 10 0 5 -10 0 0 50 100 symmetrisch um Nullpunkt 0 20 40 Phase Null 60 0 20 40 Phase negativ 60 0 20 40 Phase positiv 60 10 10 0 5 -10 0 0 50 100 verschoben nach rechts 10 10 0 5 -10 0 0 50 100 verschoben nach links Abbildung 1.6: Verschiebung Dreiecksfunktion 12 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) 1 1 0.5 0.5 0 0 -0.5 -0.5 -1 0 0.5 Zeitbereic h f = 2 1 -1 15 15 10 10 5 5 0 0 5 10 Betragss pek trum 15 0 0 0.5 Zeitbereic h f = 2.5 0 5 10 Betragss pek trum 1 15 Abbildung 1.7: Darstellung des Lecke¤ekts 1.4 1.4.1 Anwendung der DFT Frequenzachse der DFT (Teil 2) Die Spektralkomponenten der DFT können nur im Abstand von fNs liegen. Enthält das Signal Frequenzkomponenten, die nicht auf Spektrallinien liegen, dann » nähert« die DFT diese Frequenzen durch benachbarte Frequenzen an. Darstellung 1.7 zeigt links ein Signal der Frequenz f = 2 mit einer 32-Punkt DFT (nur die Hälfte des Spektrums ist dargestellt). In Fall von f = 2 liegt die Spektrallinie wie erwartet auf k = 2. Das zweite Signal (rechts in der Abbildung) hat die Frequenz f = 2:5, die nicht auf dem Frequenzraster liegt, da k = 0; 1; 2; : : : ; 16 sein muss. Das Spektrum kann daher nur » angenähert« werden. Durch Wahl eines größ eren N kann das Frequenzraster feiner gemacht werden. Da aber die spektrale Zusammensetzung eines praktischen Signals in der Regel nicht bekannt ist, ist es unwahrscheinlich, dass die Spektralkomponenten auf dem Raster liegen. Daher ist das mit Hilfe der DFT ermittelte Spektrum in der Regel nur eine Näherung. Den E¤ekt, der durch die Rasterung der Spektrallinien auftritt, nennt man Leck-E¤ekt oder Leakage. 1.4.2 Leck-E¤ekt (Leakage) Um zu einem besseren Verständnis des Leck-E¤ekts zu gelangen, untersuchen wir die DFT der komplexen Exponentialfolge x[n] = ej(b!0 n+') n = 0; 1; 2; : : : ; N 1 im Detail und erhalten 1.4. ANWENDUNG DER DFT N X1 X[k] = 13 j(2 =N )kn x[n]e = n=0 j' Wir heben e ej' N X1 2 k e j( N n=0 N X1 ej(b!0 n+') e j(2 =N )kn n=0 heraus, fassen zusammen und schreiben die Reihe aus ! b 0 )n h = ej' e j(0) 2 k + e j( N ! b 0 )1 L P Unter Verwendung der Reihensumme 2 k + e j( N ( xm = m=0 ! b 0 )2 1 xL+1 1 x 2 k + : : : + e j( N x 6= 1 x=1 L+1 wird aus dem obigen Ausdruck in eckiger Klammer X[k] = ej' 2 k e j( N 2 k 1 e j( N 1 ! b 0 )N ! b0 ) Zur Vereinfachung der Schreibweise führen wir die Abkürzung j N = 2Nk ! b 0 ein und erhalten ej' 11 ee j . Heben wir jetzt im Nenner e j N=2 und im Zähler e j =2 heraus wird daraus e j' e j e N 2 j 2 ej N 2 ej 2 e N 2 j e j' j =e e j N 1 N 2 e j ej 2 e j ej N 2 2 2 j 2 j Unter Verwendung der Euler’schen Beziehung sin = e 2je wird aus dem obigen Ausdruck N 1 sin( N ) ej' e j 2 sin 2 und nach Rücksubstitution von erhalten wir (2) X[k] = |ej' e j N2 1 ( 2Nk {z nur Phase ! b 0 ) sin } sin | N 2 1 2 2 k N 2 k N {z ! b0 ! b0 } Diriclet’sche Funktion Der Teil e j(:::) stellt eine Phasenbeziehung dar, der zweite Teil des Ausdrucks ist als Diriclet’sche Funktion (DF) oder periodische sinc-Funktion bekannt. Damit haben die DFT berechnet und können für ! b 0 auswerten. Abbildung 1.8 zeigt die Diriclet‘sche Funktion für N = 8, ausgewertet für den Wertebereich von 0 : : : 2 : N 1 2 k sin N2 2Nk ! b0 aus Wie wir sehen, besteht X[k] = e|j' e j 2{z( N !b 0 }) 1 2 k ! b0 sin 2 N nur Phase | {z } Diriclet’sche Funktion » Proben« der DF. Wir berechnen nun X[k], wobei wir uns nur für die Amplituden der Spektralkomponenten interessieren und daher den Phasenterm weglassen. Für die Komponente mit f = 3 erhalten wir Abbildung 1.9 ! b 0 )(N 1) i KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.2 0.4 0.6 0.8 1 N =8 Abbildung 1.8: Diriclet’sche Funktion Time-Domain (f = 3, T = 1, fs = 8, N = 8) 1 x( t) 0.5 0 -0.5 -1 0 0.2 0.4 0.6 0.8 1 t 1.2 1.4 1.6 1.8 2 Frequency-Domain 4 3 |X( f) | 14 2 1 0 0 2 4 6 8 f 10 12 14 16 Abbildung 1.9: Frequenz auf Raster ) kein Auftreten von Leakage 1.4. ANWENDUNG DER DFT 15 Time-Domain (f = 2.3, T = 1, fs = 8, N = 8) 1 x(t) 0.5 0 -0.5 -1 0 0.5 1 t Frequency-Domain 1.5 6 12 2 |X(f)| 3 2 1 0 0 2 4 8 f 10 14 16 Abbildung 1.10: Frequenz nicht auf Raster ) Leakage Als zweites Beispiel (Abbildung 1.10) werten wir für f = 2:3 aus, also einer Frequenz, die nicht auf dem Raster der DFT liegt. Die DF wird wieder im Frequenzraster 0; 1; 2; : : : ; 15 ausgewertet, da die DFT nur für diese Frequenzen existiert. Das Hauptmaximum der DF Funktion liegt aber bei f = 2:3, die DF ist gegenüber dem vorherigen Beispiel (f = 3) verschoben. Die Anteile der DF werden in den Punkten 0; 1; 2; : : : ; 15 nicht Null! Das Spektrum für wird mit Hilfe aller Spektralkomponenten » angenähert« . In den beiden Beispielen sind die kontinuierlichen Signale als Referenz eingezeichnet, das Ausgangssignal in Blau, die periodische Fortsetzung in Grün. Im Beispiel mit f = 3 sehen wir, dass die periodische Fortsetzung des Signal (grau markierter Bereich) das Originalsignal kontinuierlich, ohne Sprung, weiterführt. Das ist immer dann der Fall, wenn die Signalfrequenz im Raster der Abtastung liegt. Im Beispiel mit f = 2:3 sehen wir, dass die periodische Fortsetzung des Signals (grau markierter Bereich) zu einem Sprung am Ende der Periodendauer führt. Das bedeutet mit anderen Worten, dass die DFT nicht das Spektrum der Kosinusfunktion mit Frequenz f = 2:3 ermittelt, sondern das Spektrum der abgeschnittenen und periodisch fortgesetzten Kosinusfunktion. Für diese » abgeschnittene und periodisch fortgesetzte« Kosinusfunktion wird das Spektrum korrekt berechnet! Anhand der beiden Beispiele können wir den Leck-E¤ekt besser verstehen. Das hilft allerdings bei der Berechnung der Spektren wenig: Die nicht auf dem Frequenzraster liegen Signalkomponenten können nur näherungsweise dargestellt werden. In unseren beiden Beispielen haben wir zur einfacheren Rechnung das komplexe Signal x[n] = ej(b!0 +') verwendet. Für den (reellwertige) Kosinus ist aber Das der DFT zu Grunde liegende Signal ist auf Grund der Abtastung immer periodisch. Es gibt keine DFT einer aperiodischen Funktion! 16 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Time-Domain (f = 2.2, T = 1, fs = 8, N = 8) x(t) 1 0 -1 0 0.5 1 t Frequency-Domain 1.5 2 |X(f)| 4 2 0 0 5 10 15 f Abbildung 1.11: Leakage (reelwertiger) Kosinus x[n] = 12 ej(b!0 n+') + e j(b!0 n+') , wir müssen daher die Spektren von ej(b!0 n+') und e j(b!0 n+') überlagern. Das Ergebis dieser Berechnung ist in Abbildung 1.11 dargestellt. 1.4.3 Spektrum nichtperiodischer Signale Die DFT beruht auf periodischen Folgen, die Signaldarstellung ist im Zeit- und im Frequenzbereich daher immer periodisch. Es gibt keine DFT einer aperiodischen Funktion! In praktischen Anwendungen gibt es aber keine periodischen Signale, jedes Signal hat seinen Anfang und sein Ende. Da die DFT nur für periodische Signale de…niert ist, helfen wir uns damit, dass wir an das periodische Signal Nullen anhängen, um Nichtperiodizität anzunähern. Wir müssen uns aber immer darüber im Klaren sein, dass wir es mit periodischen Signalen zu tun haben, auch wenn wir für die Berechnung nur eine Periodendauer brauchen. Wenn wir das Einfügen von Nullen (zero-padding) verwenden wollen, stellt sich natürlich die Frage, wie viele Nullen wir einfügen sollen. Je mehr Nullen desto größ er der Rechenaufwand, wir wollen also die Zahl der eingefügten Nullen gering halten, aber dennoch Nichtperiodizität gut annähern. Wir stellen die Zusammenhänge anhand eines Beispiels dar. x[n] = cos 2L 0:5 1 0 0 n L sonst 1 Zunächst wollen wir keine Nullen einfügen und erhalten Abbildung 1.12 Wir stellen nur eine Periodendauer dar, müssen uns das Signal aber periodisch fortgesetzt denken. Im Spektrum sehen wir den Gleichanteil und die 1.4. ANWENDUNG DER DFT 17 Zeitbereic h L= 16 N= 16 1 0.8 0.6 0.4 0.2 0 0 5 0 5 10 15 10 15 8 6 4 2 0 Frequenz bereic h Abbildung 1.12: Ohne Zero Padding Spektralkomponente der Kosinusfunktion. Im zweiten Beispiel fügen wir 16 Nullen an und erhalten Abbildung 1.13. Wir sehen, dass nur die ersten sechs Spektrallinien erkennbar sind, für höhere Frequenzen werden die Amplituden sehr klein. Erhöhen wir N wird die Darstellung zwar feiner, aber am prinzipiellen Verlauf ändert sich nichts, wie in Abbildung 1.14 gezeigt. Lassen wir N ! 1 gehen, wird aus der DFT die zeitdiskrete Fouriertransformation (Discrete Time Fourier Transform) DTFT X(!) = 1 X x[n]e j!n n= 1 Die DTFT hat eine aperiodische und diskrete Zeitfunktion und ein periodisches kontinuierliches Spektrum. Das in Abbildung 1.15 gezeigte Beispiel zeigt das Ergebnis der DTFT der Folge x[n] = (0:5) n 1 [n] , X(!) = 1 1 0:5e j! Die DTFT ist in der digitalen Signalverarbeitung vor allem von theoretischem Interesse, da ein kontinuierliches Spektrum nicht gespeichert und mit dem Rechner verarbeitet werden kann. Die DFT entsteht durch Abtastung des Spektrums aus der DTFT in den Punkten ! ! 2N k k = 0; 1; : : : ; N 1. Zero Padding liefert selbstverständlich keine zusätzliche Information über das Spektrum des Signals, es » verbessert« lediglich die Darstellung der DFT. Um die spektrale Au‡ösung von zwei Signalen zu verbessern, müssen bei der Abtastung mehr Signalproben ungleich Null genommen werden. Das Frequenzspektrum einer N Punkt DFT besteht aus N=2+1 Spektrallinien zwischen Null 18 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Zeitbereich L= 16 N= 32 1 0.8 0.6 0.4 0.2 0 0 5 10 0 5 10 15 20 25 30 35 25 30 35 8 6 4 2 0 15 20 Frequenzbereich Abbildung 1.13: Anfügen von 16 Nullen Zeitbereic h L= 16 N= 128 1 0.8 0.6 0.4 0.2 0 0 20 40 0 20 40 60 80 100 120 140 100 120 140 8 6 4 2 0 60 80 Frequenz bereic h Abbildung 1.14: Anfügen von 128 Nullen 1.4. ANWENDUNG DER DFT 19 1 0.8 0.6 0.4 0.2 0 0 5 Zeitbereich 10 2 1 0.5 1.5 0 1 -0.5 0.5 -10 -5 0 5 Betragsspektrum -1 -10 10 -5 0 5 Phasenspektrum 10 Abbildung 1.15: Diskretzeit Fouriertransformation und der halben Abtastfrequenz. Um zwei benachbarte Spektrallinien au‡ösen zu können, muss der Abstand der Spektrallinien dem Abstand des Frequenzrasters sein, wie in Abbildung 1.16 gezeigt In Abbildung 1.16 liegen die Spektrallinien (zufällig) auf dem Frequenzraster. Verschieben wir die beiden Spektrallinien um ein Viertel des Frequenzrasters, tritt Leakage auf und wir erhalten das Spektrum in Abbildung 1.17 Im Beispiel Abbildung 1.18 liegt eine Spektrallinie auf dem Frequenzraster, eine zweite Spektrallinie im Abstand von einem Viertel der Rasterfrequenz und kann daher nicht mehr aufgelöst werden. 1.4.4 Fenstertechnik Den Ausdruck X[k] = sin sin N 2 1 2 2 k N 2 k N ! b0 ! b0 können wir, wie bei Filtern, als » Amplitudengang« der DFT interpretieren: Die komplexe Exponentialfolge x[n] = ej(b!0 +') wird im Zeitbereich mit der Rechteckfunktion (Rechteckfenster) multipliziert. Einer Rechteckfunktion im Zeitbereich entspricht aber immer eine (periodische) sinc-Funktion im Frequenzbereich und umgekehrt. Das Rechteckfenster bzw. dessen DFT helfen uns, den Lecke¤ekt zu verstehen. Wir wollen nun an Stelle des Rechteckfensters andere Fenster verwenden und deren Ein‡uss auf die DFT untersuchen. Die Zusammenhänge bei der Fenste- 20 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) 1 0 -1 0 5 10 15 20 Zeitbereich f1 = 1 25 30 35 0 5 10 15 20 Zeitbereich f2 = 1.0313 25 30 35 0 5 10 15 20 Zeitbereich f1 + f2 25 30 35 0 10 1 0 -1 2 0 -2 2000 0 20 30 40 Betragsspektrum 50 60 Abbildung 1.16: Spektrallinien liegen auf Frequenzzraster 1 0 -1 0 5 10 15 20 Zeitbereich f1 = 1.0078 25 30 35 0 5 10 15 20 Zeitbereich f2 = 1.0391 25 30 35 0 5 10 15 20 Zeitbereich f1 + f2 25 30 35 1 0 -1 2 0 -2 2000 0 0 10 20 30 40 Betrags s pektrum 50 60 Abbildung 1.17: Spektrallinien aus 1.16 um ein Viertel im Raster verschoben 1.4. ANWENDUNG DER DFT 21 1 0 -1 0 5 10 15 20 Zeitbereich f1 = 1 25 30 35 0 5 10 15 20 Zeitbereich f2 = 1.0078 25 30 35 0 5 10 15 20 Zeitbereich f1 + f2 25 30 35 0 10 1 0 -1 2 0 -2 2000 0 20 30 40 Betragsspektrum 50 60 Abbildung 1.18: Eine Spektrallinie auf Raster, zweite um ein Viertelraster verschoben rung sind in Abbildung 1.19 dargestellt. Es mag seltsam erscheinen, dass wir die Kosinusfunktion nicht einfach mit einem Rechteckfenster beschneiden, sondern ein Dreiecksfenster wD = ( 2 n N=2 n N=2 n = 0; 1; 2; : : : N=2 ; n = N=2; : : : N 1 ein von Hann-Fenster wHn = 0:5 1 2 N 1 cos ; n = 0; 1; 2; : : : N 1 oder ein Hammingfenster wHm = 0:54 0:46 cos 2 N 1 ; n = 0; 1; 2; : : : N 1 verwenden. Wir werden aber sehen, dass die Verwendung von Fenstern einen vorteilhaften Ein‡uss auf den Leck-E¤ekt hat. Bei Verwendung eines Fensters wird die DFT X[k] = N X1 n=0 w[n]x[n]e j 2Nn k 22 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) 1 1 0.5 0.5 0 0 -0.5 -1 -0.5 0 5 Recheckfensterfenster 10 -1 1 1 0.5 0.5 0 0 -0.5 -1 0 5 Dreiecksfenster 10 0 5 Hammingfenster 10 -0.5 0 5 von Hann-Fenster 10 -1 Abbildung 1.19: Fenster im Zeitbereich Die Fenster sind in Abbildung 1.20 im Zeit- und im Frequenzbereich dargestellt4 , wobei im Frequenzbereich, zur besseren Bewertbarkeit, die Amplituden logarithmisch dargestellt sind. Wir sehen, dass das Rechteckfenster im Frequenzbereich die schmalste Hauptkeule aufweist. Die genaue Auswertung zeigt, dass die Breite der Hauptkeule fs =N ist. Das Maximum der ersten Nebenkeule ist aber nur 13 dB unter der Hauptkeule, das ist der schlechteste Wert von allen Fenstern. Das Dreieckfenster hat eine stärkere Dämpfung der ersten Nebenkeule, 26 dB, allerdings ist die Hauptkeule doppelt (2fs =N ) so breit. Die Höhe der Nebenkeulen liefert ein Maßfür den Leck-E¤ekt, je größ er die Dämpfung, desto geringer der Leck-E¤ekt. Die Breite der Hauptkeule ist ein Maßfür die Selektivität der DFT, je schmaler die Keule, desto selektiver. Das von Hann-Fenster zeichnet sich durch eine groß e Dämpfung der ersten Nebenkeule, 32 dB, aus, die weiteren Nebenkeulen sind noch stärker gedämpft, allerdings auch um den Preis, dass die Breite der Hauptkeule 2fs =N beträgt. Das Hamming-Fenster hat eine stärkere Dämpfung der ersten Nebenkeule, 48 dB. Die geringste Nebenkeulendämpfung, die bei der dritten Nebenkeule auftritt, beträgt 42 dB. Auch das Hamming-Fenster hat eine Hauptkeule deren Breite 2fs =N beträgt. Auswirkung der Fenster Abbildung 1.21 zeigt die Auswirkung des Rechteck- und des von HannFensters auf eine Spektrallinie, die auf dem Frequenzraster liegt. Wir sehen, dass das Rechteckfenster, wie zu erwarten, eine Spektrallinie anzeigt, während das 4 Matlab stellt dazu die Funktion wvtool und wintool zur Verfügung. 1.4. ANWENDUNG DER DFT 23 Time domain Frequency domain 40 1 20 Rechteck 0 0.8 Magnitude (dB) Amplitude -20 0.6 Hamming Dreieck -40 -60 Hann 0.4 -80 -100 0.2 -120 0 -140 10 20 30 S amples 40 50 60 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 N ormalized Frequency (×π rad/sample) 0.9 Abbildung 1.20: Rechteck-, Dreieck-, Hammning-, Hann-Fenster von Hann-Fenster nicht eine einzige Spektrallinie, sondern ein breiteres Spektrum anzeigt, was in diesem Fall ein Nachteil ist. Abbildung 1.22 zeigt ein einzelnes Signal, das nicht auf dem Raster liegt. Wir sehen, dass das Hann-Fenster eine vorteilhafte schärfere spektrale Au‡ösung zeigt, während beim Rechteckfenster das Spektrum verschmierter ist. In Abbildung 1.23 sehen wir das Spektrum zweier nahe beisammen liegende Spektrallinien, die beide auf dem Frequenzraster liegen. Die Amplituden des Signale verhalten sich wie 1 : 0:5. Auf Grund der schmäleren Hauptkeule trennt das Rechteckfenster die beiden Spektrallinien schärfer als das Hann-Fenster. Abbildung1.24 zeigt als letztes Beispiel zwei benachbarte Signalkomponenten (Amplituden 1 : 0:5), die beide nicht auf dem Frequenzraster liegen. Wir sehen, dass das Hann-Filter die beiden Spektrallinien noch gut separiert, während beim Rechteckfenster die Trennung wesentlich schlechter ist. Der Grund für die deutlichere Trennung des Hann-Fensters ist die stärkere Dämpfung der Nebenkeulen. Wir halten fest, dass nur das Rechteckfester eine Hauptkeulenbreite von fs =N aufweist, was aus Sicht der Selektivität ein Vorteil ist. Alle anderen hier vorgestellten Fenster haben eine Hauptkeulenbreite von 2fs =N , allerdings ist die Dämpfung der Nebenkeulen bei diesen Fenstern größ er, was letztlich zu einer höheren Selektivität bei Signalkomponenten, die nicht auf dem Frequenzraster liegen (und das ist die Regel) führt. Es ist zu beachten, dass bei Folgen mit Zero Padding das Fenster nur auf den Bereich der Werte ungleich Null angewendet werden darf! 24 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) 1600 1600 1400 1400 1200 1200 1000 1000 800 800 600 600 400 400 200 200 0 0 20 40 Rechteckfenster 60 0 0 20 40 von Hann-Fenster 60 Abbildung 1.21: Einzelsignal auf Frequenzraster 1600 1600 1400 1400 1200 1200 1000 1000 800 800 600 600 400 400 200 200 0 0 20 40 Rechteckfenster 60 0 0 20 40 von Hann-Fenster 60 Abbildung 1.22: Einzelsignal NICHT auf Raster 1.4. ANWENDUNG DER DFT 25 1600 1600 1400 1400 1200 1200 1000 1000 800 800 600 600 400 400 200 200 0 0 20 40 Rechteckfenster 60 0 0 20 40 von Hann-Fenster 60 Abbildung 1.23: Zwei Signale, beide auf Frequenzraster 1600 1600 1400 1400 1200 1200 1000 1000 800 800 600 600 400 400 200 200 0 0 20 40 Rechteckfenster 60 0 0 20 40 von Hann-Fenster 60 Abbildung 1.24: Beide Signale NICHT auf dem Frequenzraster 26 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Abbildung 1.25: DFT als Filterbank 1.4.5 DFT als Filterbank Die DFT ermittelt die Spektralkomponenten eines Signals. Man kann die DFT daher auch als » Spektrumanalysator« au¤assen, der mit Hilfe von zahlreichen Filtern die Frequenzkomponenten des Signals ermittelt. Diesen Zusammenhang macht Abbildung 1.25 deutlich. Für jede Spektrallinie gibt es ein Filter, wobei die Filtercharakteristik dem Frequenzgang der DFT (mit Fenster) entspricht. 1.4.6 Matrixdarstellung der DFT Führt man bei der Darstellung der DFT/iDFT X[k] N X1 = x[n]e j 2Nn k k = 0; 1; 2; : : : ; (N 1) DFT n=0 x[n] N 1 1 X X[k]ej(2 N = k=N )n n = 0; 1; 2; : : : ; (N 1) inverse DFT k=0 die Abkürzung WN = e X[k] = N X1 x[n]WNkn j2 =N ein, so erhalten wir k = 0; 1; 2; : : : ; (N 1) DFT n=0 x[n] = N 1 1 X X[k]WN kn N n = 0; 1; 2; : : : ; (N 1) k=0 Wir schreiben die Summendarstellung aus und erhalten inverse DFT 1.4. ANWENDUNG DER DFT X[N 27 X[0] X[1] = x[0] 1 + x[1] 1 + x[2] 1 + : : : + x[N 1] 1 = x[0] 1 + x[1] WN1 + x[2] WN2 + : : : + x[N 1] WNN X[2] = x[0] 1 + x[1] WN2 + x[2] WN4 + : : : + x[N .. . 1] WN0 = x[0] 1 + x[1] WNN = 1 2(N + x[2] WN 1) 1 2(N 1] WN + : : : + x[N 1) (N 1] WN 1)(N 1) 1 Diesen Ausdruck können wir in Matrixschreibweise darstellen und erhalten 2 6 6 6 6 6 4 X = WN x 2 3 1 1 X[0] 6 1 7 WN1 X[1] 6 7 6 7 X[2] 1 WN2 7 = 6 6 7 .. .. 6 .. 5 . . 4 . X[N 1] 1 WNN 1 1 WN2 WN4 .. . ::: ::: ::: .. . 2(N 1) ::: WN 1 WNN 2(N WN .. . (N WN 1 1) 1)(N 1) 3 2 7 6 7 6 7 6 7 6 7 6 7 4 5 3 x[0] x[1] x[2] .. . x[N 1] 7 7 7 7 7 5 Wir sehen, dass die Matrix symmetrisch um die Hauptdiagonale ist und (N 1)(N 1) hat. Diese Symmetrieeigenschaft kann die Elemente WN1 ; WN2 ; : : : ; WN man vorteilhaft bei der Berechnung der DFT ausnützen. Die inverse DFT erhalten wird durch Matrixinversion. Die Matrixinversion ist sehr leicht durchzuführen, da die inverse WN1 nur die konjugiert komplexe Matrix multipliziert mit 1=N ist. x = WN 1 X wobei WN1 = 1 W N N Die Matlabfunktion dftmtx(N) erzeugt die DFT-Matrix. Die Werte der DFT-Matrix für N = 8 sind in folgender Tabelle dargestellt. 1 1 + 0i 1 + 0i 1 + 0i 1 + 0i 1 + 0i 1 + 0i 1 + 0i 1 0.7 - 0.7i 0 - 1i -0.7 - 0.7i -1 + 0i -0.7 + 0.7i 0 + 1i 0.7 + 0.7i 1 0 - 1i -1 + 0i 0 + 1i 1 + 0i 0 - 1i -1 + 0i 1 + 0i 1 -0.7 - 0.7i 0 + 1i 0.7 - 0.7i -1 + 0i 0.7 + 0.7i 0 - 1i -0.7 + 0.7i 1 -1 + 0i 1 + 0i -1 + 0i 1 + 0i -1 + 0i 1 + 0i -1 + 0i 1 -0.7 + 0.7i 0 - 1i 0.7 + 0.7i -1 + 0i 0.7 - 0.7i 0 + 1i -0.7 - 0.7i 1 0 + 1i -1 + -0i 0 - 1i 1 + 0i 0 + 1i -1 + -0i 0 - 1i 1 0.7 + 0.7i 0 + 1i -0.7 + 0.7i -1 + 0i -0.7 - 0.7i 0 - 1i 0.7 - 0.7i Abbildung 1.26 stellt die Werte der N = 8 mit Hilfe von compass(dftmtx(8)) dar. Wir können aus der DFTMTX und dem Zeigerdiagramm gut erkennen, dass Die FFT ist identisch mit der Symmetrien vorliegen. Diese Symmetrien werden in der Schnellen Fouriertrans- DFT. Sie ist lediglich eine formation ausgenützt, um den Rechenaufwand zu minimieren. besonders e¤ektive Berechnung der DFT, die auf Folgen, deren Läge ein ganzzahliges Vielfache von 2 betragen muss, eingeschränkt ist. 28 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Abbildung 1.26: Werte der DFT-Matrix für N = 8 1.4.7 Periodische (zirkuläre) Faltung Die Faltung ist eine wichtige Operation bei der Signalverarbeitung, die allerdings sehr rechenaufwendig ist. Die Faltung ist eine Operation im Zeitbereich. Es ist aber auch möglich, die Faltung im Frequenzbereich zu berechnen. Dazu müssen die zu faltenden Folgen mit Hilfe der DFT in den Frequenzbereich transformiert werden, dort miteinander multipliziert werden und dann wieder in den Zeitbereich zurücktransformiert werden. In Erinnerung an den hohen Rechenaufwand bei der DFT mag diese Vorgangsweise aufwendig erscheinen. Durch die Verwendung der Fast Fouriertransformation (FFT) ist aber die Rechenzeit bei groß em N auf diesem Weg kürzer. Die Berechnung der Faltung rufen wir uns mit einem Beispiel in Erinnerung f = [0 0:02 0:08 0:18 0:32 0:51 0:73 1:00] g = [0 0:14 0:29 0:43 0:57 0:71 0:86 1:00] conv(f,g)= [0 0 0:0028 0:017 0:057 0:1428 0:3014 0:5643 0:97 1:3566 1:6634 1:8469 1:8478 1:59 1:0] Die Länge des Faltungsprodukts Länge(f g) = Länge(f )+Länge(g) 1. Berechnen wir nun die Faltung über die DFT, so erhalten wir ifft(fft(f).*(fft(g))) [0:97 1:3566 1:6662 1:8639 1:9048 1:7328 1:3014 0:5643] also ein anderes Ergebnis als bei der Faltung im Zeitbereich. Abbildung 1.27 stellt die unterschiedlichen Faltungsergebnisse dar. Die Erklärung …nden wir, wenn wir uns die Periodizität der DFT in Erinne- 1.4. ANWENDUNG DER DFT 29 2 2 1.8 1.8 1.6 1.6 1.4 1.4 1.2 1.2 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 5 10 Lineare F altung 15 0 0 2 4 6 Z irkuläre F altung 8 Abbildung 1.27: Lineare , zirkuläre Faltung rung rufen. Die Operation, die wir ausführen, ist die zyklische Faltung. Abbildung 1.28 erklärt den Zusammenhang: Die Werte von f sind auf dem inneren Kreis angeordnet, die Werte von g auf dem äuß eren. Zum Zeitpunkt n = 0 werden die gegenüberliegenden Werte multipliziert und summiert. (f g)0 = f0 g0 + f1 g3 + f2 g2 + f3 g1 : Dann wird der äuß ere Kreis um eine Position verdreht und wieder multipliziert und addiert (f g) 1 = f0 g1 + f1 g0 + f2 g3 + f3 g2 : Allgemein gilt f [n] g[n] = N X1 l=0 f [l]g[n l] = N X1 g[l]f [n l] l=0 Zur Unterscheidung notieren wir die aperiodische Faltung mit , die zyklische Faltung mit . Wenn wir die DFT zur Berechnung der aperiodisch Faltung verwenden wollen, müssen wir uns durch Anhängen von Ng 1 Nullen an f und Nf 1 Nullen an g behelfen. Dann erhalten wir die aperiodische Faltung im Frequenzbereich, durch Rücktransformation die aperiodische Faltung im Zeitbereich. F = fft([f zeros(1,length(g)-1)]) G = fft([g zeros(1,length(f)-1)]) conv(f,g) = ifft(F.*G) = [0 0 0:0028 0:017 0:057 0:1428 0:3014 0:5643 0:97 1:3566 1:6634 1:8469 1:8478 1:59 1] 1.4.8 Lange Signale –Schnelle (FFT) Faltung Bei der Berechnung der Systemantwort im Zeitbereich ist bekanntlich das Signal mit der Impulsantwort zu falten. Lange Signale, z.B. Audio-Signale im 30 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Abbildung 1.28: Zyklische Faltung Minutenbereich, werden wegen des hohen Rechenaufwands und um Ergebnisse in » Echtzeit« zu erhalten, in kürzere Zeitabschnitte zerlegt. Bei der Berechnung bedient man sich vorteilhaft der schnellen Faltung mit Hilfe der FFT. Die Vorgangsweise wird an einem einfachen Beispiel demonstriert: Signal s[n] = [2 3 2 1 0 1 0 1 1], Impulsantwort h[n] = [1 1] Wir zerlegen das Signal in Blöcke gleicher Länge5 s[n] = [2 3 2 1 0 1 0 1 1] Da wir die aperiodische Faltung brauchen, müssen wir, um die DFT korrekt verwenden zu können, Nullen anhängen: An die Abschnitte von s[n] müssen wir Länge(h[n]) 1 = 1 Nullen anhängen, an h[n] müssen wir Länge(Abschnitte von s[n]) 1 = 2 Nullen anhängen s[n] = [2 3 2 0 h[n] = [1 1 0 0] 1 0 1 0 0 1 1 0] Die Ergebnisse der Faltung der einzelnen Abschnitte werden dann wieder zusammengesetzt [2 5 5 2 1 1 1 1 0 1 2 1::: [2 5 5 3 1 1 1 1 2 1 : : : Diese Operation tritt sehr häu…g auf und Matlab bietet dafür die Funktion fftfilt an s=[2 3 2 1 0 1 0 1 1]; h=[1 1]; y=fftfilt(h,s,3) 5 In praktischen Anwendungen kann die Blöcklänge viele hundert Elemente lang sein. 1.5. DIE SCHNELLE FOURIERTRANSFORMATION (FFT) 31 5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 0 1 2 3 4 5 6 7 8 Abbildung 1.29: Faltung mit Hilfe von fftfilt Abbildung 1.29 zeigt das Ergebnis der Faltung mit Hilfe von fftfilt. 1.5 Die schnelle Fouriertransformation (FFT) Es gibt eine Vielzahl von Algorithmen zur Berechnung der schnellen Fouriertransformation, die auf Basis 2; 4 oder gemischten Basen beruhen, die Dezimation im Zeit- oder im Frequenzbereich durchführen, mit reeller oder komplexer Darstellung arbeiten. Wir beschäftigen uns nur mit dem Radix-2-Algorithmus. Das Grundprinzip ist die Aufteilung (Dezimation) von N Punkt ! N=2 Punkt ! N=4 Punkt ! . . . ! 2 Punkt Folgen und die Ausnützung der SymmetrieEigenschaften und der Periodizität von WNk = e j2 k=N . Da WNk eine wichtige Rolle bei der Signalverarbeitung spielt, stellt Matlab die Funktion dftmtx(N) zur Verfügung, die die Elemente der Matrix WN berechnet6 . Abbildung 1.26 zeigt die Werte von WNk = e j2 k=N k = 0; 1; : : : N 1 Unter Verwendung der Funktion dftmtx(N) kann die Berechnung der DFT entsprechend der Matrixschreibweise durchgeführt werden: Das folgende Beispiel und Abbildung 1.30 zeigen die Schritte der Berechnung des Spektrum einer Rechteckfolge sig=[1 1 1 1 0 0 0 0]; N=length(sig); SIG=sig*dftmtx(N); sigrueck=(1/N)*(SIG*conj(dftmtx(N))); Die Symmetrieeigenschaften der DTFT_Matrix, die bei der Berechnung der FFT vorteilhaft ausgenützt werden können, sind in Abbildung 1.26 dargestellt W80 wiederholt sich nach Vielfachen von N 6 Wegen k in der Literatur auch Twiddle-Faktor genannt. der gedrehten Zeiger wird WN 32 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) 1 4 0.9 1 0.9 3.5 0.8 0.8 3 0.7 0.7 2.5 0.6 0.5 0.6 2 0.4 0.5 0.4 1.5 0.3 0.3 1 0.2 0.2 0.5 0.1 0 0 0 5 0.1 0 Signal 0 0 5 Signal => Transf => Rücktransf 5 Betragsspektrum Abbildung 1.30: Rechtecksignal: Zeit- ! Frequenz- ! Zeitsignal ) WNk = WNk+iN W80 = W88 = W816 = : : : i = 0; 1; : : : N 1 Die Zeiger von WNk unterscheiden sich nur in der Phase Zeiger in der Gegenphase haben unterschiedliches Vorzeichen WNk = k+ N 2 WN Diese Eigenschaften verwenden wir bei der Dezimation im Zeitbereich. Zunächst teilen wir x[n] n = 0; 1; : : : ; N 1 in eine Folge mit geraden (g) und ein Folge mit ungeraden (u) Indizes auf xg = x[2m] xu = x[2m + 1] m = 0; 1; : : : ; N 2 1 Damit wird X[k] = N X1 N 2 x[n]WNkn = n=0 X1 N 2 x[2m]WN2km m=0 + X1 k(2m+1) x[2m + 1]WN m=0 In der zweiten Summe teilen wir den Exponenten in zwei Teile und können WNk vor die Summe schreiben, da es nicht von m abhängt. Wir erhalten daher X[k] = N X1 n=0 N 2 N 2 x[n]WNkn = X1 x[2m]WN2km | {z } m=0 xg [m] + WNk X1 x[2m + 1]WN2km | {z } m=0 xu [m] Aus der Zeigerdarstellung von WNk sehen wir, dass WN2 = e WN2 = W N , sodass wir substituieren können 2 j 2N2 =e 2 j N=2 ) 1.5. DIE SCHNELLE FOURIERTRANSFORMATION (FFT) 33 Abbildung 1.31: FFT » Butter‡y« N 2 N 2 X[k] = X1 km x[2m]W N + 2 m=0 WNk X1 2km x[2m + 1]W N k = 0; 1; 2; : : : ; N 1 2 m=0 Die Teilsummen obiger Gleichung stellen jeweils eine DFT der Länge N=2 dar und wir können schreiben X[k] = DFT N fxg [m]g + WNk DFT N fxu [m]g 2 (1.4) 2 = Xg [m] + WNk Xu [m] Wir haben die Berechnung der DFT von x[n] n = 0; 1; : : : ; N 1 aufgeteilt in die Berechnung der DFT von xg = x[2m] xu = x[2m + 1] m = 0; 1; : : : ; N2 1 . Gleichung 1.4 muss für alle k berechnet werden. Die Spektren Xg [m] und Xu [m] sind periodisch in N=2 und können daher einfach periodisch fortgesetzt k+ N 2 werden. Aus der Beziehung der Gegenphase WN X[k] X k+ N 2 = lich WNk wird schließ = Xg [k] + WNk Xu [k] k = 0; 1; : : : ; WNk Xu [k] k = 0; 1; : : : ; = Xg [k] N 2 N 2 1 1 Xg ist die N=2 Punkt DFT von xg [n] und Xu ist die N=2 Punkt DFT von xu [n]: Der Signal‡ussgraph in Abbildung 1.31 stellt die Zusammenhänge gra…sch dar Das Aufteilen in » gerade« und » ungerade« Anteile lässt sich ausgehend von N solange fortsetzen, bis N = 2 ist. Das soll am Beispiel für N = 8 in Abbildung 1.32 gezeigt werden. Im nächsten Schritt wird in 2 Punkt DFTs zerlegt, wie in Abbildung 1.33 gezeigt. Wie man sieht, muss x[n] etwas ungewohnt [0 4 2 6 1 5 3 7] indiziert werden, um die FFT zu starten. Diese Adressierung wird von Signalprozessoren hardwareunterstützt durchgeführt und ist relativ einfach zu implementieren, wenn man folgenden Zusammenhang berücksichtigt 34 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Abbildung 1.32: Aufteilung der 8 Punkt DFT Abbildung 1.33: Aufteilung in 2 Punkt DFTs 1.5. DIE SCHNELLE FOURIERTRANSFORMATION (FFT) 35 Dezimal- BinärBitDez. BitIndex Index reversed reversed 0 000 000 0 1 001 100 4 2 010 010 2 3 011 110 6 4 100 001 1 5 101 101 5 6 110 011 3 7 111 111 7 Die Berechnung des » geraden« und » ungeraden« Teils Xg [k] und Xu [k] 2 verlangt 2 N2 komplexe Operationen, die Berechnung von WNk Xu [k] verlangt zusätzlich N=2 Operationen, das ergibt insgesamt N 2 + N =2 Operationen. Bei groß em N wird N 2 + N =2 ! N 2 =2, die Zahl der Operationen durch die Aufteilung in » geraden« und » ungeraden« Teil halbiert sich also. Für die NP1 2 n Berechnung der DFT X[k] = x[n]e j N k sind ungefähr N 2 komplexe Muln=0 tiplikationen erforderlich. Bei der FFT reduziert sich die Zahl der komplexen7 Multiplikationen auf N2 log2 (N ). 1.5.1 Inverse DFT DFT und inverse DFT unterscheiden sich lediglich durch den Skalierungsfaktor 1=N und das negative Vorzeichen in der Exponentialfunktion X[k] = N X1 x[n]e j 2Nn k DFT n=0 x[n] = N 1 1 X X[k]ej(2 N k=N )n inverse DFT k=0 Häu…g liegen Software-Routinen oder dedizierte Hardware vor, die den FFTAlgorithmus implementieren und man möchte die vorliegenden Lösungen auch für die iFFT verwenden. Wir untersuchen, wie die iFFT mit Hilfe der FFT durchgeführt werden kann. Dazu konjugieren wir zunächst beide Seiten der iFFT; die Konjugierte des Produktes kann durch das Produkt der Konjugierten ersetzt werden und wir erhalten x[n] = ( N 1 1 X X[k]ej(2 N k=0 k=N )n ) = N 1 1 X X[k] e N k=0 Daraus wird schließ lich, wie in Abbildung 1.34 gezeigt. 7 Darunter sind auch Multiplikationen mit 1 bzw. 1. j(2 k=N )n 36 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Abbildung 1.34: Berechnung der iFFT mit Hilfe der FFT x[n] = ( N 1 1 X X[k] e N j(2 k=N )n k=0 ) Die Konjugierte von X[k] wird durch Negation des Imaginärteils berechnet, dann wird die FFT durchgeführt, das Ergebnis mit 1=N skaliert und die Konjugierte von x[n] wieder durch Negation gebildet. Bei reellen Zeitfolgen ist der Imaginärteil von x[n] Null, die Multiplikation mit 1 und 1=N kann daher entfallen. Eine weitere Möglichkeit der Berechnung der iFFT durch die FFT ist in Abbildung 1.35 dargestellt x[n] = N 1 2 1 X X[k]ej N n N (1.5) k=0 = N 1 1 X fXRe [k] + jXIm [k]g cos N 2 n + j sin N k=0 = 1 N N X1 XRe [k] cos k=0 +j XRe [k] sin 2 n N XIm [k] sin 2 n + jXIm [k] cos N 2 n N 2 n N 2 n N Gleichung 1.5 ist der allgemeine Ausdruck für die FFT. Tauschen wir nur am Eingang des FFT-Blocks Real- und Imaginärteil Xtausch = XIm [k]+jXRe [k] und berechnen die FFT, erhalten wir Xtausch = N X1 k=0 = fXIm [k] + jXRe [k]g cos N 1 1 X XIm [k] cos N k=0 +j XRe [k] cos 2 n N 2 n + j sin N XRe [k] sin 2 2 n + XIm [k] sin n N N 2 n N 2 n N 1.6. ZUSAMMENFASSUNG 37 Abbildung 1.35: Berechnung der iFFT mit Hilfe der FFT Tauschen wir nun am Ausgang des FFT-Blocks Real- und Imaginärteil des Ergebnisses, erhalten wir N 1 1 X XRe [k] cos N k=0 +j XIm [k] cos 2 2 n + XIm [k] sin n N N 2 n N XRe [k] sin (1.6) 2 n N Gleichung 1.6 stellt die iFFT dar, wenn wir noch Real- und Imaginärteil mit 1=N multiplizieren. Wir wir sehen, dass wir mit diesem Vorgehen die iFFT mit Hilfe der FFT berechnen können, wie in Abbildung 1.35 gezeigt. 1.5.2 Anfügen von Nullen Wie wir gesehen haben, spielt das Anfügen von Nullen (Zero-padding) im Zeitbereich eine wichtige Rolle bei der Berechnung der Faltung über die Schnelle Fouriertransformation. Durch Zero-padding können wir die Faltung im Frequenzbereich mit Hilfe der FFT berechnen. Wenn die Länge von Signalen keine Potenz von zwei ist, kann die FFT nicht verwendet werden. In derartigen Fällen bringt man das Signal durch Anfügen von Nullen auf die geeignete Länge. Schließ lich wird Zero-padding im Zeitbereich verwendet, um mehr Punkte im Frequenzbereich zu erhalten. Damit erhält man keine zusätzlichen Informationen über das Signal, es wird lediglich im Spektralbereich interpoliert. 1.6 Zusammenfassung Die diskrete Fouriertransformation ist einer der wichtigsten Algorithmen in der digitalen Signalverarbeitung (DSP). Manche Aufgabenstellungen lassen sich gut im Zeitbereich lösen, andere wiederum lassen besser oder überhaupt nur im Frequenzbereich lösen. Daher ist der Übergang Zeitbereich ! Frequenzbereich ! Zeitbereich eine Operation, die immer wieder ausgeführt werden muss. 38 KAPITEL 1. DIE DISKRETE FOURIERTRANSFORMATION (DFT) Von besonderer Bedeutung ist die Schnelle Fouriertransformation (FFT), die sich aus Sicht der Operation nicht von der DFT unterscheidet, die aber durch geschicktes Ausnützen von Symmetrien in der DFT mit weit weniger Rechenoperationen auskommt. Ohne die FFT gäbe es viele der heutigen DSPAnwendungen nicht. Das Verständnis und die Beherrschung der DFT und ihrer Artefakte ist eine wesentliche Voraussetzung für die erfolgreiche Anwendung digitale Signalverarbeitung.