340 likes | 614 Views
Fast Fourier Transformation. Dimitri Litke. Gliederung. Einleitung Grundlagen 2.1 Komplexe Zahlen 2.2 Einheitswurzel Fourier Transformation 3.1 Diskrete Fourier Transformation 3.2 Inverse Fourier Transformation Schnelle Fourier Transformation 4.1 FFT 4.2 Parallele Implementierung
E N D
Fast Fourier Transformation Dimitri Litke
Gliederung • Einleitung • Grundlagen 2.1 Komplexe Zahlen 2.2 Einheitswurzel • Fourier Transformation 3.1 Diskrete Fourier Transformation 3.2 Inverse Fourier Transformation • Schnelle Fourier Transformation 4.1 FFT 4.2 Parallele Implementierung • Fazit
1. Einleitung • Anwendungsgebiete • Signalverarbeitung • Bildverarbeitung • Grundlegende mathematische Berechnungen, wie z.B. Polynommultiplikation
1. Einleitung Polynommultiplikation direkte Multiplikation Koeffizienten -darstellung Koeffizienten -darstellung Transformation Transformation Stützstellen -darstellung Stützstellen -darstellung Multiplikation
Gliederung • Einleitung • Grundlagen 2.1 Komplexe Zahlen 2.2 Einheitswurzel • Fourier Transformation 3.1 Diskrete Fourier Transformation 3.2 Inverse Fourier Transformation • Schnelle Fourier Transformation 4.1 FFT 4.2 Parallele Implementierung • Fazit
2.1 Komplexe Zahlen Im Bereich der reellen Zahlen gibt es keine Lösung für x²=-1 => Erweiterung des Zahlenbereiches um die imaginären Zahlen Die wichtigste von diesen ist i: die Lösung der Gleichung x²=-1 Die reellen und die imaginären Zahlen vereinigt nennt man komplexe Zahlen Eine Komplexe Zahl z: z = a + i*b , wobei a und b reell sind
2.1 Komplexe Zahlen Darstellung von z = a + i*b im Koordinatensystem Imaginäre Achse Reallteil a z r Imaginärteil i*b Reelle Achse Andere Darstellungsform:
2.2 Einheitswurzel • Sei C der Körper der komplexen Zahlen. Ein Element ωC heißt n-te Einheitswurzel, wenn • Für jedes n gibt genau n solche Einheitswurzeln , die die Bedingung erfüllen. • Haupteinheitswurzel: • Alle anderen:
2.2 Einheitswurzel Einheitskreis: Imaginäre Achse i Reelle Achse 1
2.2 Einheitswurzel Imaginäre Achse Einheitskreis: i Reelle Achse 1
Gliederung • Einleitung • Grundlagen 2.1 Komplexe Zahlen 2.2 Einheitswurzel • Fourier Transformation 3.1 Diskrete Fourier Transformation 3.2 Inverse Fourier Transformation • Schnelle Fourier Transformation 4.1 FFT 4.2 Parallele Implementierung • Fazit
3.1 Diskrete Fourier Transformation Sei n N und primitive n-te Einheitswurzel in C Die Fouriermatrix: für alle i, j {0,…,n-1} Für n=4:
3.1 Diskrete Fourier Transformation Die DFT eines Vektors x = (x0,…xn-1): d.h. die j-te Komponente des Ergebnisvektors f(x): Für n=4:
3.1 Diskrete Fourier Transformation Beispiel: Multiplikation von zwei Polynomen: und Hier und Eingabevektor von p(x): von q(x):
3.1 Diskrete Fourier Transformation Die DFT des Eingabevektors von p(x):
3.1 Diskrete Fourier Transformation Multiplikation von transformierten Vektoren
3.2 Inverse Fourier Transformation Einträge der inversen Fouriermatrix: für alle i, j {0, …, n-1}. z.B. für n=4:
3.2 Inverse Fourier Transformation Beispiel (fortgesetzt):
3.2 Inverse Fourier Transformation Dieser Vektor beinhaltet nun die Koeffizienten des Ergebnispolynoms:
Komplexität direkte Multiplikation Koeffizienten -darstellung Koeffizienten -darstellung Transformation Transformation Stützstellen -darstellung Stützstellen -darstellung Multiplikation
Gliederung • Einleitung • Grundlagen 2.1 Komplexe Zahlen 2.2 Einheitswurzel • Fourier Transformation 3.1 Diskrete Fourier Transformation 3.2 Inverse Fourier Transformation • Schnelle Fourier Transformation 4.1 FFT 4.2 Parallele Implementierung • Fazit
4.1 Fast Fourier Transformation Die Idee: Die Matrix-Vektor-Multiplikation soll so ausgeführt werden, dass auf die schon vorhandenen Zwischenergebnisse zurückgegriffen werden kann Hier werden folgende Eigenschaften der primitiven Einheitswurzeln genutzt und
4.1 Fast Fourier Transformation Das Ziel ist hier die FT des Vektors a zu berechnen: Aufteilung des Polynoms in und
4.1 Fast Fourier Transformation Die schnelle Fourier Transformation: Aufteilung der Polynome und solange bis nur noch Paare von Polynomen mit jeweils einem Koeffizienten vorhanden
4.1 Fast Fourier Transformation Rekursive Aufteilung des Inputvektors
4.2 Parallele Implementierung Aufgabe: Berechnung der FT von einem Vektor mit n Elementen auf einem Rechner mit p Prozessoren Drei Phasen • Austausch von Inputelementen zwischen den Prozessoren • Die ersten log(n)-log(p) Iterationsschritte der FFT (parallele Ausführung) • Die letzten log(p) Schritte der FFT (Kommunikation zwischen den Prozessoren erforderlich)
4.2 Parallele Implementierung Folgende zwei Operationen werden wiederholt: und Graphische Darstellung als „Butterfly“-Operation:
4.2 Parallele Implementierung -1 -1 -5 -1 2 5 0 -1 -1-4i 1,12+0,95i P0 -4 3 -4 -4 3+3i 2 0 -4 -1+4i -3,12+8,95i 0 7 5 5 -12 0 5+2i 0 5 -3,12-8,95i P1 2 3 3-3i 0 2 2 5-2i 0 0 1,12-0,95i
4.2 Parallele Implementierung Komplexität direkte Multiplikation Koeffizienten -darstellung Koeffizienten -darstellung Transformation Transformation Stützstellen -darstellung Stützstellen -darstellung Multiplikation
Gliederung • Einleitung • Grundlagen 2.1 Komplexe Zahlen 2.2 Einheitswurzel • Fourier Transformation 3.1 Diskrete Fourier Transformation 3.2 Inverse Fourier Transformation • Schnelle Fourier Transformation 4.1 FFT 4.2 Parallele Implementierung • Fazit
5. Fazit • Die Anwendungsmöglichkeiten sind weit größer als hier beschrieben wurde. Aber die prinzipielle Vorgehensweise bleibt die gleiche • Fourier Transformation ist ein sehr wichtiges Werkzeug, das auf vielen Gebieten für die Berechnung verschiedener Operationen auf großen Datensätzen eingesetzt wird • Deswegen ist es wichtig einen effizienten Algorithmus verwenden zu können. Die FFT kann den Aufwand erheblich reduzieren • Die FFT eignet sich sehr gut zur Implementierung auf Rechnern mit mehreren Prozessoren