Kapitel 3 Trigonometrische Interpolation Einführung in die Fourier-Reihen Trigonometrische Interpolation Schnelle Fourier-Transformation (FFT) Zusammenfassung Numerische Mathematik II Herbsttrimester 212 1
Motivation: Fourierreihen sind ein äußerst nützliches Werkzeug zur Darstellung periodischer Funktionen. In der Numerik interessieren wir uns besonders für die diskrete Fourier-Transformation die uns die Werkzeuge bereitstellt die dabei auftretenden Koeffizienten und Integrale zu berechnen. Satz 3.1 Eine periodische Funktion g auf, T lässt sich unter bestimmten Voraussetzungen (z.b. g stetig und abschnittweise stetig diffbar) als Reihe von Sinus- und Cosinus-Funktionen darstellen deren Frequenzen Vielfache der Grundfrequenz ω = 2π = 2πf sind: T a k = 2 T Beweis: siehe Analysis. g t = a 2 + a k cos k2πt T T k=1 g t cos(kωt) dt b k = 2 T + b k sin k2πt T T g t sin(kωt) dt Numerische Mathematik II Herbsttrimester 212 2
Exkurs: Komplexe Zahlen Die komplexen Zahlen erweitern die reellen Zahlen derart, dass z.b. die Gleichung x 2 + 1 = lösbar wird mit der Lösung x = i. Offenbar gilt i 2 = 1. Wir wollen einige Rechenregeln und Definitionen wiederholen. Sei y = a + ib und z = c + id dann ist y + z = (a + c) + i(b + d) y z = (ac bd) + i(ad + bc) (durch ausmultiplizieren) Re y = a, Im y = b y = a 2 + b 2 y = a ib bezeichnet die zu y komplex konjugierte Zahl. Es gelten die Rechenregeln: y + z = y+z, y z = y z, z z = z 2, z + z = 2Re z, z z = 2i Im z Es gilt der wichtige Zusammenhang: e ix = cos x + isin(x) was man z.b. sehr schön an den Taylorreihen ablesen kann. Numerische Mathematik II Herbsttrimester 212 3
Lemma 3.2 Die Fourierreihe hat folgende alternative Darstellungen: Amplituden-Phasen Darstellung (alternativ auch mittels Sinus): g t = a 2 + A k cos( kωt φ k ) mit A k = a 2 2 k + b k k=1 φ k = arctan b k a k, a n > ; arctan b k a k + π, a k < ; sgn b k, a k = Komplexe Fourierreihe: g t = c k e ikωt mit c k = 1 T g t e ikωt dt T k= Dabei bezeichnet i die imaginäre Einheit. Die c k sind komplexe Zahlen. Es gilt folgender Zusammenhang zu den Koeffizienten aus Satz 3.1: a k = c k + c k, b k = i(c k c k ). Numerische Mathematik II Herbsttrimester 212 4
Beweis: Aus der Amplituden-Phasen Darstellung erhält man mittels der Additionstheoreme cos α β = cos α cos β + sin α sin(β) : A k cos( kωt φ k ) = {A k cos( φ k )} cos( kωt)+ {A k sin( φ k )} sin( kωt) und damit die Äquivalenz der ersten beiden Darstellungen. Mittels der Moivre schen Formel e ix = cos x k= c + c + c k e ikωt k=1 k=1 = c + c k e ikωt + c k e ikωt k=1 c k (cos kωt + i sin(kωt )) + c k c k (cos kωt + i sin(kωt )) + c k Also gilt : a k = c k + c k, b k = i(c k c k ). = + i sin x sieht man: cos kωt + i sin kωt = (cos kωt i sin(kωt )) Numerische Mathematik II Herbsttrimester 212 5
Bemerkungen: Analog zum letzten Teil des Beweises von Satz 3.2 sieht man, dass für eine reelle Funktion g gilt c k = c k. Daraus folgt, dass (i) b k = i(c k c k ) tatsächlich reell ist (ii) dass für eine reelle Funktion nur die Hälfte der c k unabhängig sind. In der praktischen Anwendung wird die Fourier-Reihe üblicherweise nach endlich vielen Gliedern abgebrochen. Numerische Mathematik II Herbsttrimester 212 6
Wir wenden uns jetzt dem Interpolationsproblem zu und betrachten eine äquidistante Einteilung des Intervalls, T in n + 1 Stützstellen: t j = j T, j =,, n 1. Die zu interpolierende Funktion sei periodisch n mit Periode T: g g = g T = g n. Wir setzten für n = 2m + 1: g t = a 2 + a k cos k2πt T m 1 m k=1 n = 2m: g t = a 2 + a k cos k2πt T k=1 + b k sin k2πt T + b k sin k2πt T + a m cos m2πt T und suchen geeignete Koeffizienten so dass gilt: g k g t k. In beiden Fällen kann dies auch geschrieben werden als komplexe Fourier-Reihe: m g t = c k e ikωt k= m Numerische Mathematik II Herbsttrimester 212 7
Dabei gilt für die Koeffizienten: n = 2m + 1: a k = c k + c k, b k = i c k c k, k =,, m n = 2m: a m = 2c m = 2c m und wie zuvor für k =,, m 1 Beachten Sie, dass für diese Wahl wie gewünscht b m = und dass wir durch diese Festlegung die korrekte Anzahl an freien Koeffizienten für unsere Interpolationsaufgabe erhalten. Mit der Kreisfrequenz ω = 2π T m g j = g t j = c k e ikωt j k= m = 2πf lautet das Interpolationsproblem: m bzw. g j = g t j = c k e k= m 2πi kj n Mittels der Moivre schen Formel sieht man: e i(2πj+x) = e ix und daher kj kj+jn kj (n k)j i 2π i 2π 2πi 2πi e n = e n oder e n = e n. Mit anderen Worten die Exponentialterme sind periodisch in k mit Periode n. Daher schreibt man ( ) oftmals auch in der Form g t j = c k e ikωt j = c k e 2πi kj n ( ) Numerische Mathematik II Herbsttrimester 212 8
Setzt man z t e iωt erhält man daraus die Darstellung g t j = c k e ikωt j = c k z(t j ) k Dies erklärt den Namen trigonometrisches Polynom für eine endliche Fourier-Reihe. Die Interpolationsaufgabe ist daher äquivalent zur Bestimmung eines komplexen Polynoms vom Grad n welches in den Punkten z(t j ) die Werte g j annimmt. Der in Kapitel 1 durchgeführte Beweis zur Polynominterpolation ist auch gültig für komplexe Zahlen. Daraus schließt man, dass die obige Aufgabe eindeutig lösbar ist. Im Folgenden wollen wir eine Darstellung für die Koeffizienten angeben. Numerische Mathematik II Herbsttrimester 212 9
Satz 3.3 Zu beliebigen Stützstellen t k, g k, k =,, n 1 mit komplexen g k und t j = j T n gibt es ein eindeutig bestimmtes trigonometrisches Polynom g t j = c k e iωkt j mit g t j = g j. Für die Koeffizienten gilt die Darstellung: c j = 1 n kj 2πi g k e n, j =,, n 1. Die komplexe AbbildungF g,, g = (c,, c ) heißt diskrete Fourier-Transformation (DFT). Für Ihre Umkehrung, die Fourier- Synthese, gilt: g j = kj 2πi c k e n, j =,, n 1, Man kann also fast den gleichen Algorithmus für Transformation und Synthese verwenden. Numerische Mathematik II Herbsttrimester 212 1
2πi kj 2πi mj Beweis: wir multiplizieren g j = c k e n mit e n wobei m n 1 summieren über j und erhalten: j= mj 2πi g j e n = c k e j= 2πi (k m)j n = c k e Wir betrachten den letzten Summanden und zeigen: j= k m j 2πi e n = n δ km ( ) j= 2πi (k m)j n ( ) Für k = m ist die Behauptung klar. Sei nun k m. Die obige Summe ist eine geometrische Reihe und es gilt: (k m)j 2πi e n = 1 e2πi k m n n 2πi (k m) n j= 1 e Betrachten wir hiervon den Zähler so gilt 1 e 2πi(k m) = 1 cos(2π k m ) sin(2π k m ) = Aus ( ) und ( ) folgt dann die Behauptung für die DFT. Der Beweis für die Synthese erfolgt mehr oder weniger analog. Numerische Mathematik II Herbsttrimester 212 11
Bemerkungen: Für DFT und IDFT (=inverse DFT) gilt (jedoch nicht bei der Festlegung der Koeffizienten für die Interpolation): Die Normierungsfaktoren 1 bzw. 1 sind Konvention. Das Produkt der n Faktoren muss nur 1 ergeben. (Beispielsweise definiert Matlab die n DFT ohne Faktor 1 n ) Das gleiche gilt für die Vorzeichen der Exponentialterme. Diese müssen für DFT und IDFT nur entgegengesetzt sein. Die DFT ist eine Abbildung von n komplexen Zahlen auf n komplexe Zahlen. Sie hängt nicht von dimensionsbehafteten Größen wie z.b. Δ ab. Numerische Mathematik II Herbsttrimester 212 12
Bemerkungen: Mit Fourier-Reihen lassen sich nur periodische Funktionen darstellen. Um auch nichtperiodische Funktionen g darstellen zu können dehnt man den Definitionsbereich aus ins Unendliche und erhält dann die sogenannte (kontinuierliche) Fourier-Transformation: F g ω = g t e iωt dt In der Praxis möchte man häufig die Fourier-Transformation von diskreten Daten g k zu den Stützstellen t k = kδ, k =,, n 1 auswerten mit den diskreten Kreisfrequenzen ω j = 2πf j = 2πj nδ j = n,, n. Ein naiver Ansatz liefert (vgl. mit Satz 3.3): 2 2 F g ω j = g t e iω jt dt Δ g k e 2πikj n Die Frequenz f n/2 = 1 heißt Nyquist-Frequenz. Sie besagt, dass 2Δ eine Sinuskurve an mindestens 2 Punkten abgetastet werden muss. In anderen Worten: Abtastfrequenz > 2 maximale Signal-Frequenz. Numerische Mathematik II Herbsttrimester 212 13
Bemerkungen: Wendet man die DFT auf einen Abschnitt, T einer unendlichen Zeitreihe an entspricht das der Multiplikation der Ausgangsfunktion mit einer Fensterfunktion der Form w x = 1 falls t T w x = sonst. Nach einem Satz der Fourier-Analyse entspricht das Produkt von zwei Funktionen im Zeitbereich der Faltung der beiden Fourier- Transformierten im Frequenzbereich. Dabei ist die Faltung von zwei Funktionen definiert durch g h (t) = g τ h t τ dτ Da die Fourier-Transformierte eines Rechteckimpulses stark oszilliert, ist es mitunter ratsam die Daten vor der Analyse mit einer speziellen Fensterfunktion zu multiplizieren die bessere Eigenschaften hat. Numerische Mathematik II Herbsttrimester 212 14
Beispiel 3.1 Wir berechnen das trigonometrische Polynom auf,2π zu den drei Stützstellen: t j 2π 4π 3 3 g j = cos (t j ) 1 -.5 -.5 Wir benötigen folgende Funktionswerte: t 2π 3 4π 3 8π 3 cos (t) -.5 -.5 -.5 sin (t) -.866.866 -.866 Und stellen zunächst fest (Moivre) t 2π 3 4π 3 8π 3 e it 1 -.5-.866i -.5+.866i -.5-.866i Numerische Mathematik II Herbsttrimester 212 15
Wir bestimmen nun c j gemäß Satz 3.3 und mit Hilfe der obigen Tabelle Es folgt: c j = 1 3 kj 2πi g k e 3, j =,1,2. c = 1 1 1.5 1.5 1 = 3 c 1 = 1 3 1 1.5 (.5.866i).5 (.5+.866i ) = 1 3 3 2 = 1 2 c 2 = 1 3 1 1.5 (.5 +.866i).5 (.5.866i ) = 1 3 3 2 = 1 2 und somit a =, a 1 = c 1 + c 1 = c 1 + c 2 = 1, sowie b 1 = i c 1 c 2 =. Damit wird die Fourierreihe zu a 1 2 + a k cos k2πt T k=1 + b k sin k2πt T = cos t. Numerische Mathematik II Herbsttrimester 212 16
Beispiel 3.2 Wir betrachten die periodische Fortsetzung der Sägezahnfunktion g x = x, x,2π. Wir nähern die exakten Koeffizienten aus Satz 3.1 durch eine DFT der Sägezahnfunktion mit sehr großem n=2*m+1 an und erhalten die ersten 6 Koeffizienten c i, i =,, 5 zu ans = 3.1416 -. + 1.i -. +.5i -. +.3333i -. +.25i -. +.2i sowie die letzten 5 Glieder Glieder der DFT c i, i = n 5,, n 1 zu ans = -. -.2i -. -.25i -. -.3333i -. -.5i -. - 1.i Vermöge der Formeln a k = c k + c k, b k = i(c k c k ) wollen wir die Entwicklung der Sägezahnfunktion in Sinus und Cosinus Termen angeben. Wir beachten dabei c k = c n k. Die letzten 5 Glieder entsprechen also den Gliedern c 5,, c 1. Wir erhalten den sogenannten Gleichanteil a = π Weiter gilt: a i = c i + c i =, sowie b k = i c k c k = (Im c k Im c k ) = 2/k Numerische Mathematik II Herbsttrimester 212 17
Wir vermuten also die Darstellung (das obige Vorgehen ist natürlich kein Beweis): g x = π + 2 sin (kx) k k=1 In der Tat kann man mit Hilfe von Satz 3.1 die obige Formel bestätigen. Die folgenden Abbildungen zeigen die Sägezahnfunktion in schwarz, links die einzelnen Terme der Reihenentwicklung, sowie rechts die entsprechenden Partialsummen. 7 7 6 5 4 3 6 5 4 2 1-1 3 2 1-2 1 2 3 4 5 6 1 2 3 4 5 6 Numerische Mathematik II Herbsttrimester 212 18
Beispiel 3.3 In der Praxis kann man natürlich nicht wie in Beispiel 3.1 unendlich viele Stützstellen wählen. Setzt man z.b. n = 21 = 2 1 + 1 erhält man die Koeffizienten a, b a = 2.992 -.2992 -.2992 -.2992 -.2992 -.2992 -.2992 -.2992 -.2992 -.2992 -.2992 b = -1.9851 -.97 -.6213 -.4388 -.3225 -.2386 -.1727 -.1174 -.683 -.224 Der Gleichanteil entspricht nicht dem korrekten Wert π. Die Cosinus- Terme verschwinden nicht und auch die Koeffizienten der Sinus-Terme sind nur angenähert korrekt. Wir wissen, dass die Sägezahnfunktion nicht Bandweiten begrenzt ist. Es treten Sinus Terme beliebig hoher Frequenz auf. Nach dem Nyquist Theorem können diese jedoch mit einer groben Abtastung nicht dargestellt werden. Die Energie dieser nicht repräsentierbaren Terme wird der endlichen Reihe die hier nach dem 1. Glied abgebrochen wurde zugefügt was die Koeffizienten entsprechend verfälscht. Man spricht vom Aliasing Effekt. Numerische Mathematik II Herbsttrimester 212 19
Exkurs Komplexität Landau Symbole: Zur Definition der algorithmischen Komplexität benutzt man üblicherweise die Landau Symbole für den Grenzwert x. Man sagt f = O g falls gilt: Es gibt ein c > und ein x > so dass für alle x > x gilt f x c g x. Beispiele: f n = 3 + n + 2 n 2. Es gilt f = O(n 2 ) f n = n! = 2 πn n e n n 1 + O 1 n (Stirling Formel) Es gilt f = O n n e Sei ein Algorithmus gegeben mit Komplexität O n 2 und ein Computer mit 1 Gflops. Wir wollen den Algorithmus auf einen Vektor der Länge 1 9 anwenden. Wir benötigen also 1 18 Rechenoperationen und auf dem obigen Rechner 1 7 Sekunden oder 115.7 Tage. Existiert ein Algorithmus der den selben Zweck in O n log 2 n erfüllt, benötigen wir 29.89 1 9 Operationen oder.298 Sekunden. Numerische Mathematik II Herbsttrimester 212 2
FFT: Schnelle Fourier-Transformation Die DFT hat eine algorithmische Komplexität von O n 2. Wir haben in Beispiel 3.1 gesehen dass die Exponentialterme sich mehrfache wiederholen. Wir können also durch geschicktes Klammern Multiplikationen einsparen. Die Idee geht schon auf Gauß zurück. Eine der bekanntesten Formulierungen stammt von Cooley & Tukey (1965). Wir nehmen hierzu an, dass n = 2m und definieren zwei DFTs der halben Länge für gerade und ungerade Koeffizienten wie folgt: g k = g 2k, g k = g 2k+1, c k = c 2k, c k = c 2k+1. Dann folgt: c j = 1 n = 1 n m 1 kj 2πi g k e n kj 2πi g k e m = c j + e πi m c j c j m j = 1 n m 1 + e πi j m c j m + e πi j m 1 n 2kj 2πi g 2k e 2m m 1 falls j < m falls j m + 1 n m 1 kj 2πi g k e m (2k+1)j 2πi g 2k+1 e 2m = = Numerische Mathematik II Herbsttrimester 212 21
Die letzte Zeile entsteht dadurch, dass die Indizes c j bis n 1 laufen während die Indizes c j, c j bis m 1 laufen. Bemerkungen: Wir können also die DFT der Ausgangsdaten berechnen durch 2 DFTs auf Daten der halben Länge. Falls n = 2 p eine Zweierpotenz ist kann man das ganze rekursiv p = log 2 n mal wiederholen. Man kann zeigen, dass die FFT dann eine algorithmische Komplexität von O(n log 2 n) hat. Es gibt mittlerweile auch FFT Algorithmen für n 2 p. Am schnellsten ist aber die FFT für n = 2 p. Es gibt eine Vielzahl von schnellen Algorithmen die auf der Idee basieren das Problem sukzessive zu halbieren. Man nennt dieses Pinzip auch Divide and Conquer. Die Anwendungen der FFT oder enger (Verwandter) sind mannigfaltig: Schnelle mathematische Algorithmen, Signalanalyse, Signalverarbeitung (z.b. Filterung von Daten), Synthese von Audiosignalen, Kompression von Audio, oder Bilddaten (MP3), etc. Numerische Mathematik II Herbsttrimester 212 22
Beispiel 3.4 Wir wollen im Folgenden die FFT eines verrauschten Signals betrachten und dann das Signal durch Filterung und Synthese in seinen reinen Bestandteile zerlegen. Wir benötigen hierzu die folgenden Begriffe: Bei der Auswertung von Fourier-Analysen betrachtet man in den meisten Fällen das sogenannte einseitige Amplitudenspektrum definiert durch: F g f k + F g f k welches sich für reelle Funktionen zu 2 F g f k vereinfacht. Alternativ findet man auch das Powerspektrum definiert durch F g f 2 k + F g f 2 k mit der entsprechenden Vereinbarung für reelle Argumente. Die Phaseninformation wird also verworfen. In der Interpolations-Notation entspricht F g f k = c k Als Tiefpass bezeichnen wir einen Filter der Signalanteile mit Frequenzen unterhalb seiner Grenzfrequenz annähernd ungeschwächt passieren lässt (analog Hochpass). Wir verwenden außerdem einen Rauschfilter der dadurch definiert ist, dass alle Signalanteile mit F g f k <.2 zu Null gesetzt werden. Numerische Mathematik II Herbsttrimester 212 23
Y(f) 8 Signal mit überlagertem Rauschen 8 Signal mit überlagertem Rauschen 6 6 4 2 4 2-2 -4-2 -6-4 -8-6 -1 1 2 3 4 5 6 7 8 9 1 Zeit[ms] -8 2 4 6 8 1 12 14 16 18 2 Zeit[ms] 1.4 1.2 1.8.6 Einseitiges Amplitudensprektrum Die Abbildung oben links zeigt das Ausgangssignal. Rechts sehen wir einen Ausschnitt davon und unten das einseitige Amplitudenspektrum..4.2 5 1 15 2 25 3 35 4 45 5 Frequenz [Hz] Numerische Mathematik II Herbsttrimester 212 24
Y(f) Die nächste Abbildung zeigt das Signal nach Anwendung des oben definierten einfachen Rauschfilters. Wir sehen, dass nur die dominanten Frequenzanteile (3Hz & 8Hz) übrig geblieben sind. Die Abbildung rechts zeigt die Fourier-Synthese des rauschfreien Signals (also die inverse FFT). Zur Illustration wollen wir noch das rauschfreie Signal durch entweder einen Tiefpassfilter oder einen Hochpassfilter verarbeiten um so die beiden Frequenzanteile zu separieren. Das Ergebnis ist auf der nächsten Folie zu sehen. In der Realität ist Rauschunterdrückung natürlich deutlich komplexer. Das Prinzip ist jedoch ähnlich. 1.4 Einseitiges Amplitudensprektrum nach Rauschunterdrückung 2 Signal nach Rauschunterdrückung 1.2 1.5 1 1.5.8.6 -.5.4-1.2-1.5 5 1 15 2 25 3 35 4 45 5 Frequenz [Hz] -2 2 4 6 8 1 12 14 16 18 2 Zeit[ms] Numerische Mathematik II Herbsttrimester 212 25
Y(f) Y(f).7 Amplitudensprektrum nach zusätzlicher Tiefpassfilterung.6 Signal nach Rausch- und Tiefpassfilterung.6.4.5.2.4.3 -.2.2 -.4.1 -.6 5 1 15 2 25 3 35 4 45 5 Frequenz [Hz] -.8 2 4 6 8 1 12 14 16 18 2 Zeit[ms].9 Amplitudensprektrum nach zusätzlicher Hochpassfilterung 1 Signal nach Rausch- und Hochpassfilterung.8.8.7.6.6.5.4.4.2 -.2.3 -.4.2 -.6.1 -.8 5 1 15 2 25 3 35 4 45 5 Frequenz [Hz] -1 2 4 6 8 1 12 14 16 18 2 Zeit[ms] Numerische Mathematik II Herbsttrimester 212 26
Zusammenfassung Wir haben verschiedene Darstellungen der Fourier-Reihe kennengelernt. Für die numerische Auswertung verwendet man zumeist die Darstellung als komplexe Fourier-Reihe. Angewandt auf diskrete Daten spricht man von der diskreten Fourier-Transformation (DFT) Es gibt schnelle Algorithmen zur Durchführung der DFT, die FFT. Für nichtperiodische Signale geht die Fourier-Reihe in die Fourier- Transformation über. Auch die Fourier-Transformation kann man auf einem endlichen Intervall mit der DFT/FFT auswerten. Die Koeffizienten entsprechen dann einem lokalen Mittelwert des kontinuierlichen Spektrums. Wertet man Daten aus die höhere Frequenzanteile beinhalten als die halbe Abtastfrequenz kommt es unvermeidlich zum Aliasing. Numerische Mathematik II Herbsttrimester 212 27