Schnelle Fourier-Transformation
Die diskrete Fourier-Transformation,
f
j=
n−1
X
k=0
c
kw
njk, j = 0, . . . , n − 1 ,
(w
n= exp(2πi/n)), kann f¨ ur n = 2
`mit der sogenannten schnellen Fourier-Transformation (FFT, Fast Fourier Transform) mit
2n`-Operationen berechnet werden.
Schnelle Fourier-Transformation 1-1
In der rekursiven Version hat der Algorithmus die folgende Form:
f = FFT(c) n = length(c )
if n = 1, f = c , return else
g = FFT(c
0, c
2, . . . , c
n−2) , h = FFT(c
1, c
3, . . . , c
n−1) p =
1, w
n, w
n2, . . . , w
nn/2−1f = (g + p .∗ h, g − p .∗ h) end
Dabei bezeichnet .∗ die komponentenweise Multiplikation von Vektoren,
d.h. (a .∗ b) = a b .
Die inverse diskrete Fourier-Transformation
c
k= 1 n
n−1
X
j=0
f
jw
n−jkkann vollkommen analog berechnet werden. Man bezeichnet den entsprechenden Algorithmus mit c = IFFT(f ).
Schnelle Fourier-Transformation 1-3
Beweis:
(i) Induktive Herleitung des Algorithmus:
f
j=
n−1
X
k=0
c
kw
kj=
m−1
X
k=0
c
2kw ˜
kj+ w
jm−1
X
k=0
c
2k+1w ˜
kj, j = 0, . . . , n − 1
mit m = n/2 und ˜ w = exp(2πi/m) = w
2Summen entsprechen den im Algorithmus rekursiv berechneten Transformierten g und h der L¨ ange m:
f
j= g
j+ w
jh
j, j = 0, . . . , m − 1
˜
w
m= 1 und w
j+m= w
jexp((2πi/n)(n/2)) = −w
j= ⇒
(ii) Anzahl op(n) der Operationen des FFT-Algorithmus:
Addition der zur Berechnung von g , h, p und f ben¨ otigten Operationen
op(n) = op(n/2) + op(n/2) + (n/2) + 3(n/2) = 2 op(n/2) + 2n Iteration der Identit¨ at = ⇒
op(n) = 2 (2 op(n/4) + 2(n/2)) + 2n = 4 op(n/4) + 2n + 2n
= · · ·
= 2
`op(1) + 2n + · · · + 2n
| {z }
`-mal
op(1) = 0 Gesamtoperationenzahl 2`n
Schnelle Fourier-Transformation 2-2
Beispiel:
diskrete Fourier-Transformation des Vektors
c =
3
−2 0 1
g = FFT(3, 0):
˜
g = 3 h ˜ = 0
w = exp(2πi/2) = −1 , p = (1)
h = FFT(−2, 1):
˜
g = −2 h ˜ = 1
w
2= exp(2πi/2) = −1 , p = (1)
h = (−2 + 1 · 1, −2 − 1 · 1)
t= (−1, −3)
tAddition der rekursiv berechneten diskreten Fourier-Transformierten g = (3, 3)
t, h = (−1, −3)
tw
4= (exp(2πi/4) = i , p = (1, i)
tf = (g + p. ∗ h, g − p. ∗ h)
= (3 + 1 · (−1), 3 + i · (−3), 3 − 1 · (−1), 3 − i · (−3))
t= (2, 3 − 3i, 4, 3 + 3i)
tSchnelle Fourier-Transformation 3-2