FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf ·...

23
FFT: Die schnelle Fourier-Transformation Sebastian Gesemann [email protected]

Transcript of FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf ·...

Page 1: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

FFT: Die schnelleFourier-Transformation

Sebastian [email protected]

Page 2: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fahrplan

Fourier-Transformationkontinuierlichdiskret (DFT)

DFT und FFT

Anwendungsbeispiele der FFT

Wie funktioniert die FFT ?

DEMO!

FFT – p.1/22

Page 3: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

Jean Babtiste Joseph Fourier (französischerMathematiker, 1768-1830)

„Jede (reell- oder komplexwertige) periodische Funktionlässt sich als Summe von Sinus- und Cosinus-Funktionendarstellen.“

FFT – p.2/22

Page 4: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

(komplex, kontinuierlich)

Gegeben: Eine Funktion

g :

0 � 2π

� � � �Gesucht: Die Koeffizienten a f

� �der komplexen

„Fourier-Reihe“ mit

g�

x�� lim

k ∞k

∑f �� k

a f e

� 1 f x

FFT – p.3/22

Page 5: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

e

� 1 f x für f � 0

0 1 2 3 4 5 6x −1−0.5

0 0.5

1

Real−Teil

−1

−0.5

0

0.5

1

Imaginär−Teil

FFT – p.4/22

Page 6: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

e

� 1 f x für f � 1

0 1 2 3 4 5 6x −1−0.5

0 0.5

1

Real−Teil

−1

−0.5

0

0.5

1

Imaginär−Teil

FFT – p.5/22

Page 7: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

e

� 1 f x für f � 2

0 1 2 3 4 5 6x −1−0.5

0 0.5

1

Real−Teil

−1

−0.5

0

0.5

1

Imaginär−Teil

FFT – p.6/22

Page 8: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

e

� 1 f x für f � �2

0 1 2 3 4 5 6x −1−0.5

0 0.5

1

Real−Teil

−1

−0.5

0

0.5

1

Imaginär−Teil

FFT – p.7/22

Page 9: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

Definieren wir ein Skalarprodukt durch

� g � h � :�

0g

x

h

x

�dx

kann gezeigt werden, dass die „Vektoren“

e

� 1 f x für f � �

eine orthogonale Basis für den Vektorraum der Funktionen von�

0 � 2π

nach

bilden (Körper:

�).

FFT – p.8/22

Page 10: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

Damit lassen sich die Koeffizienten a f

� �

der Fourier-Reihefür die Funktion g durch

a f

� �g �e �� 1 f x �

�e � � 1 f x �e �� 1 f x �

� 12π

�2π0 g

x

e � 1 f x dx

� 12π

�2π0 g

�x

�e�

� 1 f x dx

bestimmen.

FFT – p.9/22

Page 11: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

(komplex, diskret)

diskreter Definitionsbereich:D� �

x

x� 2πkn

� k � �

0 � 1 �� � � � �n � 1 �� �

Endlich-dimensionaler Vektorraum (Dimension n)

Transformation und inverse Transformation alsMatrix-Vektor-Produkt über dem Körper

darstellbar

FFT – p.10/22

Page 12: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

(komplex, diskret, als Matrix-Vektor-Produkt)

���

g

0

g

12πn

...g

� �

n � 1 � 2πn

���� �����

c

n

!

0 �0 c

n

!

0 �1 " " " c

n!

0 �n� 1

c

n

!

1 �0 c

n

!1 �1 " " " c

n

!

1 �n� 1...

.... . .

...

c

n

!

n� 1 �0 c

n!

n� 1 �1 " " " c

n

!

n� 1 �n� 1

####���

a0

a1...

an� 1

���

mitc

n

!

i � j � e2π

� 1 i jn

$i � j � �

0 � 1 �� � � � �n � 1 ��

FFT – p.11/22

Page 13: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Fourier-Transformation

Die Spalten dieser Matrix C

n

!

sind bezüglich desSkalarproduktes

� a � b � :�

n� 1

∑i �0

aibi

für a� �

a0 � � � � � an� 1

�T � �n � b� �b0 �� � � � bn� 1

�T � �n

wieder orthogonal und besitzten jeweils die Länge n(Euklidische Norm). Außerdem gilt c

n

!

i � j � c

n

!

j �i .

% C

n! � 1� 1

nC

n

!T � 1n

C

n

!

FFT – p.12/22

Page 14: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Laufzeit von DFT & FFT

Die DFT kann per Matrix-Vektor-Produkt berechnetwerden und benötigt damit O

n2 �

Zeit.

Die FFT ist ein Algorithmus, der die DFT in O

n log

n

� �

Zeit berechnen kann. Der Algorithmus nutzt die spezielleStruktur der Matrizen C und C� 1 aus.

FFT – p.13/22

Page 15: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Anwendungsbeispiele der FFT

Andere wichtige Transformationen lassen sich in linearerZeit auf die FFT reduzieren und damit auch in O

�n log

n

� �

berechnen.Diskrete Cosinus-Transformation, DCTModifizierte diskrete Cosinus-Transformation, MDCT

Analyse von digitalen Signalen („Spectral-Analyse“)

Die FFT als Werkzeug für eine „schnelle Faltung“ (EineOperation aus der Signalverarbeitung, die zwei Signale zueinem neuen Signal verknüpft)

FFT – p.14/22

Page 16: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Wie funktioniert die FFT ?

Behauptung: Wir können C

n

!

x in Zeit O

n log

�n

� �berechnen

und damit die (inverse) DFT auch in Zeit O

�n log

�n

� �

berechnen.

Untersuchen wir dazu die Matrix C

n

!. . .

FFT – p.15/22

Page 17: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Wie funktioniert die FFT ?

C

n

! �����

c

n

!

0 �0 c

n

!

0 �1 " " " c

n

!

0 �n� 1

c

n

!

1 �0 c

n

!

1 �1 " " " c

n

!1 �n� 1

......

. . ....

c

n

!

n� 1 �0 c

n

!

n� 1 �1 " " " c

n!

n� 1 �n� 1

####

mitc

n

!i � j � e2π

� 1 i jn

Sei n gerade und j � n2 , dann gilt:

c

n!

i � j & n2

� c

n

!

i � j c

n

!

i � n2� c

n

!

i � j e2π

� 1 i2

FFT – p.16/22

Page 18: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Wie funktioniert die FFT ?

e2π

� 1 i2 � 1 falls i gerade ist

�1 falls i ungerade ist

% c

n

!

i � j & n2

� c

n

!

i � j falls i gerade ist

�c

n

!i � j falls i ungerade ist

FFT – p.17/22

Page 19: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Wie funktioniert die FFT ?

Es folgt . . .

y � C

n

!

x

' yi

� ∑n� 1j �0 c

n

!

i � j x j

� ∑n2

� 1j �0 c

n

!

i � j x j

( c

n

!

i � j & n2x j & n

2

� ∑n2

� 1j �0 c

n

!

i � j

)

x j

( x j & n2

*falls i gerade ist

∑n2

� 1j �0 c

n

!

i � j)

x j� x j & n

2

*falls i ungerade ist

� � �

FFT – p.18/22

Page 20: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Wie funktioniert die FFT ?

Die Matrix C

n

!

kann damit faktorisiert werden:

C

n

! � P

n

! ? 00 ?

I

n2

!

I n

2!

I

n2

! �I n

2

!

mit

P

n

! � +

p

n

!

i � j

,

i � j - .0 �1 �/ / / � n� 1

!0 (Permutation)

p

n

!

i � j �

1 falls i� � �2 j

mod n

� ( 1

2 jn

2

0 sonst

FFT – p.19/22

Page 21: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Wie funktioniert die FFT ?

Die Matrix C

n

!

kann folgendermaßen faktorisiert werden:

C

n

! � P

n

! C

n2

!

00 C

n2

! 0 00 R

n2

! I n

2!

I

n2

!

I n

2

! �I

n2

!

mit

R

n2

! �����

c

n

!

1 �0 0 " " " 00 c

n!

1 �1 " " " 0...

.... . .

...

0 0 " " " c

n

!

1 � n2 � 1

####

FFT – p.20/22

Page 22: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

Beispiel C

3

8

4

als Blockdiagramm

c(8)1,0 c(8)

1,1 c(8)1,2 c(8)

1,3

C(4)

C(8)

C(4)

FFT – p.21/22

Page 23: FFT: Die schnelle Fourier-Transformationmath-walter/teachingSS04/VortragThema10.pdf · Fourier-Transformation Jean Babtiste Joseph Fourier (französischer Mathematiker, 1768-1830)

FFT, ein Divide & Conquer Algo

2n-Punkt DFT in O

n

auf zwei n-Punkt DFTs reduzierbar

Es gibt log2

n

Rekursions-Stufen, falls n eineZweierpotenz ist

In jeder Stufe werden insgesamt n Operationen benötigt

% Der FFT-Algorithmus benötigt O

n log

n

� �

Zeit

FFT – p.22/22