Kapitel 3 – Trigonometrische Interpolation Einführung in die Fourier-Reihen Trigonometrische Interpolation Schnelle Fourier-Transformation (FFT) Zusammenfassung Numerische Mathematik II Herbsttrimester 2012 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 𝑔 auf 0, 𝑇 lässt sich unter bestimmten Voraussetzungen (z.B. 𝑔 stetig und abschnittweise stetig diffbar) als Reihe von Sinus- und Cosinus-Funktionen darstellen deren 2𝜋 Frequenzen Vielfache der Grundfrequenz 𝜔 = = 2𝜋𝑓 sind: 𝑎0 𝑔 𝑡 = + 2 2 𝑎𝑘 = 𝑇 𝑇 ∞ 𝑘=1 𝑇 𝑘2𝜋𝑡 𝑘2𝜋𝑡 𝑎𝑘 cos + 𝑏𝑘 sin 𝑇 𝑇 𝑔 𝑡 cos(𝑘𝜔𝑡) 𝑑𝑡 0 2 𝑏𝑘 = 𝑇 𝑇 𝑔 𝑡 sin(𝑘𝜔𝑡) 𝑑𝑡 0 Beweis: siehe Analysis. Numerische Mathematik II Herbsttrimester 2012 2 Exkurs: Komplexe Zahlen Die komplexen Zahlen erweitern die reellen Zahlen derart, dass z.B. die Gleichung 𝑥 2 + 1 = 0 lösbar wird mit der Lösung 𝑥 = 𝑖. Offenbar gilt 𝑖 2 = −1. Wir wollen einige Rechenregeln und Definitionen wiederholen. Sei 𝑦 = 𝑎 + 𝑖𝑏 und 𝑧 = 𝑐 + 𝑖𝑑 dann ist 𝑦 + 𝑧 = (𝑎 + 𝑐) + 𝑖(𝑏 + 𝑑) 𝑦 ⋅ 𝑧 = (𝑎𝑐 − 𝑏𝑑) + 𝑖(𝑎𝑑 + 𝑏𝑐) (durch ausmultiplizieren) Re 𝑦 = 𝑎, Im 𝑦 = 𝑏 |𝑦| = 𝑎2 + 𝑏 2 𝑦 = 𝑎 − 𝑖𝑏 bezeichnet die zu 𝑦 komplex konjugierte Zahl. Es gelten die Rechenregeln: 𝑦 + 𝑧 = 𝑦+𝑧, 𝑦 ⋅ 𝑧 = 𝑦 ⋅ 𝑧, 𝑧 ⋅ 𝑧 = 𝑧 2 , z + 𝑧 = 2Re 𝑧 , z − 𝑧 = 2i Im 𝑧 Es gilt der wichtige Zusammenhang: 𝑒 𝑖𝑥 = cos 𝑥 + 𝑖sin(𝑥) was man z.B. sehr schön an den Taylorreihen ablesen kann. Numerische Mathematik II Herbsttrimester 2012 3 Lemma 3.2 Die Fourierreihe hat folgende alternative Darstellungen: Amplituden-Phasen Darstellung (alternativ auch mittels Sinus): ∞ 𝑎0 𝑔 𝑡 = + 𝐴𝑘 cos( 𝑘𝜔𝑡 − 𝜑𝑘 ) mit Ak = 𝑎𝑘2 + 𝑏𝑘2 2 𝑘=1 𝑏𝑘 𝑏𝑘 𝜑𝑘 = arctan , 𝑎𝑛 > 0; arctan + 𝜋 , 𝑎𝑘 < 0; sgn 𝑏𝑘 , 𝑎𝑘 = 0 𝑎𝑘 𝑎𝑘 Komplexe Fourierreihe: ∞ 𝑐𝑘 𝑒 𝑖𝑘𝜔𝑡 𝑔 𝑡 = 𝑘=−∞ 1 𝑚𝑖𝑡 𝑐𝑘 = 𝑇 𝑇 𝑔 𝑡 𝑒 𝑖𝑘𝜔𝑡 𝑑𝑡 0 Dabei bezeichnet 𝑖 die imaginäre Einheit. Die 𝑐𝑘 sind komplexe Zahlen. Es gilt folgender Zusammenhang zu den Koeffizienten aus Satz 3.1: 𝑎𝑘 = 𝑐𝑘 + 𝑐−𝑘 , 𝑏𝑘 = 𝑖(𝑐𝑘 − 𝑐−𝑘 ). Numerische Mathematik II Herbsttrimester 2012 4 Beweis: Aus der Amplituden-Phasen Darstellung erhält man mittels der Additionstheoreme cos 𝛼 − 𝛽 = cos 𝛼 cos 𝛽 + sin 𝛼 sin(𝛽) : 𝐴𝑘 cos( 𝑘𝜔𝑡 − 𝜑𝑘 ) = {𝐴𝑘 cos( 𝜑𝑘 )} cos( 𝑘𝜔𝑡)+ {𝐴𝑘 sin( 𝜑𝑘 )} sin( 𝑘𝜔𝑡) und damit die Äquivalenz der ersten beiden Darstellungen. Mittels der Moivre‘schen Formel 𝑒 𝑖𝑥 = cos 𝑥 + 𝑖 sin 𝑥 sieht man: ∞ ∞ 𝑐𝑘 𝑒 𝑖𝑘𝜔𝑡 = 𝑐0 + 𝑘=−∞ 𝑘=1 ∞ 𝑐0 + 𝑐𝑘 𝑒 𝑖𝑘𝜔𝑡 + 𝑐−𝑘 𝑒 −𝑖𝑘𝜔𝑡 = 𝑐𝑘 (cos 𝑘𝜔𝑡 + 𝑖 sin(𝑘𝜔𝑡 )) + 𝑐−𝑘 cos −𝑘𝜔𝑡 + 𝑖 sin −𝑘𝜔𝑡 = 𝑘=1 ∞ 𝑐0 + 𝑐𝑘 (cos 𝑘𝜔𝑡 + 𝑖 sin(𝑘𝜔𝑡 )) + 𝑐−𝑘 (cos 𝑘𝜔𝑡 − 𝑖 sin(𝑘𝜔𝑡 )) 𝑘=1 Also gilt : 𝑎𝑘 = 𝑐𝑘 + 𝑐−𝑘 , 𝑏𝑘 = 𝑖(𝑐𝑘 − 𝑐−𝑘 ). Numerische Mathematik II Herbsttrimester 2012 5 Bemerkungen: Analog zum letzten Teil des Beweises von Satz 3.2 sieht man, dass für eine reelle Funktion 𝑔 gilt 𝑐𝑘 = 𝑐−𝑘 . Daraus folgt, dass (i) 𝑏𝑘 = 𝑖(𝑐𝑘 − 𝑐−𝑘 ) tatsächlich reell ist (ii) dass für eine reelle Funktion nur die Hälfte der 𝑐𝑘 unabhängig sind. In der praktischen Anwendung wird die Fourier-Reihe üblicherweise nach endlich vielen Gliedern abgebrochen. Numerische Mathematik II Herbsttrimester 2012 6 Wir wenden uns jetzt dem Interpolationsproblem zu und betrachten eine äquidistante Einteilung des Intervalls 0, 𝑇 in 𝑛 + 1 Stützstellen: 𝑇 𝑡𝑗 = 𝑗 , 𝑗 = 0, … , 𝑛 − 1. Die zu interpolierende Funktion sei periodisch 𝑛 mit Periode 𝑇: 𝑔0 ≔ 𝑔 0 = 𝑔 𝑇 = 𝑔𝑛 . Wir setzten für 𝑎0 𝑛 = 2𝑚 + 1: 𝑔 𝑡 = + 2 𝑎0 𝑛 = 2𝑚: 𝑔 𝑡 = + 2 𝑚−1 𝑘=1 𝑚 𝑘=1 𝑘2𝜋𝑡 𝑘2𝜋𝑡 𝑎𝑘 cos + 𝑏𝑘 sin 𝑇 𝑇 𝑘2𝜋𝑡 𝑘2𝜋𝑡 𝑚2𝜋𝑡 𝑎𝑘 cos + 𝑏𝑘 sin + am cos 𝑇 𝑇 𝑇 und suchen geeignete Koeffizienten so dass gilt: 𝑔𝑘 ≔ 𝑔 𝑡𝑘 . In beiden Fällen kann dies auch geschrieben werden als komplexe Fourier-Reihe: 𝑚 𝑐𝑘 𝑒 𝑖𝑘𝜔𝑡 𝑔 𝑡 = 𝑘=−𝑚 Numerische Mathematik II Herbsttrimester 2012 7 Dabei gilt für die Koeffizienten: 𝑛 = 2𝑚 + 1: 𝑎𝑘 = 𝑐𝑘 + 𝑐−𝑘 , 𝑏𝑘 = 𝑖 𝑐𝑘 − 𝑐−𝑘 , 𝑘 = 0, … , 𝑚 𝑛 = 2𝑚: 𝑎𝑚 = 2𝑐𝑚 = 2𝑐−𝑚 und wie zuvor für 𝑘 = 0, … , 𝑚 − 1 Beachten Sie, dass für diese Wahl wie gewünscht 𝑏𝑚 = 0 und dass wir durch diese Festlegung die korrekte Anzahl an freien Koeffizienten für unsere Interpolationsaufgabe erhalten. Mit der Kreisfrequenz 𝜔 = 𝑚 𝑔𝑗 = 𝑔 𝑡𝑗 = 𝑐𝑘 𝑒 𝑖𝑘𝜔𝑡𝑗 2𝜋 𝑇 = 2𝜋𝑓 lautet das Interpolationsproblem: 𝑚 bzw. 𝑔𝑗 = 𝑔 𝑡𝑗 = 𝑘=−𝑚 Mittels der Moivre‘schen Formel sieht man: −𝑘𝑗 𝑖 2𝜋 𝑛 𝑒 𝑖 2𝜋 −𝑘𝑗+𝑗𝑛 𝑛 −𝑘𝑗 𝑒 2𝜋𝑖 𝑛 𝑘=−𝑚 𝑒 𝑖(2𝜋𝑗+𝑥) 2𝜋𝑖 𝑘𝑗 2𝜋𝑖 𝑛 𝑐𝑘 𝑒 (∗) = 𝑒 𝑖𝑥 und daher (𝑛−𝑘)𝑗 𝑛 =𝑒 oder =𝑒 . Mit anderen Worten die Exponentialterme sind periodisch in 𝑘 mit Periode 𝑛 . Daher schreibt man (∗) oftmals auch in der Form 𝑛−1 𝑔 𝑡𝑗 = 𝑛−1 𝑐𝑘 𝑒 𝑖𝑘𝜔𝑡𝑗 = 𝑘=0 Numerische Mathematik II Herbsttrimester 2012 𝑘𝑗 2𝜋𝑖 𝑛 𝑐𝑘 𝑒 𝑘=0 8 Setzt man 𝑧 𝑡 ≔ 𝑒 𝑖𝜔𝑡 erhält man daraus die Darstellung 𝑛−1 𝑛−1 𝑐𝑘 𝑒 𝑖𝑘𝜔𝑡𝑗 = 𝑔 𝑡𝑗 = 𝑘=0 𝑐𝑘 𝑧(𝑡𝑗 )𝑘 𝑘=0 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 𝑛 welches in den Punkten 𝑧(𝑡𝑗 ) die Werte 𝑔𝑗 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 2012 9 Satz 3.3 Zu beliebigen Stützstellen 𝑡𝑘 , 𝑔𝑘 , 𝑘 = 0, … , 𝑛 − 1 mit komplexen 𝑔𝑘 und 𝑇 𝑛 𝑡𝑗 = 𝑗 gibt es ein eindeutig bestimmtes trigonometrisches Polynom 𝑛−1 𝑐𝑘 𝑒 𝑖𝜔𝑘𝑡𝑗 mit 𝑔 𝑡𝑗 = 𝑔𝑗 . 𝑔 𝑡𝑗 = 𝑘=0 Für die Koeffizienten gilt die Darstellung: 1 𝑐𝑗 = 𝑛 𝑛−1 𝑔𝑘 𝑒 −2𝜋𝑖 𝑘𝑗 𝑛,𝑗 = 0, … , 𝑛 − 1. 𝑘=0 Die komplexe Abbildungℱ 𝑔0 , … , 𝑔𝑛−1 = (𝑐0 , … , 𝑐𝑛−1 ) heißt diskrete Fourier-Transformation (DFT). Für Ihre Umkehrung, die FourierSynthese, gilt: 𝑛−1 𝑔𝑗 = 𝑘𝑗 2𝜋𝑖 𝑛 𝑐𝑘 𝑒 ,𝑗 = 0, … , 𝑛 − 1, 𝑘=0 Man kann also fast den gleichen Algorithmus für Transformation und Synthese verwenden. Numerische Mathematik II Herbsttrimester 2012 10 𝑘𝑗 2𝜋𝑖 𝑛−1 𝑛 𝑘=0 𝑐𝑘 𝑒 Beweis: wir multiplizieren 𝑔𝑗 = mit 𝑒 0 ≤ 𝑚 ≤ 𝑛 − 1 summieren über 𝑗 und erhalten: 𝑛−1 𝑔𝑗 ⋅ 𝑚𝑗 −2𝜋𝑖 𝑛 𝑒 𝑗=0 𝑛−1 𝑛−1 = (𝑘−𝑚)𝑗 2𝜋𝑖 𝑛 𝑐𝑘 𝑒 𝑛−1 = 𝑗=0 𝑘=0 −2𝜋𝑖 𝑚𝑗 𝑛 𝑛−1 𝑐𝑘 𝑘=0 𝑒 2𝜋𝑖 wobei (𝑘−𝑚)𝑗 𝑛 (∗) 𝑗=0 Wir betrachten den letzten Summanden und zeigen: 𝑛−1 𝑒 2𝜋𝑖 𝑘−𝑚 𝑗 𝑛 = 𝑛 𝛿𝑘𝑚 (∗∗) 𝑗=0 Für 𝑘 = 𝑚 ist die Behauptung klar. Sei nun 𝑘 ≠ 𝑚. Die obige Summe ist eine geometrische Reihe und es gilt: 𝑛−1 (𝑘−𝑚)𝑗 2𝜋𝑖 𝑛 𝑒 = 1−𝑒 2𝜋𝑖 2𝜋𝑖 𝑘−𝑚 𝑛 𝑛 (𝑘−𝑚) 𝑛 1−𝑒 Betrachten wir hiervon den Zähler so gilt 1 − 𝑒 2𝜋𝑖(𝑘−𝑚) = 1 − cos(2𝜋 𝑘 − 𝑚 ) − sin(2𝜋 𝑘 − 𝑚 ) = 0 Aus (∗) und (∗∗) folgt dann die Behauptung für die DFT. Der Beweis für die Synthese erfolgt mehr oder weniger analog. 𝑗=0 Numerische Mathematik II Herbsttrimester 2012 11 Bemerkungen: Für DFT und IDFT (=inverse DFT) gilt (jedoch nicht bei der Festlegung der Koeffizienten für die Interpolation): 1 Die Normierungsfaktoren 1 bzw. sind Konvention. Das Produkt der Faktoren muss nur 1 𝑛 1 𝑛 𝑛 ergeben. (Beispielsweise definiert Matlab die DFT ohne Faktor ) 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 2012 12 Bemerkungen: Mit Fourier-Reihen lassen sich nur periodische Funktionen darstellen. Um auch nichtperiodische Funktionen 𝑔 darstellen zu können dehnt man den Definitionsbereich aus ins Unendliche und erhält dann die sogenannte (kontinuierliche) Fourier-Transformation: ∞ ℱ 𝑔 𝜔 = 𝑔 𝑡 𝑒 −𝑖𝜔𝑡 𝑑𝑡 −∞ In der Praxis möchte man häufig die Fourier-Transformation von diskreten Daten 𝑔𝑘 zu den Stützstellen 𝑡𝑘 = 𝑘𝛥, 𝑘 = 0, … , n − 1 2𝜋𝑗 auswerten mit den diskreten Kreisfrequenzen 𝜔𝑗 = 2𝜋𝑓𝑗 = für 𝑗= 𝑛 𝑛 − ,…, . 2 2 𝑛Δ Ein naiver Ansatz liefert (vgl. mit Satz 3.3): 𝑛−1 ∞ ℱ 𝑔 𝜔𝑗 = 𝑔 𝑡 𝑒 −𝑖𝜔𝑗 𝑡 𝑑𝑡 ≈ Δ −∞ 𝑔𝑘 𝑒 𝑘𝑗 −2𝜋𝑖 𝑛 𝑘=0 1 Die Frequenz 𝑓𝑛/2 = 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 2012 13 Bemerkungen: Wendet man die DFT auf einen Abschnitt 0, 𝑇 einer unendlichen Zeitreihe an entspricht das der Multiplikation der Ausgangsfunktion mit einer Fensterfunktion der Form 𝑤 𝑥 = 1 falls 0 ≤ 𝑡 ≤ 𝑇 𝑤 𝑥 = 0 sonst. Nach einem Satz der Fourier-Analyse entspricht das Produkt von zwei Funktionen im Zeitbereich der Faltung der beiden FourierTransformierten im Frequenzbereich. Dabei ist die Faltung von zwei Funktionen definiert durch ∞ 𝑔 ∗ ℎ (𝑡) = 𝑔 𝜏 ℎ 𝑡 − 𝜏 𝑑𝜏 −∞ 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 2012 14 Beispiel 3.1 Wir berechnen das trigonometrische Polynom auf 0,2𝜋 zu den drei Stützstellen: 𝒕𝒋 0 𝒈𝒋 = 𝐜𝐨𝐬(𝒕𝒋 ) 1 2𝜋 3 -0.5 4𝜋 3 -0.5 4𝜋 3 -0.5 8𝜋 − 3 -0.5 Wir benötigen folgende Funktionswerte: 2𝜋 − 3 -0.5 𝒕 𝐜𝐨𝐬(𝒕) 𝐬𝐢𝐧(𝒕) − -0.866… 0.866… -0.866… Und stellen zunächst fest (Moivre) 𝒕 0 𝒆𝒊𝒕 1 Numerische Mathematik II 2𝜋 3 -0.5-0.866i − Herbsttrimester 2012 4𝜋 3 -0.5+0.866i − 8𝜋 3 -0.5-0.866i − 15 Wir bestimmen nun 𝑐𝑗 gemäß Satz 3.3 und mit Hilfe der obigen Tabelle 1 𝑐𝑗 = 3 𝑛−1 𝑔𝑘 𝑒 −2𝜋𝑖 𝑘𝑗 3 ,𝑗 = 0,1,2. 𝑘=0 Es folgt: 1 𝑐0 = 1 ⋅ 1 − 0.5 ⋅ 1 − 0.5 ⋅ 1 = 0 3 1 13 1 c1 = 1 ⋅ 1 − 0.5 ⋅ (−0.5−0.866i) − 0.5 ⋅ (−0.5+0.866i ) = = 3 32 2 1 13 1 c2 = 1 ⋅ 1 − 0.5 ⋅ (−0.5 + 0.866i) − 0.5 ⋅ (−0.5−0.866i ) = = 3 32 2 und somit 𝑎0 = 0, 𝑎1 = 𝑐1 + 𝑐−1 = 𝑐1 + 𝑐2 = 1, sowie 𝑏1 = 𝑖 𝑐1 − 𝑐2 = 0. Damit wird die Fourierreihe zu 𝑎0 + 2 1 𝑎𝑘 cos 𝑘=1 Numerische Mathematik II 𝑘2𝜋𝑡 𝑘2𝜋𝑡 + 𝑏𝑘 sin = cos 𝑡 . 𝑇 𝑇 Herbsttrimester 2012 16 Beispiel 3.2 Wir betrachten die periodische Fortsetzung der Sägezahnfunktion g 𝑥 = 𝑥, 𝑥 ∈ 0,2𝜋 . Wir nähern die exakten Koeffizienten aus Satz 3.1 durch eine DFT der Sägezahnfunktion mit sehr großem 𝑛=2*m+1 an und erhalten die ersten 6 Koeffizienten 𝑐𝑖 , 𝑖 = 0, … , 5 zu ans = 3.1416 -0.0000 + 1.0000i -0.0000 + 0.5000i -0.0000 + 0.3333i -0.0000 + 0.2500i -0.0000 + 0.2000i sowie die letzten 5 Glieder Glieder der DFT 𝑐𝑖 , 𝑖 = n − 5, … , n − 1 zu ans = -0.0000 - 0.2000i -0.0000 - 0.2500i -0.0000 - 0.3333i -0.0000 - 0.5000i -0.0000 - 1.0000i Vermöge der Formeln 𝑎𝑘 = 𝑐𝑘 + 𝑐−𝑘 , 𝑏𝑘 = 𝑖(𝑐𝑘 − 𝑐−𝑘 ) wollen wir die Entwicklung der Sägezahnfunktion in Sinus und Cosinus Termen angeben. Wir beachten dabei 𝑐−k = cn−k . Die letzten 5 Glieder entsprechen also den Gliedern 𝑐−5 , … , 𝑐−1 . Wir erhalten den sogenannten Gleichanteil 𝑎0 = 𝜋 Weiter gilt: 𝑎𝑖 = 𝑐𝑖 + 𝑐−𝑖 = 0, sowie 𝑏𝑘 = 𝑖 𝑐𝑘 − 𝑐−𝑘 = −(Im 𝑐𝑘 − Im 𝑐−𝑘 ) = −2/𝑘 Numerische Mathematik II Herbsttrimester 2012 17 Wir vermuten also die Darstellung (das obige Vorgehen ist natürlich kein Beweis): ∞ 2 𝑔 𝑥 =𝜋+ − sin(𝑘𝑥) 𝑘 𝑘=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 6 5 5 4 3 4 2 3 1 2 0 1 -1 -2 0 1 Numerische Mathematik II 2 3 4 5 6 0 Herbsttrimester 2012 0 1 2 3 4 5 6 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. 𝑛 = 21 = 2 ∗ 10 + 1 erhält man die Koeffizienten 𝑎, 𝑏 a= b= 2.9920 -0.2992 -0.2992 -0.2992 -0.2992 -0.2992 -0.2992 -0.2992 -0.2992 -0.2992 -0.2992 -1.9851 -0.9700 -0.6213 -0.4388 -0.3225 -0.2386 -0.1727 -0.1174 -0.0683 -0.0224 Der Gleichanteil entspricht nicht dem korrekten Wert 𝜋. Die CosinusTerme 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 10. Glied abgebrochen wurde zugefügt was die Koeffizienten entsprechend verfälscht. Man spricht vom Aliasing Effekt. Numerische Mathematik II Herbsttrimester 2012 19 Exkurs Komplexität – Landau Symbole: Zur Definition der algorithmischen Komplexität benutzt man üblicherweise die Landau Symbole für den Grenzwert 𝑥 → ∞. Man sagt 𝑓 = 𝑂 𝑔 falls gilt: Es gibt ein 𝑐 > 0 und ein 𝑥0 > 0 so dass für alle 𝑥 > 𝑥0 gilt 𝑓 𝑥 ≤ 𝑐 𝑔 𝑥 . Beispiele: 𝑓 𝑛 = 3 + 𝑛 + 2 𝑛2 . Es gilt 𝑓 = 𝑂(𝑛2 ) 𝑓 𝑛 = 𝑛! = Es gilt 𝑓 = 𝑂 𝑛 𝑛 2 𝜋𝑛 𝑒 𝑛 𝑛 𝑛 1+𝑂 1 𝑛 (Stirling Formel) 𝑒 Sei ein Algorithmus gegeben mit Komplexität 𝑂 𝑛2 und ein Computer mit 100 Gflops. Wir wollen den Algorithmus auf einen Vektor der Länge 109 anwenden. Wir benötigen also 1018 Rechenoperationen und auf dem obigen Rechner 107 Sekunden oder 115.7 Tage. Existiert ein Algorithmus der den selben Zweck in 𝑂 𝑛 log 2 𝑛 erfüllt, benötigen wir 29.89 ⋅ 109 Operationen oder 0.298 Sekunden. Numerische Mathematik II Herbsttrimester 2012 20 FFT: Schnelle Fourier-Transformation Die DFT hat eine algorithmische Komplexität von 𝑂 𝑛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 𝑛 = 2𝑚 und definieren zwei DFTs der halben Länge für gerade und ungerade Koeffizienten wie folgt: 𝑔𝑘′ = 𝑔2𝑘 , 𝑔𝑘′′ = 𝑔2𝑘+1 , 𝑐𝑘′ = 𝑐2𝑘 , 𝑐𝑘′′ = 𝑐2𝑘+1 . Dann folgt: 1 𝑐𝑗 = 𝑛 1 = 𝑛 = 𝑛−1 𝑘𝑗 −2𝜋𝑖 𝑛 𝑔𝑘 𝑒 𝑘=0 𝑚−1 𝑔𝑘 ′𝑒 𝑘=0 𝑐𝑗′ +𝑒 𝑗 −𝜋𝑖𝑚 ′ 𝑐𝑗−𝑚 Numerische Mathematik II −2𝜋𝑖 +𝑒 1 = 𝑛 𝑘𝑗 𝑚 ⋅ 𝑐𝑗′′ −𝜋𝑖 𝑗 𝑚 𝑚−1 2𝑘𝑗 −2𝜋𝑖 2𝑚 𝑔2𝑘 𝑒 𝑘=0 +𝑒 −𝜋𝑖 𝑗 𝑚 1 ⋅ 𝑛 1 + 𝑛 𝑚−1 𝑔𝑘′′ 𝑒 𝑚−1 𝑔2𝑘+1 𝑒 −2𝜋𝑖 (2𝑘+1)𝑗 2𝑚 = 𝑘=0 −2𝜋𝑖 𝑘𝑗 𝑚 = 𝑘=0 falls 𝑗 < 𝑚 ′′ ⋅ 𝑐𝑗−𝑚 falls 𝑗 ≥ 𝑚 Herbsttrimester 2012 21 Die letzte Zeile entsteht dadurch, dass die Indizes 𝑐𝑗 bis 𝑛 − 1 laufen während die Indizes 𝑐𝑗′ , 𝑐𝑗′′ bis m−1 laufen. Bemerkungen: Wir können also die DFT der Ausgangsdaten berechnen durch 2 DFTs auf Daten der halben Länge. Falls 𝑛 = 2𝑝 eine Zweierpotenz ist kann man das ganze rekursiv 𝑝 = log 2 𝑛 mal wiederholen. Man kann zeigen, dass die FFT dann eine algorithmische Komplexität von 𝑂(n log 2 𝑛) hat. Es gibt mittlerweile auch FFT Algorithmen für 𝑛 ≠ 2𝑝 . Am schnellsten ist aber die FFT für 𝑛 = 2𝑝 . 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 2012 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: |ℱ 𝑔 𝑓𝑘 |+ ℱ 𝑔 −𝑓𝑘 welches sich für reelle Funktionen zu 2 |ℱ 𝑔 𝑓𝑘 | vereinfacht. Alternativ findet man auch das Powerspektrum definiert durch ℱ 𝑔 𝑓𝑘 2 + ℱ 𝑔 −𝑓𝑘 2 mit der entsprechenden Vereinbarung für reelle Argumente. Die Phaseninformation wird also verworfen. In der Interpolations-Notation entspricht ℱ 𝑔 𝑓𝑘 = 𝑐𝑘 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 |ℱ 𝑔 𝑓𝑘 |<0.2 zu Null gesetzt werden. Numerische Mathematik II Herbsttrimester 2012 23 Signal mit überlagertem Rauschen Signal mit überlagertem Rauschen 8 8 6 6 4 4 2 2 0 0 -2 -4 -2 -6 -4 -8 -6 -10 0 100 200 300 400 500 600 Zeit[ms] 700 800 900 1000 -8 0 20 40 60 80 100 120 Zeit[ms] 140 160 180 200 Einseitiges Amplitudensprektrum 1.4 Die Abbildung oben links zeigt das Ausgangssignal. Rechts sehen wir einen Ausschnitt davon und unten das einseitige Amplitudenspektrum. 1.2 1 |Y(f)| 0.8 0.6 0.4 0.2 0 0 50 100 Numerische Mathematik II 150 200 250 300 Frequenz [Hz] 350 400 450 500 Herbsttrimester 2012 24 Die nächste Abbildung zeigt das Signal nach Anwendung des oben definierten einfachen Rauschfilters. Wir sehen, dass nur die dominanten Frequenzanteile (30Hz & 80Hz) ü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. Signal nach Rauschunterdrückung Einseitiges Amplitudensprektrum nach Rauschunterdrückung 2 1.4 1.5 1.2 1 1 0.5 |Y(f)| 0.8 0 0.6 -0.5 0.4 -1 0.2 -1.5 0 -2 0 50 100 150 Numerische Mathematik II 200 250 300 Frequenz [Hz] 350 400 450 500 0 Herbsttrimester 2012 20 40 60 80 100 120 Zeit[ms] 140 160 180 200 25 Amplitudensprektrum nach zusätzlicher Tiefpassfilterung Signal nach Rausch- und Tiefpassfilterung 0.6 0.6 0.4 0.5 0.2 0.4 0 0.3 -0.2 0.2 -0.4 0.1 -0.6 |Y(f)| 0.7 0 0 50 100 150 200 250 300 Frequenz [Hz] 350 400 450 500 -0.8 0 20 40 60 80 100 120 Zeit[ms] 140 160 180 200 180 200 Signal nach Rausch- und Hochpassfilterung Amplitudensprektrum nach zusätzlicher Hochpassfilterung 0.9 1 0.8 0.8 0.6 0.7 0.4 0.6 |Y(f)| 0.2 0.5 0 0.4 -0.2 0.3 -0.4 0.2 -0.6 0.1 -0.8 0 -1 0 50 100 Numerische Mathematik II 150 200 250 300 Frequenz [Hz] 350 400 450 500 Herbsttrimester 2012 0 20 40 60 80 100 120 Zeit[ms] 140 160 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 FourierTransformation ü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 2012 27