• Keine Ergebnisse gefunden

Schnelle Fourier-Transformation

N/A
N/A
Protected

Academic year: 2021

Aktie "Schnelle Fourier-Transformation"

Copied!
7
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Schnelle Fourier-Transformation

Die diskrete Fourier-Transformation,

f

j

=

n−1

X

k=0

c

k

w

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

(2)

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−1

f = (g + p .∗ h, g − p .∗ h) end

Dabei bezeichnet .∗ die komponentenweise Multiplikation von Vektoren,

d.h. (a .∗ b) = a b .

(3)

Die inverse diskrete Fourier-Transformation

c

k

= 1 n

n−1

X

j=0

f

j

w

n−jk

kann vollkommen analog berechnet werden. Man bezeichnet den entsprechenden Algorithmus mit c = IFFT(f ).

Schnelle Fourier-Transformation 1-3

(4)

Beweis:

(i) Induktive Herleitung des Algorithmus:

f

j

=

n−1

X

k=0

c

k

w

kj

=

m−1

X

k=0

c

2k

w ˜

kj

+ w

j

m−1

X

k=0

c

2k+1

w ˜

kj

, j = 0, . . . , n − 1

mit m = n/2 und ˜ w = exp(2πi/m) = w

2

Summen entsprechen den im Algorithmus rekursiv berechneten Transformierten g und h der L¨ ange m:

f

j

= g

j

+ w

j

h

j

, j = 0, . . . , m − 1

˜

w

m

= 1 und w

j+m

= w

j

exp((2πi/n)(n/2)) = −w

j

= ⇒

(5)

(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

(6)

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)

(7)

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)

t

Addition der rekursiv berechneten diskreten Fourier-Transformierten g = (3, 3)

t

, h = (−1, −3)

t

w

4

= (exp(2πi/4) = i , p = (1, i)

t

f = (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)

t

Schnelle Fourier-Transformation 3-2

Referenzen