fft: die schnelle fourier-transformationmath-walter/teachingss04/vortragthema10.pdf ·...
Post on 12-Aug-2019
218 Views
Preview:
TRANSCRIPT
FFT: Die schnelleFourier-Transformation
Sebastian Gesemannsgeseman@upb.de
Fahrplan
Fourier-Transformationkontinuierlichdiskret (DFT)
DFT und FFT
Anwendungsbeispiele der FFT
Wie funktioniert die FFT ?
DEMO!
FFT – p.1/22
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
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
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
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
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
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
Fourier-Transformation
Definieren wir ein Skalarprodukt durch
� g � h � :�
2π
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related