Diskrete Fourier-Transformation Stefanie Dourvos Institut für Informatik FU Berlin

Ähnliche Dokumente
Diskrete und Schnelle Fourier Transformation. Patrick Arenz

Numerische Methoden und Algorithmen in der Physik

31 Polynomringe Motivation Definition: Polynomringe

Übungen zu Einführung in die Lineare Algebra und Geometrie

16. All Pairs Shortest Path (ASPS)

Algebra und Diskrete Mathematik, PS3. Sommersemester Prüfungsfragen

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Numerische Integration und Differentiation

Numerisches Programmieren, Übungen

Partialbruchzerlegung für Biologen

Teile und Herrsche Teil 2

Vorlesung bzw. 23. Januar Determinanten 1. Cramersche Regel

Diskrete Strukturen. Abgabetermin: 20. September 2011, 14 Uhr in die DS Briefkästen

9.2 Invertierbare Matrizen

Stefan Ruzika. 24. April 2016

Aufgabensammlung aus Mathematik 2 UMIT, SS 2010, Version vom 7. Mai 2010

Fouriertransformation

1 Größter gemeinsamer Teiler

Lineare Differenzengleichungen und Polynome. Franz Pauer

Diskrete Fourier-Transformation

Differenzengleichungen. und Polynome

Vorkurs: Mathematik für Informatiker

Gleichungen und Ungleichungen

Aufgaben des MSG-Zirkels 10b Schuljahr 2007/2008

Lösung (die Geraden laufen parallel) oder unendlich viele Lösungen.

Technische Universität München Zentrum Mathematik. Übungsblatt 7

WS 2009/10. Diskrete Strukturen

3.1.3 Newtonsche Interpolationsformel / Dividierte Differenzen

Randomisierte Algorithmen 2. Erste Beispiele

Mathematische Erfrischungen III - Vektoren und Matrizen

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

AES und Public-Key-Kryptographie

2.1 Polynome, Polynomfunktionen und Nullstellen. k=0

Bildverarbeitung: Fourier-Transformation. D. Schlesinger () BV: Fourier-Transformation 1 / 16

Lineare Gleichungssysteme

1 Singulärwertzerlegung und Pseudoinverse

4.1. Grundlegende Definitionen. Elemente der Analysis I Kapitel 4: Funktionen einer Variablen. 4.2 Graphen von Funktionen

Copyright, Page 1 of 5 Die Determinante

Algorithmen II Vorlesung am

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Spezialfall: Die Gleichung ax = b mit einer Unbekannten x kann mit Hilfe des Kehrwerts 1 a = a 1 gelöst werden:

Quadratische Matrizen

Public-Key-Algorithmen WS2015/2016

Effiziente Algorithmen

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Abschnitt: Algorithmendesign und Laufzeitanalyse

Einführung in die Zahlentheorie

1 Potenzen und Polynome

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21

15ab 21bc 9b = 3b 5a 7c 3

Seminar Digitale Signalverarbeitung

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

2. Spezielle anwendungsrelevante Funktionen

Matrizen, Determinanten, lineare Gleichungssysteme

4 Vorlesung: Matrix und Determinante

Kap. 8: Speziell gewählte Kurven

In diesem Abschnitt betrachten wir nur quadratische Matrizen mit Komponenten aus einem Körper K, also A K n n für ein n N. Wenn (mit einem n > 1)

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Inverse Matrix. 1-E Ma 1 Lubov Vassilevskaya

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Primzahlen. Herbert Koch Mathematisches Institut Universität Bonn Die Primfaktorzerlegung. a = st

Beispiele zur schnellen Fouriertransformation

Diskrete Strukturen. Restklassenringe WS 2013/2014. Vorlesung vom 24. Jänner 2014

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Erweiterte Koordinaten

Kapitel 8. Rekursionsgleichungen. Landau-Symbole. Lösen von Rekursionsgleichungen Allgemeines Iterationsmethode Spezialfälle Erzeugende Funktionen

Computergraphik 1 2. Teil: Bildverarbeitung. Fouriertransformation Ende FFT, Bildrestauration mit PSF Transformation, Interpolation

Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48

Lineares Programmieren

Aussagenlogik. Lehrstuhl für BWL, insb. Mathematik und Statistik Prof. Dr. Michael Merz Mathematik für Betriebswirte I Wintersemester 2015/2016

1 Das RSA-Verfahren und seine algorithmischen Grundlagen

Mathematik II/2 Numerik

Diagonalisieren. Nikolai Nowaczyk Lars Wallenborn

Elemente der Mathematik - Sommer 2016

Endliche Körper Seminar: Diskrete Mathematik Leitung: Prof. Dr. Rainer Lang Von: Steffen Lohrke (ii5105) SS2005

Lineare Algebra - alles was man wissen muß

Grundlagen der Computer-Tomographie

Theoretische Informatik SS 03 Übung 4

2.9 Die komplexen Zahlen

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Algorithmen und Datenstrukturen

Polynominterpolation

Diplom Mathematiker Wolfgang Kinzner. 17. Oktober Technische Universität München. Die abc-formel. W. Kinzner. Problemstellung.

Addition, Subtraktion und Multiplikation von komplexen Zahlen z 1 = (a 1, b 1 ) und z 2 = (a 2, b 2 ):

WURZEL Werkstatt Mathematik Polynome Grundlagen

Praktikum Diskrete Optimierung (Teil 11)

Karlsruher Institut für Technologie Institut für Algebra und Geometrie

Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass

Lineare Gleichungssysteme (Teschl/Teschl 11.1)

Die (Un-)Sicherheit von DES

2 Teilbarkeit in Z. (a) Aus a b folgt a b und a b und a b und a b. (b) Aus a b und b c folgt a c.

Berechnungen mit dem Horner-Schema

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Corinne Schenka Vorkurs Mathematik WiSe 2012/13

Wiederholung. Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES

x A, x / A x ist (nicht) Element von A. A B, A B A ist (nicht) Teilmenge von B. A B, A B A ist (nicht) echte Teilmenge von B.

SBP Mathe Grundkurs 1 # 0 by Clifford Wolf. SBP Mathe Grundkurs 1

Gliederung. Links-Rechts-Zerlegung Elimination faktorisiert A = L R. Determinante Inverse. Kleinste Quadrate. Lösung durch. Links-Rechts- Zerlegung

Kongruenz modulo g definiert auf K[x] eine Äquivalenzrelation g : h g f h f ist durch g teilbar, und [f] g ist die Äquivalenzklasse von f.

Transkript:

Diskrete Fourier-Transformation Stefanie Dourvos Institut für Informatik FU Berlin 28.04.09

Übersicht Einleitung Problem: polynomiale Multiplikation Crashkurs Diskrete Fourier-Transformation DFT mit FFT DFT -1 Iterativer FFT-Algorithmus (effizienter) Paralleler FFT-Schaltkreis DFT in der Bearbeitung von Signalen Anmerkungen Quellen Seminar über Algorithmen - Diskrete Fourier-Transformation 2

Was macht die Fourier-Transformation Und was macht die DFT? [1] Seminar über Algorithmen - Diskrete Fourier-Transformation 3

Wozu braucht man die DFT? Digitale Signalverarbeitungsalgorithmen: Korrelation von Signalen Spektrum eines Nachrichtensignals Polynomiale Multiplikation Rauschunterdrückung Seminar über Algorithmen - Diskrete Fourier-Transformation 4

Rauschunterdrückung [6] Seminar über Algorithmen - Diskrete Fourier-Transformation 5

Problem: polynomiale Multiplikation FMCW Radar: Verfahren zur Störungsunterdrückung [3] [2] Seminar über Algorithmen - Diskrete Fourier-Transformation 6

Polynome Koeffizientendarstellung n 1 A x = j=0 a j x j Koeffizientenvektor a=(a 0, a 1,..., a n-1 ) Grad: n-1 Gradschranke: n Addition: C(x) = A(x) + B(x) mit c = a + b Aufwand Θ(n) Auswertung an der Stelle x 0 : (mit Horner-Schema) A(x 0 ) = a 0 + x 0 (a 1 + x 0 (a 2 +... + x 0 (a n-2 + x 0 (a n-1 ))...) Aufwand Θ(n) Seminar über Algorithmen - Diskrete Fourier-Transformation 7

Polynome Koeffizientendarstellung 2 Multiplikation: 2n 2 C x = j=0 j mit c j = k=0 c j x j a k b j k Aufwand: Θ(n²) resultierender Koeffizientenvektor c entspricht der Faltung: c = a b Seminar über Algorithmen - Diskrete Fourier-Transformation 8

Polynome Stützstellendarstellung {(x 0, y 0 ), (x 1, y 1 ),..., (x n-1, y n-1 )} Menge von n Stützstellenpaaren, so dass: alle x k verschieden y k = A(x k ) für alle k = 0, 1,..., n-1 Gradschranke: n Addition: C(x) = A(x) + B(x) mit A(x) : {(x 0, y 0 ), (x 1, y 1 ),..., (x n-1, y n-1 )} B(x) : {(x 0, y' 0 ), (x 1, y' 1 ),..., (x n-1, y' n-1 )} C(x) : {(x 0,y 0 +y' 0 ), (x 1,y 1 +y' 1 ),..., (x n-1,y n-1 +y' n-1 )} Aufwand Θ(n) Seminar über Algorithmen - Diskrete Fourier-Transformation 9

Polynome Stützstellendarstellung 2 Multiplikation: C(x) = A(x)B(x), wobei für jeden Punkt x k gilt: C(x k ) = A(x k )B(x k ) Aufwand: Θ(n) ACHTUNG! Gradschranke n, wo Gradschranke 2n-1 benötigt wird! Auswertung an einem neuen Punkt: ungeeignet Seminar über Algorithmen - Diskrete Fourier-Transformation 10

Umrechnung Koeffizientendarstellung -> Stützstellendarstellung simpel: (1) Auswahl von n verschiedenen Punkten (2) an diesen Punkten auswerten Aufwand: Θ(n²) für n Punkte Stützstellendarstellung -> Koeffizientendarstellung Interpolation: wohldefiniert für Interpolationspolynome mit n als Gradschranke Aufwand: Θ(n³) mit LU Zerlegung, Θ(n²) mit Lagrange-Formel Seminar über Algorithmen - Diskrete Fourier-Transformation 11

Umrechnung 2 Theorem: Für eine beliebige Menge {(x 0, y 0 ), (x 1, y 1 ),..., (x n-1, y n-1 )} von n Stützstellenpaaren mit paarweise verschiedenen x k gibt es ein eindeutiges Polynom A(x) der Gradschranke n, sodass für k = 0, 1,..., n-1 die Gleichung y k = A(x k ) gilt. Beweis: (Ansatz) 1 2 x0 x0 x 0 n 1 2 1 x 1 x 1 x 1 a0 y0 a 1 y 1 2 1 x n 1 x n 1 x n 1 a Vandermonde Matrix. :V x 0, x 1,, x n 1 n 1 = y n 1 det V = x k x j 0 j k n 1 => Matrix invertierbar, wenn die x k paarweise verschieden sind => a = V -1 y Seminar über Algorithmen - Diskrete Fourier-Transformation 12

Schneller geht es mit der DFT Mit Hilfe der DFT (und der FFT): Erzeugung der Stützstellendarstellung in Θ(n lg n) Mit Hilfe der inversen DFT (und der FFT): Interpolation in Θ(n lg n) komplexe Einheitswurzeln als Auswertungspunkte Seminar über Algorithmen - Diskrete Fourier-Transformation 13

DFT Seminar über Algorithmen - Diskrete Fourier-Transformation 14

Crashkurs: Einheitswurzeln Komplexe n-te Einheitswurzel: ω n = 1, w C Es gibt genau n komplexe n-te Einheitswurzeln: e 2πik/n, k = 0, 1,..., n-1 ω n = e 2πi/n primitive n-te Einheitswurzel Seminar über Algorithmen - Diskrete Fourier-Transformation 15

Eigenschaften der Einheitswurzeln Kürzungslemma: Für beliebige ganze Zahlen n 0, k 0 und d > 0 gilt: dk k dn = n Korollar: Für jede beliebige gerade ganze Zahl n > 0 gilt: n/ 2 n = 2 = 1 Halbierungslemma: Wenn n> 0 gradzahlig ist, dann sind die Quadrate der n komplexen n-ten Einheitswurzel die n/2 komplexen (n/2)-ten Einheitswurzeln. Seminar über Algorithmen - Diskrete Fourier-Transformation 16

Eigenschaften der Einheitswurzeln 2 Summationslemma Für jede beliebige ganze Zahl n 1 und jede von Null verschiedene ganze Zahl k, die nicht durch n teilbar ist, gilt: n 1 j=0 n k j =0. Seminar über Algorithmen - Diskrete Fourier-Transformation 17

Diskrete Fourier-Transformation Auswertung des Polynoms an den Stellen ω 0 n, ω 1 n-1 n,..., ω n entspricht der DFT n 1 n 1 y k = A k kj n = a j n = a j e 2 ijk / n j=0 j =0 Interpolation der inversen DFT n 1 a j = 1 n k=0 y k n k j Seminar über Algorithmen - Diskrete Fourier-Transformation 18

Diskrete Fourier-Transformation DFT als Matrixprodukt y = V n a y0 y 1 y 2 y 3 1 1 1 1 2 3 n 1 1 n n n n 2 4 6 2 n 1 1 n n n n 3 6 9 3 n 1 1 n n n n y n 1 = 1 n 1 2 n 1 3 n 1 n 1 n 1 1 n n n n a0 a 1 a 2 a 3 a n 1 Inverse Operation: a = DFT n -1 (y) => y mit V n -1 multiplizieren Theorem: Für j, k = 0, 1,..., n-1 ist ω n -kj /n das Element (j,k) von V n -1. Seminar über Algorithmen - Diskrete Fourier-Transformation 19

Faltungstheorem Für zwei beliebige Vektoren a und b, deren Länge n eine Potenz von 2 ist, gilt: a b = DFT 2n -1 (DFT 2n (a) DFT 2n (b)), wobei die Vektoren a und b mit Nullen auf die Länge 2n aufgefüllt werden. Seminar über Algorithmen - Diskrete Fourier-Transformation 20

Vorgehen (1) Doppelte Gradschranke: Θ(n) A(x) und B(x) auf Gradschranke 2n bringen (2) Auswerten: Θ(n lg n) Stützstellendarstellung von A(x) und B(x) der Länge 2n durch zweimaliges Anwenden der FFT der Ordnung 2n (3) Punktweises Multiplizieren: Θ(n) C(x) = A(x)B(x) (4) Interpolieren: Θ(n lg n) Koeffizientendarstellung durch einmalige Anwendung der FFT, um die inverse DFT zu berechnen Seminar über Algorithmen - Diskrete Fourier-Transformation 21

DFT mit FFT Nutzung der Einheitswurzeln Divide-and-Conquer: Koeffizienten aufgeteilt in 2 neue Polynome Es gilt: wobei A(x) = A [0] (x²) + x*a [1] (x²), A [0] alle gradzahligen und A [1] alle ungradzahligen Seminar über Algorithmen - Diskrete Fourier-Transformation 22

FFT Algorithmus (rekursiv) Recursive-FFT(a) 1 n <- länge[a] 2 if n = 1 3 then return a 4 w n <- e 2πi/n 5 w n <- 1 6 a [0] <- (a 0, a 2,..., a n-2 ) 7 a [1] <- (a 1, a 3,..., a n-1 ) 8 y <- Recursive-FFT(a [1] ) 9 y <- Recursive-FFT(a [1] ) 10 for k <- 0 to n/2-1 11 do y k [0] <- y k [1] + wy k 12 y k+(n/2) <- y k [0] - wy k [1] 13 w <- ww n 14 return y Seminar über Algorithmen - Diskrete Fourier-Transformation 23

Bearbeitung der Elemente a 0, a 1, a 2, a 3, a 4, a 5, a 6, a 7 a 0, a 2, a 4, a 6 a 1, a 3, a 5, a 7 a 0, a 4 a 2, a 6 a 1, a 5 a 3, a 7 a 0 a 4 a 2 a 6 a 1 a 5 a 3 a 7 Seminar über Algorithmen - Diskrete Fourier-Transformation 24

Laufzeit c*n a 0, a 1, a 2, a 3, a 4, a 5, a 6, a 7 c*n a 0, a 2, a 4, a 6 a 1, a 3, a 5, a 7 lg n c*n a 0, a 4 a 2, a 6 a 1, a 5 a 3, a 7 c*n a 0 a 4 a 2 a 6 a 1 a 5 a 3 a 7 Zusammen: cn lg(n) + cn -> Laufzeit: Θ(n lg n) Seminar über Algorithmen - Diskrete Fourier-Transformation 25

Inverse DFT mit FFT n 1 a j = 1 n k=0 y k n k j Modifikation des Algoritmus: (1) a und y tauschen Rollen (2) w n wird durch w -1 n ersetzt (3) jedes Element des Ergebnisses wird durch n geteilt Aufwand: Θ(n lg n) Seminar über Algorithmen - Diskrete Fourier-Transformation 26

Iterativer FFT-Algorithmus (effizienter) wy k [1] nicht zweimal berechnen, stattdessen in temporärer Variable t speichern Elemente des Ausgangsvektors a in die Reihenfolge wie in den Blättern bringen Elementpaare bilden, DFT jedes Paares mit Hilfe einer Überkreuz-Operation berechnen, Paar durch seine DFT ersetzen Seminar über Algorithmen - Diskrete Fourier-Transformation 27

Iterativer FFT-Algorithmus Iterative-FFT(a) 1 BIT-REVERSE-COPY(a, A) 2 n <- länge[a] 3 for s <- 1 to lg n 4 do m <- 2 s 5 w m <- e 2πi/m 6 for k <- 0 to n-1 step m 7 do w <- 1 8 for j <- 0 to m/2-1 9 do t <- wa[k+j+m/2] 10 u <- A[k+j] 11 A[k+j] <- u+t 12 A[k+j+m/2] <- u-t 13 w <- ww m 14 return A Seminar über Algorithmen - Diskrete Fourier-Transformation 28

Paralleler FFT-Schaltkreis [4] y k [0] w n k y k [1] y k [0] +w nk y k [1] y k [0] -w n k y k [1] Butterfly Operation Seminar über Algorithmen - Diskrete Fourier-Transformation 29

DFT in der Bearbeitung von Signalen [5] Wichtiges Hilfsmittel Leicht veränderte Formel Wichtige Eigenschaften: Linearität, Periodizität, zirkulare Verschiebung und Dualität Genutzt bei Faltung und Korrelation Seminar über Algorithmen - Diskrete Fourier-Transformation 30

Anwendungsbeispiele Bild- und Audioverarbeitung Digitale Modulationsverfahren Mustererkennung (z.b. Sprache) Kompressionsalgorithmen Radar-, Nachrichten- und Schalltechnik Seminar über Algorithmen - Diskrete Fourier-Transformation 31

Anmerkungen Unterschiede bei verschiedenen Autoren: Hin- und Rücktransformation ω n = e -2πi/n j statt i Seminar über Algorithmen - Diskrete Fourier-Transformation 32

Vielen Dank! Seminar über Algorithmen - Diskrete Fourier-Transformation 33

Quellen [1] http://www.statistics4u.com/fundstat_germ/cc_time_and_freq.html [2] http://www.ausairpower.net/clamshell.html [3] http://www.etl.noaa.gov/technology/archive/fmcw/ [4] http://www.personal.kent.edu/~mlu3/cscourses/advalgorithms/clr-book/bo [5] Universität Koblenz-Landau, Institut für integrierte Naturwissenschaften, Seminar Digitale Signalverarbeitung [6] http://www.mathematik.uni-trier.de/~schulz/prosem-0405/arenz.pdf allgemein: Th. H. Cormen/C.E. Leiserson/R. Rivest/C. Stein: Algorithmen Eine Einführung, 2. Auflage, Oldenbourg Verlag München Wien http://www.statistics4u.com/fundstat_germ/wrapnt_index445.html Folienvorlage: https://www.inf.fu-berlin.de/w/se/seminarregeln Seminar über Algorithmen - Diskrete Fourier-Transformation 34