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

FFT: Die schnelle Fourier-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: FFT: Die schnelle Fourier-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

FFT: Die schnelleFourier-Transformation

Sebastian [email protected]

Page 2: FFT: Die schnelle Fourier-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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-Transformationwalter/teachingSS04/... · 2018-03-02 · Anwendungsbeispiele der FFT Andere wichtige Transformationen lassen sich in linearer Zeit auf die

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