Beruflich Dokumente
Kultur Dokumente
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.
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.
e 1 2X
f0 = fj . (1.8)
N j=− N
2
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.
fj+N = fj . (1.11)
h i
Damit können die fj außerhalb des Definitionsbereiches − N2 , N2 − 1 periodisch fortgesetzt
werden.
∗ −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
fen =
2πinj
e− N f (xj ), (1.17)
N j=− N
2
fen .
2πinj
f (xj ) = e N (1.18)
n=− N
2
e±i L n N j = e±ikn xj ,
2π L
(1.21)
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=−∞
f (x) fe(kn )
−L/2 L/2 ∆k
Abbildung 1.1: Fourier-Reihe. Originaldaten kontinuierlich, Fourier-Transformierte diskret.
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.
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
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
Ω
Zwischen der Frequenz Ω und der Abtastrate 1/∆t besteht ein analoger Zusammenhang wie
früher zwischen L und ∆k,
2π
∆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
∞
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
2π
),
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.
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.
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)
−∞
fg
∗g (k) = fe(k) [ge(−k)]∗ . (1.48)
10 KAPITEL 1. FOURIER-TRANSFORMATION
fg
∗g (k) = fe(k) ge(k), (1.49)
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.
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
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
ω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
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
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 .
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
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
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
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.
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