Sie sind auf Seite 1von 18

Kapitel 1

Fourier-Transformation

1.1 Einleitung
Die Fourier-Transformation (FT) ist wahrscheinlich das wichtigste Instrument aus der mathe-
matischen Trick-Kiste schlechthin. Ihre Bedeutung liegt einmal darin, daß sich mit ihrer Hil-
fe einige der am häufigsten vorkommenden Operationen an mathematischen Funktionen, wie
z.B. Integration und Differentiation sowie Faltungs- und Filteroperationen, formal sehr leicht
durchführen lassen. Für die numerische Praxis ist jedoch vor allem der vor ein paar Jahrzehn-
ten wiederentdeckte Algorithmus der Schnellen“ Fourier-Transformation wichtig, durch den

bei vielen Problemen tatsächlich Größenordnungen an Rechenzeit eingespart werden können.
Je nach der Anzahl der zu transformierenden Funktionswerte bzw. dem Definitionsgebiet der
Funktionen unterscheidet man zwischen Diskreter Fourier-Transformation, Fourier-Reihen und
Fourier-Integralen. Da wir in der Folge laufend von den Eigenschaften der Fourier-Transforma-
tion Gebrauch machen, werden in diesem Kapitel sowohl die grundlegenden Transformations-
formeln als auch die wesentlichsten Eigenschaften (heuristisch) abgeleitet. Anschließend wird
ein Algorithmus für die Schnelle Fourier-Transformation besprochen.

1.2 Die Diskrete Fourier-Transformation


Es seien N beliebige (i.a. komplexe) Zahlenwerte f− N , f− N +1 , . . . , f N −1 gegeben, wobei der Ein-
2 2 2
fachheit halber angenommen wird, daß N gerade ist. (Die Überlegungen lassen sich jedoch auch
für ungerades N durchführen.) Bei den fj handelt es sich meist, aber nicht notwendigerweise,
um die Werte einer Funktion f an einer diskreten Menge von Stützpunkten xj .
Den fj werden eine gleiche Anzahl N transformierter Werte fen zugeordnet durch die Vor-
schrift

N
−1
1 2X
fen =
2πinj
e− N fj , (1.1)
N j=− N
2

1
2 KAPITEL 1. FOURIER-TRANSFORMATION

wobei n ebenfalls die Werte − N2 , − N2 + 1, . . . , N2 − 1 durchläuft. Die Menge der fen heißt Fourier-
Transformierte oder Fourier-Koeffizienten der fj .
Die fen enhalten genau dieselbe Information wie die fj , denn es gilt die Umkehrformel (Inverse
Fourier-Transformation)

N
−1
X
2

fen .
2πinj
fj = e N (1.2)
n=− N
2

Da in beiden Formeln die Indizes nur endlich viele diskrete Werte durchlaufen, heißen Gl. (1.1)
und (1.2) zusammen auch Diskrete Fourier-Transformation (DFT).
Die Gültigkeit von Gl. (1.2) kann man leicht durch Einsetzen verifizieren:
N
−1 N
−1 N
−1
X
2 X
2
1 2X − 2πinj0
fe
2πinj 2πinj
e N
n = e N e N fj 0 (1.3)
n=− N n=− N
N j 0 =− N
2 2 2
N
−1 N
−1
2 X 1 X 2πin(j−j0 )
2

= fj 0 e N (1.4)
j 0 =− N
N n=− N
2 2

= fj . (1.5)
Die letzte Zeile ergibt sich aus der vorletzten, da die Summe über n nur für j = j 0 nicht
verschwindet,
N
−1 N
−1
X
2
2πin(j−j 0 ) X
2

e N = 1 = N. (1.6)
n=− N
2
n=− N
2

0
Im Fall j6=j 0 setzt man e2πi(j−j )/N = z, summiert die auftretende geometrische Reihe und findet
N
−1 −1
X
2 X
N
zN − 1
zn = z− 2 zn = z− 2
N N
= 0, (1.7)
n=− N n=0 z−1
2

da z N = 1.

1.2.1 Eigenschaften der DFT


Mittelwert
Für n = 0 ist e−2πinj/N = 1, also
−1 N

e 1 2X
f0 = fj . (1.8)
N j=− N
2

Das ist einfach der Mittelwert der fj .


1.3. FOURIER-REIHEN 3

Periodizität
Die Fourier-Koeffizienten wurden zunächst nur für − N2 ≤ n ≤ N2 − 1 definiert. Man kann sie
aber auch für beliebige n außerhalb dieses Bereiches berechnen, z.B. gilt
−1 N N
−1 N
−1
1 2X − 2πi(n+N )j 1 2X − 2πinj − 2πiN j 1 2X − 2πinj
fe
n+N = e N fj = e N e N fj = e N fj , (1.9)
N j=− N N j=− N N j=− N
2 2 2

d.h.

fen+N = fen . (1.10)

Also ist fen periodisch mit der Periode N .


Analog kann man bei der Rücktransformation den Index j beliebig wählen und findet

fj+N = fj . (1.11)
h i
Damit können die fj außerhalb des Definitionsbereiches − N2 , N2 − 1 periodisch fortgesetzt
werden.

DFT rein reeller Werte


Sind die Zahlen fj alle reell, so werden N reelle in N komplexe (= 2N reelle) Werte transfor-
miert. Zwischen den fen muß es daher eine Beziehung geben:

 ∗ −1 N
−1
N
1 2X  − 2πinj ∗ 1 2X − 2πi(−n)j
fen = e N fj = e N fj . (1.12)
N j=− N N j=− N
2 2

Also
 ∗
fen = fe−n , (1.13)

d.h. die fen treten in komplex konjugierten Paaren auf. Insbesondere sind fe0 und fe− N rein reell.
2

1.3 Fourier-Reihen
h i
Es sei f (x) eine (i.a. komplexwertige) Funktion über dem endlichen reellen Intervall − L2 , L2 .
Wir betrachten zunächst nur die Werte von f an N diskreten, äquidistanten Stützpunkten xj ,
fj = f (xj ), (1.14)
mit
L
∆x = (1.15)
N
4 KAPITEL 1. FOURIER-TRANSFORMATION

als Abstand zwischen den Stützpunkten und


L
xj = j∆x = j (1.16)
N
für j = − N2 , . . . , N2 − 1.
Da die f (xj ) einfach N Zahlen sind, können wir jedenfalls ihre DFT bilden,
N
−1
1 X
2

fen =
2πinj
e− N f (xj ), (1.17)
N j=− N
2

mit der Umkehrformel


N
−1
X
2

fen .
2πinj
f (xj ) = e N (1.18)
n=− N
2

Wir setzen nun



∆k = (1.19)
L
und verwenden statt des Index n die N äquidistanten, diskreten k-Werte

kn = n∆k = n, (1.20)
L
wobei wieder n = − N2 , . . . , N2 − 1. Damit läßt sich der Phasenfaktor schreiben als

e±i L n N j = e±ikn xj ,
2π L
(1.21)

und aus den Fourier-Koeffizienten wird (mit 1


N
→ ∆x
L
)
N
−1
1 2X
fen = ∆x e−ikn xj f (xj ). (1.22)
L j=− N
2

Im Limes N → ∞ geht ∆x→0, und aus der Riemannsumme auf der rechten Seite wird ein
Integral. Wir bezeichnen die so erhaltenen Fourier-Koeffizienten der kontinuierlichen Funktion
f (x) mit fe(kn ):

Z L
1
fe(kn ) = dx e−ikn x f (x).
2
(1.23)
L −L
2

Der zu x konjugierte“ Parameter kn kann hier in Schritten von ∆k eine abzählbare Menge von

Werten von −∞ bis +∞ auf der reellen Achse annehmen.1
1
Wenn x die Bedeutung einer Ortsvariablen hat, nennt man die kn gern Wellenzahlen.
1.3. FOURIER-REIHEN 5
h i
Umgekehrt liegen für N → ∞ die xj dicht in − L2 , L2 , und es ist naheliegend, daß schließlich
für jedes beliebige x im Intervall gelten wird


X
f (x) = eikn x fe(kn ). (1.24)
n=−∞

Diese Darstellung von f (x) nennt man Entwicklung in eine Fourier-Reihe.

f (x) fe(kn )

−L/2 L/2 ∆k
Abbildung 1.1: Fourier-Reihe. Originaldaten kontinuierlich, Fourier-Transformierte diskret.

1.3.1 Eigenschaften von Fourier-Reihen


Konvergenz
Im Gegensatz zum diskreten Fall, wo man für jeden endlichen Satz von Zahlen die DFT be-
rechnen und diese Transformation auch wieder eindeutig umkehren kann, läßt sich nicht je-
de beliebige Funktion einer kontinuierlichen Variablen über einem endlichen Intervall in eine
Fourier-Reihe entwickeln. Schließlich kann eine überabzählbare Mannigfaltigkeit von Funktions-
werten nicht ohne weiteres auf eine abzählbare Menge von Fourier-Koeffizienten reduziert wer-
den. Ob (vorausgesetzt, die Fourier-Koeffizienten existieren überhaupt) und in welchem Sinn
die Fourier-Reihe konvergiert, hängt von den Annahmen ab, die über f gemacht werden. Ganz
allgemein gilt, wenn f nur hinreichend glatt ist, daß dann die Darstellung punktweise gegen
f (x) konvergiert und sogar gliedweise differenziert werden darf.
Ist f wenigstens stückweise stetig mit nur endlich vielen Sprungstellen im betrachteten
Intervall, so konvergiert die Fourier-Reihe ebenfalls punktweise, nimmt aber an den Unstetig-
keitsstellen den Mittelwert von rechtem und linkem Grenzwert an.
Andererseits lassen sich z.B. verallgemeinerten Funktionen (Distributionen) immer Fourier-
entwickeln, wenn man nur den Konvergenz- bzw. Gleichheitsbegriff entsprechend weit faßt.

Periodizität
Bisher
h iwurde nichts über das Verhalten der Funktion f (x) außerhalb des Grundintervalls
− 2 , 2 ausgesagt, ja f muß dort überhaupt nicht definiert sein. Wir können aber in die Fourier-
L L
6 KAPITEL 1. FOURIER-TRANSFORMATION

Entwicklung von f natürlich beliebige x-Werte einsetzen. Da die k-Werte so gewählt sind, daß
kn L = 2πn ist, gilt, ähnlich wie bei der inversen DFT,

f (x + L) = f (x). (1.25)

Mit anderen Worten, die Fourier-Reihe definiert eine periodische Fortsetzung von f (x). Deshalb
wird oft von vornherein angenommen, daß f eine periodische Funktion mit Periode L ist. Im
Gegensatz zur DFT sind die Entwicklungskoeffizienten fe(kn ) aber i.a. nicht periodisch in k.

1.3.2 Diskrete Zeitreihen und die Nyquist-Frequenz


Bei Fourier-Reihen besteht eine gewisse Asymmetrie zwischen Original und Transformierter,
die zu zwei verschiedenen Betrachtungsweisen führt.hWir haben
i bisher angenommen, daß eine
Funktion f (x) über dem kontinuierlichen Intervall − 2 , 2 gegeben ist, und ihr als Fourier-
L L

Transformierte die abzählbare Menge der Fourier-Koeffizienten fe(kn ) zugeordnet (Abb. 1.1).
Diese Stützpunkte“ im k-Raum sind äquidistant und überdecken die ganze reelle Achse.

f (tn) fe(ω)

∆t −Ω/2 Ω/2
Abbildung 1.2: Fourier-Reihe. Originaldaten diskret, Fourier-Transformierte kontinuierlich.

In der Praxis tritt häufig auch der umgekehrte Fall auf, bei dem die Rollen von Original
und Transformierter vertauscht sind (Abb. 1.2). Bei den Originaldaten handelt es sich meist um
die Werte einer zeitabhängigen Funktion, die nur zu diskreten Zeitpunkten tn = n∆t gemessen
wird

. . . , f (t−2 ), f (t−1 ), f (t0 ), f (t1 ), f (t2 ), . . . (1.26)

Dabei ist 1/∆t die Abtastrate (Sampling Rate). Wir können durch Anwendung unseres Wissens
über Fourier-Reihen sofort sagen, daß sich die Zeitreihe an den diskreten Zeitpunkten tn durch
eine Superposition (Integral)
h i von Schwingungen mit Frequenzen in einem kontinuierlichen, aber
endlichen Intervall − 2 , 2 darstellen läßt,
Ω Ω

1Z 2

f (tn ) = dω e−iωtn fe(ω), (1.27)


Ω − Ω2
1.4. FOURIER-INTEGRALE 7

mit dem Spektrum“




X
fe(ω) = eiωtn f (tn ). (1.28)
n=−∞

Zwischen der Frequenz Ω und der Abtastrate 1/∆t besteht ein analoger Zusammenhang wie
früher zwischen L und ∆k,

∆t = . (1.29)

Zur Darstellung einer mit endlicher Abtastrate gemessenen Zeitreihe genügt also ein end-
licher Frequenzbereich. Man nennt daher das Spektrum bandlimitiert (band-limited) und be-
zeichnet die obere bzw. untere Grenzfrequenz auch als Nyquist-Frequenz,

Ω π
ωNyquist = = . (1.30)
2 ∆t

D.h. die höchste zur Darstellung der f (tn ) benötigte Frequenz entspricht genau der halben
Abtastrate.

1.4 Fourier-Integrale
Es sei nun f (x) eine (komplexwertige) Funktion, die auf hder ganzen
i reellen Achse definiert ist.
Dann können wir zunächst f auf ein beliebiges Intervall − 2 , 2 einschränken und dort in eine
L L

Fourier-Reihe entwickeln,
Z L

fe(kn ) = dx e−ikn x f (x),


2
(1.31)
−L
2


1 X
f (x) = eikn x fe(kn ), (1.32)
L n=−∞

wobei wir diesmal den Normierungsfaktor 1/L bei der Rücktransformation angebracht haben.
Es sei ferner k beliebig reell und fest. Dann können wir eine Folge von Intervallen mit L → ∞
so wählen, daß k immer gleich einem der diskreten kn ist, und erhalten im Limes als Fourier-
Transformierte von f (x)
Z ∞
fe(k) = dx e−ikx f (x). (1.33)
−∞

Umgekehrt gilt für ein beliebiges x, wenn L einmal so groß ist, daß |x| ≤ L
2
(mit 1
L
→ ∆k

),
1 X
f (x) = ∆k eikx fe(k), (1.34)
2π {kn }
8 KAPITEL 1. FOURIER-TRANSFORMATION

wobei über alle diskreten k-Werte summiert wird, die mit der momentanen Intervallänge L
kompatibel sind. Im Limes L → ∞ erhalten wir schließlich die Inverse Fourier-Transformation
Z ∞
1
f (x) = dk eikx fe(k). (1.35)
2π −∞

An den Fourier-Integralen ist bemerkenswert, daß sowohl f (x) als auch fe(k) über der ganzen
reellen Achse definierte Funktionen sind und in den Transformationsformeln—bis auf den Nor-
mierungsfaktor 1/2π—vollkommen symmetrisch behandelt werden. Hinsichtlich der Konvergenz
gilt ähnliches wie bei den Fourier-Reihen: Ist f stetig und absolut integrierbar, dann konver-
giert die Rücktransformation punktweise gegen f (x). Will man hingegen unter dem Integral
differenzieren, müssen stärkere Voraussetzungen gemacht werden. Ebenso haben Distributionen
stets eine Fourier-Transformierte.

1.5 Rechnen mit Fourier-Transformierten


Der große Vorteil der Fourier-Transformation besteht darin, daß einige der wichtigsten mathe-
matischen Operationen mit Funktionen sich im Fourier-Raum formal sehr einfach durchführen
lassen. Das sind vor allem Differentiation und Integration sowie Faltungsoperationen. Ersteres
erklärt die Bedeutung der FT bei der Lösung von (gewöhnlichen und partiellen) linearen Diffe-
rentialgleichungen. Die Entfaltung“ wird vor allem für die Korrektur experimenteller Meßdaten

gebraucht.
Alle Operationen können, mit entsprechenden Änderungen, auf DFT, Fourier-Reihen und
Fourier-Integrale angewandt werden. Wir leiten der Einfachheit halber die Beziehungen nur für
Fourier-Integrale ab; im Fall von Fourier-Reihen und der DFT sind Integrale durch Summen zu
ersetzen bzw. bei der Faltung Komplikationen durch endliche Intervallgrenzen zu berücksichti-
gen.

1.5.1 Differentiation und Integration


Es sei f (x) eine Funktion über der reellen Achse mit der Fourier-Darstellung
1 Z∞
f (x) = dk eikx fe(k). (1.36)
2π −∞
Wir differenzieren beide Seiten der Gleichung und erhalten, vorausgesetzt daß Differentiation
und Integration vertauscht werden dürfen,
!
1 Z∞ d ikx e 1 Z∞
0
f (x) = dk e f (k) = dk eikx (ik)fe(k). (1.37)
2π −∞ dx 2π −∞

Also ist offenbar (ik)fe(k) die Fourier-Transformierte von f 0 (x),

ff0 (k) = ik fe(k). (1.38)


1.5. RECHNEN MIT FOURIER-TRANSFORMIERTEN 9

D.h. Differentiation geht im Fourier-Raum in Multiplikation mit dem Faktor ik über; aus ei-
nem linearen Differentialoperator wird so ein Polynom in ik. Analog entspricht—mit gewissen
Einschränkungen—der Integration beim Übergang in den Fourier-Raum die Division durch ik.

Beispiel: Lösung der Poisson-Gleichung in 1D


Es sei eine eindimensionale Ladungsverteilung ρ(x) gegeben. Das zugehörige Potential φ(x) ist
durch die Poisson-Gleichung,
φ00 (x) = −2ρ(x), (1.39)
bestimmt. Durch Transformation in den Fourier-Raum wird daraus
e
−k 2 φ(k) = −2ρ(k).
e (1.40)
Die Lösung des Problems ergibt sich also sofort aus
e 2
φ(k) = e
ρ(k). (1.41)
k2
In der Praxis scheitert man allerdings oft daran, daß die Rücktransformation in den x-Raum
nicht geschlossen angegeben werden kann.

1.5.2 Faltungsintegrale
Es seien f (x) und g(x) zwei über der ganzen reellen Achse definierte komplexwertige Funktio-
nen. Unter der Faltung von f und g versteht man das Integral
Z ∞
h(x) = dy f (x − y) g ∗ (y). (1.42)
−∞

Dafür schreibt man auch


h(x) = (f ∗g)(x). (1.43)
Die Fourier-Transformierte von h(x) ist
Z ∞ Z ∞
e
h(k) = dx e −ikx
dy f (x − y) g ∗ (y) (1.44)
−∞ −∞
Z ∞ Z ∞ h i∗
= dx dy e−ik(x−y) f (x − y) e−i(−k)y g(y) (1.45)
−∞ −∞
Z ∞ Z ∞ ∗
0 −ikx0 0 0 −i(−k)y 0 0
= dx e f (x ) dy e g(y ) (1.46)
−∞ −∞

= fe(k) [ge(−k)]∗ . (1.47)


Dabei haben wir die Variablentransformation x0 = x − y und y 0 = y durchgeführt. Wir lesen
daraus ab

fg
∗g (k) = fe(k) [ge(−k)]∗ . (1.48)
10 KAPITEL 1. FOURIER-TRANSFORMATION

Sind f und g beide reell, so ergibt sich wegen Gl. (1.13)

fg
∗g (k) = fe(k) ge(k), (1.49)

d.h. die Faltung geht im Fourier-Raum in ein einfaches Produkt über.


In der Praxis wird diese Beziehung oft zur Entfaltung“ experimenteller Messungen benützt.

Dabei ist h(x) das Meßsignal, f (x) die eigentlich interessierende physikalische Observable und
g(x) die sogenannte Instrumentenfunktion“, ein Artefakt, das die Meßergebnisse verfälscht.

Wenn g(x) bekannt ist, kann f (x) im Prinzip aus der Messung bestimmt werden, indem im
e
Fourier-Raum h(k) durch ge(k) dividiert und dann rücktransformiert wird.

1.5.3 Korrelationsfunktionen
Wenn f und g zeitabhängige Funktionen sind, wird oft die Korrelationsfunktion betrachtet,
Z ∞
h(t) = ds f (s + t) g ∗ (s), (1.50)
−∞

d.h. die Werte von g zum Zeitpunkt s werden mit den Werten von f zum Zeitpunkt s + t
verknüpft. Beim Übergang in den Fourier-Raum ergibt sich, ähnlich wie bei der Faltung zweier
Funktionen,

e
h(ω) = fe(ω) [ge(ω)]∗ . (1.51)

Also ist auch die Fourier-Transformierte einer Korrelationsfunktion im wesentlichen ein Pro-
dukt.
Sind f und g verschieden, nennt man h die Kreuzkorrelation von f und g; ist f = g, heißt
h die Autokorrelationsfunktion von f . In diesem Spezialfall gilt

e
h(ω) = |fe(ω)|2 ≥ 0. (1.52)

Dieser Sachverhalt wird auch als Wiener–Khinchin Theorem bezeichnet. Die Größe |fe(ω)|2
nennt man das Powerspektrum von f . Offenbar zeichnen sich Autokorrelationsfunktionen durch
nichtnegative Spektren aus.

1.6 Die Schnelle Fourier-Transformation (FFT)


Wie sich im vorigen Abschnitt gezeigt hat, gehen bei der Transformation in den Fourier-Raum
die für die Behandlung linearer Differential- und Integralgleichungen wesentlichen Manipulatio-
nen, wie Differentiation, Integration und Faltung, sowie Filteroperationen in einfache algebrai-
sche Operationen über. Dadurch lassen sich diese Probleme oft formal recht einfach lösen. In
der Praxis ist damit aber meist nicht viel gewonnen, weil man die entsprechenden Transforma-
tionen nur in den seltensten Fällen analytisch durchführen kann. Numerische Methoden können
1.6. DIE SCHNELLE FOURIER-TRANSFORMATION (FFT) 11

andererseits bei größerem Datenumfang oder höherdimensionalen Problemen leicht zu einem


unvertretbar hohen Rechenaufwand führen. Glücklicherweise gibt es für die Diskrete Fourier-
Transformation, auf die ja die numerischen Verfahren letztlich hinauslaufen, einen schnellen“

Algorithmus, eben die FFT (Fast Fourier-Transform), der wirklich um Größenordnungen ef-
fizienter sein kann als die gewöhnliche DFT. Somit bildet die FFT, in Verbindung mit den
Rechenregeln im Fourier-Raum, eines der leistungsfähigsten numerischen Verfahren schlecht-
hin.

1.6.1 Alternative Indexkonvention


Wir haben im Abschnitt 1.2 die DFT von N Zahlen (N sei wieder gerade),
f− N , . . . , f−1 , f0 , . . . , f N −1 , (1.53)
2 2

definiert als
N
−1
1 X
2

fen =
2πinj
e− N fj . (1.54)
N j=− N
2

Genau dieselben Fourier-Koeffizienten erhalten wir aber auch, wenn wir die Zahlen in der
Reihenfolge
f0 , . . . , f N −1 , f− N , . . . , f−1 (1.55)
2 2

anordnen (also die linke Hälfte der Folge nach rechts schreiben) und umbenennen in
f0 , . . . , fN −1 . (1.56)
(Das ist einfach die periodische Fortsetzung der fj für j ≥ N
2
.) Es gilt nämlich

−1 −1 −1
N
1 NX − 2πinj 1 2X − 2πinj 1 NX 2πinj
e N fj = e N fj + e− N fj−N (1.57)
N j=0 N j=0 N j= N
2
N
−1 −1
1 X − 2πinj
2
1 X 2πin(j+N )
= e N fj + e− N fj (1.58)
N j=0 N j=− N
2
N
−1
1 X − 2πinj
2

= e N fj (1.59)
N j=− N
2

= fen . (1.60)
Wir hätten also die Fourier-Koeffizienten auch definieren können als
−1
1 NX
fen =
2πinj
e− N fj , n = 0, . . . , N − 1. (1.61)
N j=0
12 KAPITEL 1. FOURIER-TRANSFORMATION

Wenn man, wie angedeutet, hier n von 0 bis N − 1 laufen läßt, erhält man nach Abschnitt 1.2.1
automatisch die ursprünglichen Fourier-Koeffizienten in der Reihenfolge

fe0 , . . . , feN −1 , fe− N , . . . , fe−1 , (1.62)


2 2

die aber jetzt mit

fe0 , . . . , feN −1 (1.63)

bezeichnet werden. Ähnlich wie vorhin kann man nun zeigen, daß die Formel für die Rücktrans-
formation

X
N −1
fen ,
2πinj
fj = e N j = 0, . . . , N − 1 (1.64)
n=0

ist.
Die Transformationsformeln Gl. (1.61) und (1.64) sind vollkommen äquivalent zu Gl. (1.1)
und (1.2) und liefern, bis auf die Anordnung, auch genau dieselben Werte. Sie sind aber für das
Programmieren bequemer, weil die Indizes j und n von 0 bis N − 1 laufen, und werden deshalb
gern bei der Diskussion von Algorithmen verwendet.

1.6.2 Rekursionsformel
Die der FFT zugrunde liegende Idee läßt sich am einfachsten rekursiv erklären. Jede halbwegs
effiziente Implementation sollte aber den umgekehrten Weg, von unten nach oben“, gehen

(s. Abschnitt 1.6.4).
Es sei
X
N −1
fbn =
2πinj
e− N fj , (1.65)
j=0

d.h. die fbn sind bis auf den Vorfaktor 1


N
identisch mit den fen . Außerdem sei ωN die N -te
Einheitswurzel

ωN = e− N .
2πi
(1.66)

Wir zerlegen die Summe in Gl. (1.65) in die Beiträge der Terme mit geradem (j = 2j 0 ) bzw.
ungeradem (j = 2j 0 + 1) Index
N
−1 N
−1
2X 2πin(2j 0 ) X
2
2πin(2j 0 +1)
fb
n = e− N f2j 0 + e− N f2j 0 +1 (1.67)
j 0 =0 j 0 =0
N
−1 N
−1
2X − 2πinj
0 X
2 2πinj 0
= e N/2 f
2j 0 +e − 2πin
N e− N/2 f2j 0 +1 , (1.68)
j 0 =0 j 0 =0
1.6. DIE SCHNELLE FOURIER-TRANSFORMATION (FFT) 13

also (mit j 0 →j)

N
−1 N
−1
X
2
− 2πinj
X
2 2πinj
fbn = e N/2 f2j + n
ωN e− N/2 f2j+1 . (1.69)
j=0 j=0

Das ist die gewünschte Rekursionsformel.


Die erste Summe in Gl. (1.69) sieht—bis auf einen Faktor N2 —aus wie die DFT der N2 Zahlen
f0 , f2 , . . . , fN −2 , die zweite wie die DFT der Zahlen f1 , f3 , . . . , fN −1 . Wir haben also offenbar
eine DFT von N Zahlen auf zwei DFTs mit je N2 Zahlen zurückgeführt, die aus den Punkten
mit geradem bzw. ungeradem Index bestehen. Das stimmt noch nicht ganz, denn der Fourier-
Index n darf alle Werte von 0 bis N − 1 durchlaufen, während die DFTs auf der rechten Seite
von Gl. (1.69) zunächst nur für die Indizes 0, . . . , N2 − 1 erklärt sind. Hier können wir allerdings
benützen, daß eine DFT von N2 Zahlen periodisch mit Periode N2 ist, und für n ≥ N2 einfach
die Fourier-Koeffizienten mit dem Index n − N2 verwenden.
Außerdem gilt für N2 ≤ n ≤ N − 1
N
n− N n− N
n
ωN = ωN2 ωN 2
= −ωN 2
, (1.70)
N/2
da ωN = −1. D.h. daß man für n ≥ N2 in Gl. (1.69) einfach die entsprechenden Ausdrücke für
n − N2 einsetzt und die zweite Summe von der ersten subtrahiert statt addiert.
Damit ist das Problem der Berechnung einer DFT vom Umfang N vollständig auf Fourier-
Transformierte vom Umfang N2 zurückgeführt. Falls N auch durch 4 teilbar ist, kann man
die Rekursion neuerlich anwenden und die beiden DFTs vom Umfang N2 auf je zwei Fourier-
Transformierte vom Umfang N4 zurückführen usw. In dem praktisch allein wichtigen Spezialfall,
daß N eine reine Potenz von 2 ist, also N = 2m , läßt sich somit eine DFT von N Zahlen in
genau m = log2 N Schritten auf N Fourier-Transformierte vom Umfang 1 reduzieren. Damit
kommt die Rekursion zu einem trivialen Ende, denn die Fourier-Transformierte einer einzelnen
Zahl f0 ist, wie aus Gl. (1.1) für N = 1 unmittelbar folgt, die Zahl selbst

fe0 = f0 , falls N = 1. (1.71)

Falls N keine reine Zweierpotenz ist, kann man eine Primfaktorenzerlegung von N durch-
führen und zu Gl. (1.69) analoge Rekursionen verwenden, die Zerlegungen in drei und mehr
Teilsummen entsprechen. Sofern aber N frei wählbar ist, beschränkt man sich in der Praxis in
der Regel auf den Fall N = 2m .

1.6.3 Beschleunigung gegenüber DFT


Numerische Fourier-Transformationen sind häufig Bestandteil iterativer Verfahren oder werden
in identischer Weise auf eine große Anzahl von Datensätzen angewendet. Daher beschränkt man
sich bei der Abschätzung des Rechenzeitaufwandes auf die eigentlichen Transformationsformeln
n
und vernachlässigt die Berechnung von Hilfsgrößen, wie z.B. der Phasenfaktoren ωN , da diese in
einer Tabelle gespeichert werden können und bei wiederholter Ausführung der Transformation
14 KAPITEL 1. FOURIER-TRANSFORMATION

nur aus dem Speicher ausgelesen werden müssen. Außerdem werden meist nur Floating Point
(Gleitkomma) Operationen betrachtet, die den Hauptteil der Rechenzeit ausmachen, Speicher-
zugriffe und Indexberechnungen aber ignoriert.
Damit berechnet sich der Aufwand für eine gewöhnliche (langsame) DFT folgendermaßen:
Laut Gl. (1.1) müssen, wenn ein Datensatz vom Umfang N gegeben ist, N Fourier-Koeffizienten
berechnet werden, die jeweils aus einer Summe von N komplexen Termen bestehen. Also ist
der Rechenaufwand jedenfalls proportional zu N 2 . Zur Berechnung jedes Summanden ist eine
komplexe Multiplikation notwendig und, um den Term zur Summe zu addieren, eine komplexe
Addition. Eine komplexe Addition entspricht zwei reellen Additionen, eine komplexe Multipli-
kation vier reellen Multiplikationen und zwei reellen Additionen. Nimmt man der Einfachheit
halber an, daß Additionen und Multiplikationen gleich lang dauern, dann sind das acht Floating
Point Operationen pro Summand. Das ergibt für eine DFT also insgesamt
ZDFT = 8N 2 (1.72)
Operationen.
Im Fall einer FFT vom Umfang N = 2m muß laut Gl. (1.69) im ersten Rekursionsschritt
für jedes 0 ≤ n ≤ N2 − 1 ein Fourier-Koeffizient der Datenpunkte mit ungeradem Index
n
mit ωN multipliziert und zum entsprechenden Fourier-Koeffizienten der Punkte mit geradem
Index addiert werden. Das sind N2 komplexe Additionen und Multiplikationen. Für N2 ≤ n ≤
N − 1 müssen nur die gerade gebildeten Produkte von den Fourier-Koeffizienten der Punkte mit
geradem Index subtrahiert werden, was weiteren N2 komplexen Additionen entspricht. Rechnet
man wieder komplexe in reelle Operationen um, so ergeben sich für den ersten Rekursionsschritt
insgesamt 5N reelle Operationen. Im zweiten Rekursionsschritt, der Reduktion von 2 DFTs von
je N2 Datenpunkten in 4 DFTs vom Umfang N4 , sind demnach 2 × 5 N2 Operationen notwendig,
im dritten 4 × 5 N4 ,. . . , d.h. immer 5N . Da genau m = log2 N Rekursionsschritte erforderlich
sind, kostet also eine FFT von N Datenpunkten insgesamt
ZFFT = 5N log2 N (1.73)
Floating Point Operationen.
Die Beschleunigung, die mit der FFT gegenüber einer konventionellen DFT erreicht werden
kann, ist demnach
ZDFT 8N
S= = . (1.74)
ZFFT 5 log2 N
Tabelle 1.1 zeigt einige typische Werte.

ZDFT
m N ZFFT
5 32 10
10 1024 160
15 32768 3495
20 1048576 83886

Tabelle 1.1: Beschleunigung durch FFT gegenüber DFT.


1.6. DIE SCHNELLE FOURIER-TRANSFORMATION (FFT) 15

Es ist offensichtlich, daß bei allen Problemen, bei denen eine numerische Fourier-Transformation
der zeitbestimmende Faktor ist, mit der FFT gewaltige Leistungssteigerungen erreicht werden
können.

1.6.4 Implementation
Wie schon erwähnt, wäre eine rekursive Implementation der FFT wegen des zusätzlichen Spei-
cher- und Verwaltungsaufwandes in der Praxis sehr ineffizient. Wir können jedoch die Rekur-
sionsgleichung (1.69) benützen, um ein Daten-Flußdiagramm zu konstruieren, aus dem sich
unmittelbar ablesen läßt, wie die FFT programmiert werden kann. Diese Implementation hat
außerdem den Vorzug, daß sie in place“ arbeitet, also die Transformierte die Originaldaten

überschreibt und somit kein zusätzlicher Speicherplatz benötigt wird. Das ist vor allem bei
großen Datenmengen oder mehrdimensionalen FFTs ein Vorteil. Daneben gibt es aber auch
noch eine Reihe von anderen (und effizienteren) Verfahren, insbesondere solche, die spezielle
Datenstrukturen berücksichtigen, wie z.B. die kompakte Speicherung einer FFT rein reeller
Werte.
Wir illustrieren die Vorgangsweise am Beispiel N = 23 = 8. Eine graphische Darstellung
von Gl. (1.69) sieht dann folgendermaßen aus:

ω3 7
7 −
ω2 5
6 −
ω1 3
5 −
ω0 1
4 −
3 +
6
2 +
4
1 +
2
0 +
0

Abbildung 1.3: Erster Rekursionsschritt bei einer 8-Punkt FFT.

Dabei ist ω ≡ ω8 = e−2πi/8 . Die linke Spalte von Kästchen mit der Beschriftung 0, . . . , 7
symbolisiert die Speicherzellen, in denen das gewünschte Endresultat steht, nämlich (bis auf
den Vorfaktor N1 ) die Fourier-Koeffizienten der Werte f0 , f1 , . . . , f7 , also fb0 , fb1 , . . . , fb7 . In der
unteren Hälfte der rechten Spalte stehen die Fourier-Koeffizienten der Werte f0 , f2 , f4 , f6 , in
16 KAPITEL 1. FOURIER-TRANSFORMATION

der oberen Hälfte die der Werte f1 , f3 , f5 , f7 . (Als Fourier-Koeffzienten zweier DFTs von nur
vier Punkten sollten sie eigentlich jeweils mit 0, 1, 2, 3 durchnumeriert werden, wir wollen hier
aber deutlich machen, welcher Teilmenge der Ausgangswerte sie entsprechen.) Laut Gl. (1.69)
erhalten wir für n = 0, 1, 2, 3 die n-te Komponente der 8-Punkt DFT der Werte f0 , . . . , f7 ,
indem wir die n-te Komponente der 4-Punkt DFT der Werte f1 , f3 , f5 , f7 mit ω8n multiplizieren
und zur n-ten Komponente der 4-Punkt DFT der Werte f0 , f2 , f4 , f6 addieren. Für n = 4, 5, 6, 7
müssen wir statt addieren nur subtrahieren und das Ergebnis an der entsprechenden Stelle
der oberen Hälfte der linken Spalte eintragen. Die Zahlen ω80 , . . . , ω83 sind in einem Hilfsfeld
gespeichert.
Analog können wir nun z.B. die 4-Punkt DFT der Ausgangswerte f0 , f2 , f4 , f6 auf die 2-
Punkt DFTs der Wertepaare f0 , f4 und f2 , f6 zurückführen. Die dabei auftretenden Faktoren
ω40 und ω41 sind nichts anderes als ω80 und ω82 von vorhin. Nun kann nochmals z.B. die 2-Punkt
DFT der Ausgangswerte f0 , f4 auf die 1-Punkt DFTs der Werte f0 und f4 reduziert werden,
wobei ein trivialer Faktor ω20 = ω80 = 1 auftritt. Die 1-Punkt DFT jedes Ausgangswertes ist der
Wert selbst.
Schreibt man alle Rekursionen für den Fall N = 8 explizit aus, so ergibt sich folgendes Bild:

7 − ω3 7 − ω2 7 − ω0 7
6 − ω2 5 − ω0 3 + 3
5 − ω1 3 + 5 − ω0 5
4 − ω0 1 + 1 + 1
3 + 6 − ω2 6 − ω0 6
2 + 4 − ω0 2 + 2
1 + 2 + 4 − ω0 4
0 + 0 + 0 + 0

Abbildung 1.4: Datenfluß bei einer 8-Punkt FFT.

Von rechts nach links gelesen, zeigt dieses Daten-Flußdiagramm, wie man die FFT nichtrekursiv
implementieren kann. Man beginnt mit einer permutierten Anordnung der acht 1-Punkt DFTs
(d.h. der Ausgangswerte), wie in der vierten Spalte ganz rechts angegeben. Durch Addition
bzw. Subtraktion von je zwei Werten (die Multiplikation mit ω20 = ω80 = 1 kann entfallen)
erhält man die vier 2-Punkt DFTs in der dritten Spalte. Nun wird jede zweite Zweiergruppe
mit den Potenzen von ω4 = ω82 multipliziert und zur darunter stehenden Zweiergruppe addiert
bzw. von ihr subtrahiert. Von den dabei entstehenden 4-Punkt DFTs in der zweiten Spalte wird
wieder die obere mit ω80 , . . . , ω83 multipliziert; Addition bzw. Subtraktion dieser Vierergruppen
1.6. DIE SCHNELLE FOURIER-TRANSFORMATION (FFT) 17

ergibt die gewünschte 8-Punkt DFT, die zum Abschluß nur noch mit N1 multipliziert werden
muß. (Bei einer inversen FFT entfällt diese Multiplikation.)
Da der Grundschritt der FFT jeweils darin besteht, ein Wertepaar durch eine Linearkombi-
nation der es bildenden Zahlen zu ersetzen, womit das Wertepaar sofort überschrieben werden
n
kann, ist auch klar, daß außer den ωN keine Hilfsfelder benötigt werden: Die vier Spalten von
Abb. 1.4 sind in diesem Fall einfach als Belegung ein- und desselben Speicherplatzes zu vier
verschiedenen Zeitpunkten zu interpretieren. Zu Beginn der FFT ist dort eine Permutation der
Originalwerte gespeichert, am Ende die fertige DFT.
Um die zu Beginn notwendige Permutation der Ausgangswerte zu charakterisieren, betrach-
ten wir die Binärdarstellung der Indizes von Abb. 1.4.

1. Spalte 2. Spalte 3. Spalte 4. Spalte


dezimal binär binär dezimal
7 111 111 111 111 7
6 110 101 011 011 3
5 101 011 101 101 5
4 100 001 001 001 1
3 011 110 110 110 6
2 010 100 010 010 2
1 001 010 100 100 4
0 000 000 000 000 0

Tabelle 1.2: Binäre Indexvektoren bei einer 8-Punkt FFT.

In der ersten Spalte stehen hier die Indizes 0, . . . , 7 in der natürlichen Anordnung (von unten
nach oben), d.h. daß in der Binärdarstellung das rechte Bit schneller variiert als das mittlere
und dieses schneller als das linke. Beim Übergang von der ersten zur zweiten Spalte wandern alle
Indizes, die das rechte Bit gesetzt haben, in die obere Hälfte, beim Übergang von der zweiten in
die dritte Spalte innerhalb jeder Vierergruppe jene Indizes, die das mittlere Bit gesetzt haben.
Damit ist in der dritten und vierten Spalte erreicht, daß am schnellsten das linke Bit variiert,
dann das mittlere und am langsamsten das rechte. Die entstehende Anordnung zeichnet sich
also dadurch aus, daß in der Binärdarstellung das Bitmuster jedes Index gerade das Spiegelbild
des Bitmusters in der natürlichen Anordnung ist ( Bitspiegelung“).

Da die Programmierung der Bitspiegelung ebenfalls relativ aufwendig ist, wird man, wie
n
im Fall der Phasenfaktoren ωN , den Permutationsvektor möglichst nur einmal berechnen und
dann wiederverwerten. Computer bzw. Prozessoren, die auf FFT spezialisiert sind, haben übli-
cherweise für die Bitspiegelung eine eigene Hardware-Instruktion zur Verfügung.
18 KAPITEL 1. FOURIER-TRANSFORMATION

Das könnte Ihnen auch gefallen