Sie sind auf Seite 1von 10

5.2 Die numerische Fouriertransformation

Wir gehen aus von den beiden Gleichungen (5.4) und (5.3) auf Seite 22:

F(ω) =

f(x) =

x=−∞

f(x)e jωx dx

1

2π

ω=−∞

F(ω)e jωx dω

(5.5)

(5.6)

Im Rahmen der Distributionstheorie l¨asst sich zeigen, dass die Fourierreihe ein Spezial-

fall der Fouriertransformation ist. Wir sind umgekehrt vorgegangen: Wir haben gezeigt,

dass die Fouriertransformation die Verallgemeinerung der Fourierreihe ist (siehe Ab-

schnitt ”Von der Fourierreihe zur Fouriertransformation”) Die Wahrheit ist: die diskrete

Fouriertransformation ist eigentlich keine Fouriertransformation, sondern eine Fourier-

reihe!

Bevor wir jedoch beginnen, sollten wir ein paar kleine Dinge aus der Matrizenalgebra

wiederholen, die wir sp¨ater ben¨otigen werden.

Seien A eine Matrix, b und c seien Vektoren und es sei:

A · b = c

a 00 a 01

a 10 a 11

a 20 a 21

a

a

a

02

12

22

·

b

b

b

0

1

2

=

a 00 b 0

a 10 b 0

a 20 b 0

+ a 01 b 1 + a 02 b 2

+ a 11 b 1 + a 12 b 2

+ a 21 b 1 + a 22 b 2

=

oder

2

a nm b m = c n

n = 0

2

m=0

Also: Ein Ausdruck der Form

c n =

2

m=0

a nm b m ,

ist ¨aquivalent mit c = A · b.

n = 0

2

Es ist

abc

0

abc = a

0

0

a ·

0

b 0

0 b

·

24

2

m=0

2

m=0

2

m=0

c 0

0

c

a 0m b m

a 1m b m

a 2m b m

=

c

c

c

0

1

2

(5.7)

(5.8)

Wenn man beachtet, dass die Matrixmultiplikation nicht kommutativ ist, kann

man bei arithmetischen Operationen in der Menge der quadratischen Matrizen

quadratische Untermatrizen behandeln wie Matrixelemente. Beispiel:

1

1

1 1

1

0

a d 0

0

0 = a a

a

da da ,

analog gilt:

E

E

(2,2) E (2,2) N (2,2) D (2,2) N (2,2) A (2,2)

(2,2)

E

(2,2)

E (2,2) N (2,2)

A (2,2) N (2,2)

=

A A D (2,2) A (2,2)

(2,2)

(2,2)

D (2,2) A (2,2)

(5.9)

wobei die Matrizen in Gleichung (5.9) die Gr¨oße 4 × 4 haben, D (2,2) und A (2,2)

quadratische Untermatrizen Gr¨oße 2 × 2 sind, E (2,2) die Einheitsmatrix und N (2,2)

die Nullmatrix, jeweils der Gr¨oße 2 × 2.

5.2.1 Die diskrete Fouriertransformation

Wir gehen aus von der Fourierreihe in der komplexen Darstellung Gleichung soundsoviel,

ersetzen das symmetrische Intervall durch ein Intervall

T) und ω durch k:

f(x) =

n=−∞


=

c n e jnωx

c n e jknx

ω = 2π

T

n=−∞

T

2

c n = 1

T

x=T

2

T


=

1

T

x=0

T


=

1

T

f(x)e jnωx dx

f(x)e jnωx dx

f(x)e jknx dx

x=0

!

= k,

= kn

(5.10)

(5.11)

f (x) in Gl. (5.10) ist eine kontinuierliche periodische Funktion, die sogar abschnittsweise

stetig sein muss.

Fur¨ die diskrete Fouriertransformation haben wir statt einer kontinuierlichen Funktion

25

f (x) einen diskreten Signalvektor

f =

f

.

.

.

0

f

m

.

.

.

f

N1

der L¨ange N , den wir beispielsweise durch Messungen oder durch Abtasten der konti-

nuierlichen Funktion f (x) erhalten haben.

Nimmt man an, dass sich der Signalvektor periodisch mit T = N wiederholt 2 , so geht

das Integral in Gl. 5.11 uber¨

in die Summe:

c n =

1

N

= F n

N1

m=0

f m e jknm

k = 2π

N

n = 0

N 1

(5.12)

Umgekehrt ist, da der Signalvektor f endlich ist,

¨

f m =

N1

n=0

F n e jknm

(5.13)

Wegen der Ahnlichkeit von Gleichung (5.12) mit Gleichung (5.5) und Gleichung (5.13)

mit Gleichung (5.6) werden die Gleichungen (5.12) und (5.13) auch diskretes Fourier-

transformationspaar genannt – aber eigentlich ist es die diskrete Fourierreihe. Der durch

Gleichung (5.12) entstandene Vektor

F =

F

0

.

.

.

F

n

.

.

.

F

N1

wird die Fouriertransformierte des Signalvektors f genannt, der Signalvektor f in Glei- chung (5.13) ist die inverse Fouriertransformierte des Vektors F.

Man beachte auch, dass in Gleichung (5.6) die inverse Fouriertransformation einen Fak-

1

tor 2π enth¨alt, in Gleichung (5.12) die Fouriertransformation einen Faktor

1

N .

2 Wir erinnern uns: die Fourierreihe ben¨otigt eine periodische Funktion mit der Periode T

26

Fur¨ die folgenden Erkl¨arungen sei nun N = 8. Wir betrachten Gl. (5.12) und setzen

N = 8:

F n = 1

8

= 1

8

7

m=0

7

m=0

f m e jknm

e jknm f m

k = 2π

8

= π ,

4

m = 0

7

n = 0

7

(5.14)

Ein Ausdruck dieser Form 3 ist eine Multiplikation eines Vektors f mit einer Matrix A

(siehe Gleichung (5.7)), und das Resultat ist ein Vektor F . Wie sieht aber die Matrix A

aus?

Die Matrix A erh¨alt man durch folgende Uberlegung:

¨

e jknm = e jk n·m

= α n·m

mit α = e jk = e j π

4

Fur¨ N = 8, 0 n 8 und 0 m 8 ergibt sich fur¨ e jknm = α n·m es folgende Matrix:

m

 
 

0

1

2

3

4

5

6

7

n

 
 

0

α 0 α 0 α 0 α 0 α 0 α 0 α 0 α 0

1

α 0 α 1 α 2 α 3 α 4 α 5 α 6 α 7

2

α 0 α 2

α

4

α

6

α

8

α 10 α 12

α

14

3

α 0 α 3

α

6

α

9

α

12

α 15 α 18

α

21

4

α 0 α 4

α

8

α

12

α

16

α 20 α 24

α

28

5

α

0

α

5

α 10 α 15

α

20

α 25 α 30

α

35

6

α

0

α

6

α 12 α 18

α 24 α 30 α 36

α

42

7

α

0

α

7

α 14 α 21

α 28 α 35 α 42

α

49

3 D.h. uber¨

eine Variable wird summiert, die andere bleibt als Index stehen

27

(5.15)

Nun ist aber:

= e j π 0

α

α

α

= e j π 4

α

= e j π 6

α

α 8 = e j π 8

α

α

α

0

4

1

2

3

4

5

6

7

= e j π

4

= e j π

4

= e j π

4

4

= e j π

4

4

= e j π

4

4

2

3

5

7

1

.

.

.

.

=

=

=

=

=

=

=

=

= cos 2π

.

cos 0

j

sin 0

=

=

1

1 2 (1 j)

j

2 (1 + j)

1

= 2 (1 j) =

= j

=

1

.

1 2 (1 + j)

=

=

cos π j sin π

4

cos π

2

j sin

4

π

2 =

cos 3π j sin 3π

4

4

cos π

j

sin π

cos 5π j sin 5π

4

4

cos 3π j sin 3π

2

2

cos 7π j sin 7π

4

4

1

1

= α 0

α

1

= α 2

=

α

3

= α 0

.

j sin 2π =

(5.16)

mit anderen Worten: ab n · m = 8 wiederholt sich das Ganze und fur¨ Gleichung (5.14)

k¨onnen wir schreiben:

F = 1

8

α 3 α 0 α 1 α 2 α 3

α 0

α

0

α 0

α

α

0

0

α 0

α 1

α 0

α 2

α 0

α 0

α

0

α 0

α 0

α 0

α 2 α 0 α 2

α 3 α 2

α 0 α 0

α 2 α 0 α 2

α 2 α 1

α 0 α 0

α 1 α 2

α

3

α 2

α

1

α 1 α 0 α 3

α 0 α 0

α 0 α 0

α 0 α 1

α 2 α 3 α 0

α

2

α 2 α 0

α 0 α 2 α 0

α

3

α

2

α 0 α 3 α 2 α 1 α 0

F = A (8,8) ·

f

·

 

f 2

f 4

f

f 1

0

f 3

f 5

f

f

6

7

Beispielsweise hat der Signalvektor

f =

0

1

2

3

4

3

2

1

die Fouriertransformierte F = 1

8

0.000

16.000

6.828

0.000

1.172

0.000

1.172

6.828

28

(5.17)

Wie in der Fourierreihe steht auch hier in der Frequenz F 0 der Offset, also der Mittelwert

uber¨

der Elemente des Signalvektors f ist, dividiert durch seine L¨ange. Gleichung (5.17) nennt

man die diskrete Fouriertransformation (fur¨ N = 8).

Wie man sieht, kann die diskrete Fouriertransformation sehr rechenintensiv werden.

Schon fur¨ eine Fouriertransformation eines Signalvektors der Gr¨oße N = 8 ben¨otigt man

8 · 8 = 64 Multiplikationen und 7 · 8 = 56 Additionen, allgemein, fur¨ einen Signalvektor

der Gr¨oße N ben¨otigt man N · N = N 2 Multiplikationen und (N 1) · N Additio-

nen! Eine zweidimensionale Fouriertransformation eines Bildes der Gr¨oße 1024 × 1024

enth¨alt 2048 Fouriertransformationen, und jeder Signalvektor enth¨alt 1024 Elemente!

Der Rechenaufwand ist also enorm!

Die Fourier Transformation (FFT) erreicht nun durch Umordnen der Elemente der

Matrix A (8,8) eine wesentliche Beschleunigung des Verfahrens.

eine Periode. An diesem Beispiel kann man leicht nachrechnen, dass dies die Summe

5.2.2 Die Fast Fouriertransformation (FFT)

Die Umordnung der Elemente beinhaltet eine Permutation der Spalten der Matrix A ( 8, 8)

und eine entsprechende Umordnung der Elemente des Vektors f , naturlich¨

Ergebnis ver¨andert wird. Dies geschieht durch

ohne dass das

1. Permutation der Elemente f m und der Spalten von A (8,8) nach dem sog. Bit-

Reversal-Algorithmus. Dabei wird der Index m bzw. die Spaltennummer als Bin¨arzahl

geschrieben und von rechts nach links gelesen. So steht z.B. die Komponente f 3

nach der Permutation an der Stelle von f 6 , da 3 = 011 BitRev. 110 = 6. ist.

2. Zerlegen der Matrix A (8,8) in ein Produkt von einfacheren Matrizen:

Fur¨ Gleichung (5.17) ergibt sich

F = 1

8

A (8,8) ·

f

(5.18)

mit

A (8,8) : Matrix A (8,8) mit permutierten Spalten und

29

f : Vektor f mit permutierten Elementen wobei

f =

wobei

f 2

f 1

f 5

f 3

f 7

f 6

f 4

f 0

und

D (4,4) =

A (8,8) =

α 0

α

α 0 α 0

α

α 0 α 0 α 2

α

α 0 α 0

0

0

0

α

0

α

0

α

0

α

α 1 α 1

α

α 3 α 3

0

2

α

0

α

α 3 α 3

0

α 0

α

α 2

α 2 α 2

α 0 α 0 α 0

α

0

α

0

2

α 2 α 2 α 2

α

α 0 α 0 α 0 α 0 α 0

α 1 α 1

α 2 α 2 α 1

α 1 α 3

α

2

α 3 α 1

α

3

1

α 0 α 0 α 0 α 2 α 2

α 2 α 3

α 0 α 0 α 2

A (8,8) =

α 0

0

0

α

0

α

0

α

0

α

α 0 α 0

α

α 0 α 0 α 2

α

α 1 α 1

α

α 3 α 3

0

2

α

0

α

α 3 α 3

α 0

0

α 2

α

α

α 2 α 2

α 0 α 0 α 0

α

2

α 2 α 2 α 2

α 1 α 1

α

α 0 α 0

0

α

α 2 α 2

α 0 α 0 α 0

α

0

0

α

0

α 0 α 0 α 2

α 0 α 0 α 0 α 0

α

α 2 α 2

1

α 1 α 3

α

2

3

α 3 α 1

1

α 2 α 3

= A

A (4,4) D (4,4) A (4,4)

(4,4)

D

(4,4)

A

(4,4)

= E (4,4)

E (4,4) E (4,4) N (4,4) D (4,4)

E

(4,4)

E (4,4) N (4,4)

N (4,4) A (4,4)

A (4,4) N (4,4)

α 0 0

0 α 1

0

0

0

0

0

0

0

0 α 2

0

0 α 3

,

A (4,4) =

α

α 0 α 0

α

α 0 α 0 α 2

0

0

α

0

α

0

α

0

α 2 α 2

α 0 α 0 α 0

α

2

,

E (4,4) die Einheitsmatrix der Gr¨oße 4 × 4 und N (4,4) die Nullmatrix der Gr¨oße 4 × 4 sind.

Die Matrix A (4,4) kann man nun analog zerlegen:

30

A (4,4) =

α

α 0 α 0

0

α

0

α

α 2 α 2

0

α

0

0

α

α 0 α 0

α 0 α 0 α 0

α

2

α

2

A
=

A (2,2) D (2,2) A (2,2)

(2,2)

D (2,2) A (2,2)

= E (2,2)

E (2,2) E (2,2) N (2,2) D (2,2) N (2,2) A (2,2)

E

(2,2)

E (2,2) N (2,2)

A (2,2) N (2,2)

(5.19)

wobei D (2,2) = α 0 0 2 , α

0

A (2,2)

= α

α 0 α 0 sind, E (2,2) die Einheitsmatrix der

0

α 0

Gr¨oße 2 × 2 und N (2,2) die Nullmatrix der Gr¨oße 2 × 2.

Zusammengefasst und α 0 = 1 eingesetzt ergibt sich:

F = 1

8

1

8

1

8

·

 

=

=

A (8,8) ·

f

E

(4,4)

E

(4,4)

N (4,4) D (4,4) N (4,4) A (4,4) ·

E (4,4) N (4,4)

A (4,4) N (4,4)

f

E (4,4) N (4,4)

N

(4,4)

D (4,4) ·

E

/ ersetze A (4,4) durch Gl. (5.19)

E (4,4) E (4,4)

E

(4,4)

E

(4,4)

E (4,4) E (4,4)

E (2,2) E (2,2) N (2,2) D (2,2) N (2,2) A (2,2)

E

(2,2)

E

(2,2)

E (2,2) N (2,2)

A (2,2) N (2,2)

N (4,4)

A (2,2) N (2,2)

N (2,2) A (2,2)

N (4,4)

E (2,2) E (2,2) N (2,2) D (2,2)

(2,2)

E

(2,2)

E (2,2) N (2,2)

= 1 8

E (4,4) E (4,4) · N (4,4) D (4,4) ·

E (4,4)

E (4,4)

E (4,4) N (4,4)

E (2,2)

E (2,2)

E (2,2) E (2,2)

N

(4,4)

N

(4,4)

E (2,2) E (2,2)

E (2,2) E (2,2)

·

31

·

f

   E (2,2) N (2,2)  A (2,2) N (2,2)   
E (2,2)
N (2,2)
A (2,2) N (2,2)
N (4,4)
N (4,4)
 
N (2,2) A (2,2)
N (2,2) D (2,2)
·
· f
(wegen Gl. (5.8))
 
N
E (2,2)
(2,2)
 
A (2,2) N (2,2)
N (2,2) A (2,2)
N
N (4,4)
(4,4)
N (2,2) D (2,2)
1
0
0
0
1
0
0
0
1
0 0 0 0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1 0 0 0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0 1 0 0
0
0
0
1
0 −1
0
0
0
0
0
 
0
0
0
1
0
0
0
1
0
0 0 1 0
0
0
0
0
1
0 −1
0
0
0
0
= 1
·  
 
·
·
1
0
0
0 −1
0
0
0
0
0 0 0 1
0
0
0
8 
0
0
0
0
1
0
1
0
0
1
0
0
0 −1
0
0
 
0
0 0 0 0 α 1
0
0
0
0
0
0
0
1
0
1
 
 
0
0
1
0
0
0 −1
0
0
0 0 0 0
0
α 2
0
0
0
0
0
1
0 −1
0
0
0
0
1
0
0
0 −1
0
0 0 0 0
0
0
α 3
0
0
0
0
0
1
0 −1
Matrix 5
Matrix 4
Matrix 3
1
0 0
0
0 0 0
0
1 1
0
0
0
0
0
0
f 0
0
1 0
0
0 0 0
0
1 −1
0
0
0
0
0
0
f 4
 
 
 
 
0
0 1
0
0 0 0
0
0
0
1
1
0
0
0
0
 
f 2
 
·
·
 
0
0 0 α 2 0 0 0
0
0
0
1 −1
0
0
0
0
 
 
f 6
· 
0
0 0
0
1 0 0
0
0
0
0
0
1
1
0
0
f 1
 
0
0 0
0
0 1 0
0
 
0
0
0
0
1 −1
0
0
 
f 5
 
0
0 0
0
0 0 1
0
0
0
0
0
0
0
1
1
f 3
0
0 0
0
0 0 0 α 2
0
0
0
0
0
0
1 −1
f 7
Matrix 2
Matrix 1

F also aus dem permutierten Vektor f durch funf¨

Fur¨ N = 8 entsteht der Vektor

Matrixmultiplikationen. Allerdings bewirken sie (bis auf die Elemente α 1 , α 2 und α 3 )

haupts¨achlich Additionen mit oder ohne Vorzeichenflips. Daraus entsteht das bekannte

Butterfly-Schema (siehe Abb. 5.1), dessen 5 Stufen den 5 Matrizen entsprechen. Die

Division durch 8 wird ganz am Ende durch drei Bit-shift lefts erledigt.

Das Butterfly-Schema setzt voraus, das die Gr¨oße des Signalvektors f eine Zweierpotenz

ist. Es gibt Modifikationen des Butterfly-Schemas und andere schnelle Algorithmen, die

diese Voraussetzung nicht unbedingt machen.

32

f 0

f 1

f 2

f 3

f 4

f 5

f 6

f 7

f 0

f 4

f 2

f 6

f 1

f 5

f 3

f 7

− − − − + + + + + + + + α 2 α
+ +
+
+
+
+
+
+
α
2
α
2
+ +
+
+
+
+
+
+
α
α 2
α 3
+ +
+
+
+
+
+
+
F 0
F 1
F 2
F 3
F 4
F 5
F 6
F 7

Matrix 1

Matrix 2

Matrix 3

Matrix 4

Matrix 5

Abbildung 5.1: Das Butterfly-Schema

33