Sie sind auf Seite 1von 8

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 Fouriertransformatin 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!

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π = k,

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

= kn

(5.7)

(5.8)

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

stetig sein muss.

24

Fur¨ die diskrete Fouriertransformation haben wir statt einer kontinuierlichen Funktion

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.8 uber¨

in die Summe:

c n =

1

N

= F n

N1

m=0

f m e jknm

k = 2π

N

(5.9)

Umgekehrt ist, da der Signalvektor f endlich ist,

¨

f m ==

N1

n=0

F n e jknm

Wegen der Ahnlichkeit von Gleichung (5.9) mit Gleichung (5.5) und Gleichung (??) mit

Gleichung (5.6) werden die Gleichungen (??) und (5.4) auch diskretes Fouriertransfor-

mationspaar genannt – aber eigentlich ist es die diskrete Fourierreihe.

Fur¨ die folgenden Erkl¨arungen sei nun N = 8. Wir betrachten Gl. (5.9) fur¨ 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.10)

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

¨

und das Resultat ist ein Vektor F Die Matrix A erh¨alt man durch folgende Uberlegung:

e jknm = e jk n·m

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

3 D.h. uber¨

eine Variable wird summiert, die andere bleibt als Index stehen

25

= α n·m

mit α = e jk

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

Nun ist aber:

e j π 0 =

4

4

4

4

e j π 4 =

4

4

4

4

4

α

1 = e j π 1 = cos π j sin π

= e j π 2 = cos π j sin π

= e j π 3 = cos 3π j sin 3π

=

5 = e j π 5 = cos 5π j sin 5π

α 6 = e j π 6 = cos 3π j sin 3π

= e j π 7 = cos 7π j sin 7π

α 8 = e j π 8 = cos 2π j

α

α

α

α

α

α

0

2

3

4

=

cos 0 j sin 0

4

2

4

4

2

4

cos π j sin π

4

2

4

4

2

4

=

=

=

= 2 (1 + j)

= α 0

= 2 (1 j) = α 1

= α 2

= α 3

=

=

=

=

1

2 (1 j)

j

1

1

1

1

j

1

2 (1 + j)

1

7

sin 2π =

α 0

.

.

.

26

(5.11)

(5.12)

und fur¨ Gleichung (5.10) k¨onnen wir schreiben:

F

=

α 0

α

α

α

α

0

0

0

0

α

α

α

α

0

1

2

3

α

α

0

2

2

α

α

0

2

α

α

0

3

α 1

α

α

α

α

5

2

0

3

α 0 α 2

α

α 0 α 0

α 0 α 1

α 2 α 0

α 0 α 3 α 2

F = A (8,8) ·

f

α 0

α 0

α 0

α 0

α 0 α 1 α 2 α 3

α 0 α 2

α

α 0 α 0

α

α 2 α 0

α 0

0

α 2

0

α 0 α 3

α

α

α

α

2

2

α 2

α 1

α

α

α

3

2

1

0

0

0

α

α 1

α 3

Beispielsweise hat der Signalvektor

f =

2

1

2

3

0

4

3

1

die Fouriertransformierte F =

·

f

f

f

f

f

f

f

f

0

1

2

3

4

5

6

7

0.000

16.000

6.828

0.000

1.172

0.000

1.172

6.828

(5.13)

Gleichung (5.13) 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 Fast Fourier Transformation (FFT) erreicht nun durch Umordnen der Elemente der

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

27

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.13) ergibt sich

F =

A (8,8) ·

f

mit

A (8,8) : Matrix A (8,8) mit permutierten Spalten und f : Vektor f mit permutierten Elementen wobei

f =

f

f

f

f

f

f

f

f

0

4

2

6

1

5

3

7

und

A (8,8) =

α 0

α

α 0 α 0

α

α 0 α 0 α 2

α

α 0 α 0

0

0

0

α

α 2 α 2

α 0 α 0 α 0

α

0

0

α

α 1 α 1

α

α 2 α 1 α 3

α 0 α 0 α 0 α 0 α 0

α 1 α 1

α 0

α 3 α 3

α 2 α 2 α 2

α

0

0

2

α

0

α

0

α 2

α

α

α

0

α

0

α 2 α 2 α 1

α 1 α 3

α

2

α 3 α 1

3

1

α 0 α 0 α 0 α 2 α 2

α 2 α 3

α 0 α 0 α 2

28

(5.14)

wobei

A (8,8) =

α

0

0

α

α 2 α 2

α 0 α 0 α 0

α

0

0

α

0

α

2

α

α 1 α 1

α

α 1 α 3

0

2

α

0

α

α

0

3

α 3

α

0

α 2 α 2 α 2

α 1 α 1

 

α

0

α

0

α

0

α 0 α 0 α 0 α 0

α

0

α 2 α 2

α 0 α 0

α 0 α 0 α 2

α

2

α

α 2 α 2

α 3

1

α 1 α 3

α

2

α 3 α 1

α 2

α 3

α 1

   α 0 α 0

  α

   α 0 α 0 α 2

α

   α 0 α 0

  α 0

0

= A

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

(4,4)

A

(4,4)

D

(4,4)

= E (4,4)

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

E

(4,4)

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

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

D (4,4) =

α 0

0

0

0

0

α 1

0

0

0

0

α 2

0

0

0

0

α 3

,

A (4,4) =

α

α 0 α 0

α

α 0 α 0 α 2

0

0

α

α 2 α 2

α 0 α 0 α 0

α

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:

wobei D 2

A (4,4) =

α

α 0 α 0

0

α

0

α

α 2 α 2

0

α

0

0

α

α 0 α 0 α 2

α 0 α 0 α 0

α

2


=

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

A (2,2)

A (2,2) D (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)

=

α 0

0

α 0 2 ,

A 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.

29

Zusammengefasst und α 0 = 1 eingesetzt ergibt sich:

F = f A (8,8) ·   E E (2,2) (2,2) ·  
F =
f
A (8,8) ·
E
E
(2,2)
(2,2)
·
N (4,4)
E
E (4,4)
(4,4)
E (4,4) N (4,4)
E (2,2) −E (2,2)
=
·
N
E (4,4) −E (4,4)
(4,4)
D (4,4) ·
E (2,2) E (2,2)
N (4,4)
E (2,2) −E (2,2)
E (2,2)
N (2,2)
A (2,2) N (2,2)
N (4,4)
N (4,4)
N (2,2) D (2,2)
 
N (2,2) A (2,2)
· 
· f
N
E (2,2)
(2,2)
A (2,2) N (2,2)
N (4,4)
N (4,4)
N (2,2) D (2,2)
N (2,2) A (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
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 α 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 0 0
0
 0
 
1
 
0
0 1
0
1
0
0
0
0
 
 
f 2 
 0
 
1 −1
0
0 0 α 2 0 0 0
0
0
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.

30

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
α
α
+ +
+
+
+
+
+
+
α
α 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

31