Sie sind auf Seite 1von 28

12.10.

2006












Vorlesung Bildverarbeitung
Prof. Dr.-Ing. B. Lang
FH Osnabrck












1 Transformationen .......................................................................................................................................... 2
1.1 Grundlagen ............................................................................................................................................... 2
1.2 Einfhrung: Transformation eines 2-dimensionalen Vektors ................................................................... 2
1.3 Transformationen auf mehrdimensionalen Vektoren................................................................................ 5
1.4 Die Cosinustransformation ....................................................................................................................... 7
1.5 Die diskrete Fouriertransformation (DFT).............................................................................................. 15
1.6 Die schnelle Fouriertransformation (FFT).............................................................................................. 20
1.7 Walsh-Transformation............................................................................................................................ 24

Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 2 von 28
3 Frequenztransformationen
3.1 Grundlagen
Gegeben sind zwei Vektoren u und v, beide bestehen aus N Elementen, d.h. sie besitzen die Dimension N:
|
|
|
|
|

\
|
=
|
|
|
|
|

\
|
=
1
1
0
1
1
0
,
N N
v
v
v
v
u
u
u
u
M M
.
Zur Berechnung von Transformationen der Vektoren werden der Betrag eines Vektors, das Innenprodukt
zweier Vektoren und die Projektion eines Vektors auf einen zweiten bentigt.
Der Betrag (die Lnge) eines Vektors v berechnet sich zu:
(1)

=
=
1
0
2
N
i
i
v v .
Das Innenprodukt zweier Vektoren u und v ist definiert als:
(2)

=
=
1
0
,
N
i
i i
v u v u .
Die Projektion eines Vektors u auf einen Vektor v ergibt die Lnge von u in Richtung des Vektors v,
wenn man u senkrecht auf v projiziert:
.
l
v
u

Der Betrag des resultierenden Vektors l ergibt sich zu:
(3)

= =
1
0
2
1
0
,
N
i
i
N
i
i i
v
v u
v
v u
l .
Die Richtung von l entspricht der Richtung von v. Den Vektor l erhlt man somit, wenn man den
ermittelten Betrag |l| mit einem Einheitsvektor in Richtung von v multipliziert. Den Einheitsvektor
erhlt man, indem man den Vektor v durch seinen Betrag teilt. Damit ergibt sich der Vektor l zu:
(4) v
v
v u
v
v
v
v u
l
2
, ,
= = .
3.2 Einfhrung: Transformation eines 2-dimensionalen Vektors
Gegeben sei ein zweidimensionales Basissystem (N=2) mit den Basisvektoren x
e
und y
e
.
(5)
|
|

\
|
=
|
|

\
|
=
1
0
;
0
1
e e
y x .
Ein beispielhafter Punkt s=(2 1,5)
T
lsst sich damit durch x
e
und y
e
ausdrcken:
(6)
e e
y x s + =
|
|

\
|
= 5 , 1 2
5 , 1
2
.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 3 von 28
Grafisch lsst sich der Sachverhalt wie folgt darstellen:
s
x
e
y
e
x
y
2x
e
1,5y
e

Eigenschaften von Basissystemen:
Orthogonale Basis: Die Projektion eines jeden Basisvektors auf einen anderen muss 0 ergeben, dann sind
diese Vektoren zueinander orthogonal und bilden eine orthogonale Basis.
Orthonormale Basis: Besitzen alle Basisvektoren eines Basissystems die Lnge 1, dann bilden sie eine
orthonormale Basis.
In jedem Vektorraum existieren beliebig viele Basissysteme.
Festlegung eines zweiten Basissystems
Im zweidimensionalen Raum knnen andere Basissysteme als das gewhlte System mit x
e
und y
e
gewhlt
werden, beispielsweise die Vektoren a
e
und b
e
:
(7)
|
|

\
|
=
|
|

\
|
=
1
1
;
1
1
e e
b a .
x
e
y
e
x
y
a
e
b
e

Diese beiden Vektoren sind zueinander orthogonal, denn es gilt:
(8) 0 1 1 ) 1 ( 1 , = + =
e e
b a .
Bei der Projektion von a
e
auf b
e
und umgekehrt erhlt man somit nach Gleichung (3) die Lnge 0.
Die beiden Vektoren bilden somit eine orthogonale Basis. Die Basis ist jedoch nicht orthonormal, da die
Lngen der Vektoren ungleich 1 sind:
(9) 2 1 1
2 2
= + =
e
a
(10) 2 1 ) 1 (
2 2
= + =
e
b .
Hintransformation
Der Punkt s, der bisher im Basissystem (x
e
,y
e
) dargestellt wurde, kann nun auf das neue Basissystem (a
e
,b
e
)
projiziert werden. Dazu wird s nach Gleichung (4) einmal auf a
e
und einmal auf b
e
projiziert. Addition der
beiden resultierenden Vektoren ergibt die neue Darstellung von p:
(11)
) , (
) , (
2
2
) , (
2
2
2 2
4 / 1
4 / 7
2
1 5 , 1 ) 1 ( 2
2
1 5 , 1 1 2
,
,
, ,
e e
e e
e e
b a
b a
b a
e
e
e
e
e
e
e
e
e
e
b
b s
a
a s
b
b
b s
a
a
a s
s
|
|

\
|

=
|
|
|
|
|

\
|
+
+
=
|
|
|
|
|

\
|
= + = .
Zu beachten ist, dass nun die Vektoren mit dem zugehrigen Basissystem (a
e
,b
e
) gekennzeichnet sind. In den
Gleichungen vorher msste man aus Grnden der Eindeutigkeit die Kennzeichnung (x
e
,y
e
) ergnzen, z.B:
) , ( ) , ( ) , (
1
1
;
1
1
;
5 , 1
2
e e e e e e
y x
e
y x
e
y x
b a s
|
|

\
|
=
|
|

\
|
=
|
|

\
|
= .
Wird die Kennzeichnung weggelassen, soll daher immer das ursprngliche Basissystem (Originalsystem)
angenommen werden.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 4 von 28
Wie auch der Vektor s knnen nun die ursprnglichen Basisvektoren x
e
und y
e
bezglich des neuen
Basissystems dargestellt werden. Die Umrechnung erfolgt entsprechend wie in Gleichung (11):
(12)
) , (
) , (
2
2
) , (
2
2
2 / 1
2 / 1
2
1 0 ) 1 ( 1
2
1 0 1 1
,
,
e e
e e
e e
b a
b a
b a
e
e e
e
e e
e
b
b x
a
a x
x
|
|

\
|

=
|
|
|
|
|

\
|
+
+
=
|
|
|
|
|

\
|
=
(13)
) , (
) , (
2
2
) , (
2
2
2 / 1
2 / 1
2
1 1 ) 1 ( 0
2
1 1 1 0
,
,
e e
e e
e e
b a
b a
b a
e
e e
e
e e
e
b
b y
a
a y
y
|
|

\
|
=
|
|
|
|
|

\
|
+
+
=
|
|
|
|
|

\
|
= .
Allgemeine Anmerkungen zur Hintransformation
Nach Gleichung (11) kann die Hintransformation eines im Originalsystem (x
e
,y
e
) gegebenen Vektors s in ein
zweites Basissystem (a
e
,b
e
) wie folgt beschrieben werden:
(14)
) , (
2
) , (
2
) , (
) , (
,
,
e e
e e
e e
e e
b a
e
e y x
e
e y x
b a
b
b s
a
a s
s
|
|
|
|
|

\
|
= .
Man erkennt, dass bei einem orthonormalen Basissystem (a
e
,b
e
) die Nenner auf der rechten Seite von
Gleichung (14) zu 1 werden. Somit reduziert sich in diesem Fall die Berechnung der Koeffizienten auf die
Berechnung des Innenprodukts:
(15)
) , (
) , (
) , (
) , (
,
,
e e
e e
e e
e e
b a
e y x
e y x
b a
b s
a s
s
|
|

\
|
= bei orthonormaler Basis (a
e
,b
e
).
Rcktransformation
Bei der Hintransformation wurde der der bezglich (x
e
,y
e
) dargestellte Vektor s auf die Basisvektoren des
neuen Basissystems (a
e
,b
e
) projiziert und man erhielt die Darstellung von s bezglich (a
e
,b
e
). Das gleiche
Vorgehen fhrt man auch bei der Rcktransformation durch, nur dass nun der Vektor s zunchst bezglich
(a
e
,b
e
) vorliegt und somit auf (x
e
,y
e
) projiziert werden muss.
Zu beachten ist, dass im Beispiel die beiden Basisvektoren x
e
und y
e
in ihrer Darstellung bezglich (a
e
,b
e
)
(siehe Gleichungen (12) und (13)) keine orthonormale Basis mehr bilden, sondern nur noch eine orthogonale
Basis:
(16) 2
2
1
) 2 / 1 ( ) 2 / 1 (
2 2
) , (
= + =
e e
b a e
x
(17) 2
2
1
) 2 / 1 ( ) 2 / 1 (
2 2
) , (
= + =
e e
b a e
y .
Zur Rcktransformation findet wieder Gleichung (4) Anwendung, um nun die Projektion von s auf x
e
und y
e

zu berechnen:
(18)
) , (
) , (
2
2
) , (
2
2
5 , 1
2
2
2
1
2
1
4
1
2
1
4
7
2
2
1
)
2
1
(
4
1
2
1
4
7
,
,
e e
e e
e e
y x
y x
y x
e
e
e
e
y
y s
x
x s
s
|
|

\
|
=
|
|
|
|
|
|
|
|
|
|

\
|
|

\
|

|

\
|

=
|
|
|
|
|

\
|
= .
Wie zu erwarten erhlt man damit wieder den in Gleichung (6) vorgegebenen Wert.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 5 von 28
Interpretation des Vorgehens
Es stellt sich nun die Frage, wozu solche Transformationen notwendig sind. Sie sind hilfreich, um eine
andere Sicht auf die Daten zu erhalten.
Bei jeder Sicht auf die Daten sind bestimmte Eigenschaften der Daten einfach abzulesen, andere
Eigenschaften mssen hingegen erst aufwndig berechnet werden. Bei geeigneter Transformation knnen
jedoch Eigenschaften, die in der ersten Sicht schwer zu erkennen sind, in der transformierten Sicht direkt
ablesbar sein.
Angenommen der Vektor s des Beispiels enthalte zwei aufeinander folgende Abtastwerte s(0) und s(1) z.B.
eines Audiosignals. Dann kann man in der (x
e
,y
e
)-Sicht diese Abtastwerte direkt an den Koeffizienten zu x
e

und y
e
ablesen.
(19)
) , ( ) , (
) 1 (
) 0 (
e e e e
e
e
y x y x
y
x
s
s
s
s
s
|
|

\
|
=
|
|

\
|
= .
In der (a
e
,b
e
)-Sicht kann hingegen am Koeffizient zu a
e
der Mittelwert und am Koeffizient zu b
e
die
Differenz der beiden Abtastwerte abgelesen werden:
(20)
( )
( )
) , (
) , ( ) 0 ( ) 1 (
2
1
) 1 ( ) 0 (
2
1
e e
e e
e
e
b a
b a
b
a
s s
s s
s
s
s
|
|
|
|

\
|

+
=
|
|

\
|
= .
Ein Signalverlauf aus s(0) und s(1) muss somit wie folgt gewichtet und aufakkumuliert werden, um die
gezeigten Koeffizienten zu ermitteln:
e
x
s
s(0) s(1)
e
y
s
e
a
s
e
b
s
Koeffizienten fr (x
e
,y
e
)
Koeffizienten fr (a
e
,b
e
)

Die oberen beiden Gewichtsfunktion liefern die Koeffizienten fr (x
e
,y
e
), die unteren beiden Funktionen die
Koeffizienten fr (a
e
,b
e
).
Werden alle Koeffizienten fr ein Basissystem ermittelt, ist sicher gestellt, dass die in den Originaldaten
enthaltene Information vollstndig erfasst wird.
Fazit der Einfhrung
Transformationen dienen dazu, eine neue Sicht auf die Daten eines Vektors zu erhalten. Ziel dabei ist es,
interessierende Eigenschaften besser erkennen und bentigte Operationen einfacher durchfhren zu
knnen.
3.3 Transformationen auf mehrdimensionalen Vektoren
Das im vorhergehenden Abschnitt beschriebene Vorgehen der Koordinatentransformation lsst sich direkt
auf mehrdimensionale Vektoren erweitern. Orthogonalitt bedeutet nun, dass jeder Basisvektor eines
Systems senkrecht auf allen brigen Basisvektoren steht.
Ein Vektor s
(Be)
sei bezglich eines N-dimensionalen, orthogonalen Basissystems B
e
=(b
0
, b
1
, ..., b
N-1
)
dargestellt. Dabei stehen die b
i
fr die N Basisvektoren des Systems. Der Vektor s
(Be)
soll in eine Darstellung
s
(Te)
bezglich des N-dimensionalen, orthogonalen Basissystems T
e
=(t
0
, t
1
, ..., t
N-1
) berfhrt werden.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 6 von 28
Hintransformation
Die i-te Komponente s
i(Te)
des transformierten Vektors s
(Te)
lsst sich durch Projektion von s
(Be)
auf den i-ten
Basisvektor t
i(Be)
in der Darstellung in B
e
gem Gleichung (4) ermitteln:
(21)
2
) (
) ( ) (
) (
,
e
e e
e
B i
B i B
T i
t
t s
s = .
Damit ergibt sich der transformierte Vektor s
(Te)
zu:
(22) ( )
T
T N T i T T T
e e e e e
s s s s s
) ( 1 ) ( ) ( 1 ) ( 0 ) (
... ...

= .
Die Transformation lsst sich bersichtlich in Matrixschreibweise darstellen. Dazu wird folgende Matrix T
aufgestellt:
(23)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
=

2
) ( 1
) ( 1
2
) (
) (
2
) ( 1
) ( 1
2
) ( 0
) ( 0
e
e
e
e
e
e
e
e
B N
T
B N
B i
T
B i
B
T
B
B
T
B
t
t
t
t
t
t
t
t
T
M
M
.
Die mit dem Quadrat ihres Betrags normierten Basisvektoren t
i(Be)
des transformierten Basissystems werden
zeilenweise in der Matrix angeordnet.
Mit der Matrix T lsst sich nun die Transformation als Multiplikation der Matrix mit dem Vektor p
(Be)

formulieren, mit der Matrix-Vektor Multiplikation werden alle bentigten Innenprodukte berechnet:
(24)
) ( ) (
e e
B T
s T s = .
Ist das Basissystem T
e
orthonormal, d.h. alle Basisvektoren haben die Lnge 1, dann vereinfacht sich die
Gleichung (23) der Transformationsmatrix T zu:
(25)
|
|
|
|
|
|
|
|

\
|
=

T
B N
T
B i
T
B
T
B
e
e
e
e
t
t
t
t
T
) ( 1
) (
) ( 1
) ( 0
M
M
(bei orthonormalen Basissystemen).
Die Zeilen der Transformationsmatrix enthalten dann direkt die Basisvektoren t
i
des transformierten Systems.
Rcktransformation
Zur Rcktransformation kann man in der Weise vorgehen, wie dies oben fr die zweidimensionale
Transformation erlutert wurde. Man transformiert zunchst die Basisvektoren b
i
des Originalsystems in das
transformierte System:
(26)
) ( ) (
e e
B i T i
b T b = .
Beachtenswert ist, dass beim Basisvektor b
i(Be)
genau der Koeffizient i den Wert 1 und alle brigen
Koeffizienten den Wert 0 besitzen. Damit wird mit Gleichung (26) genau der Spaltenvektor i aus der
Transformationsmatrix T entnommen und als Basisvektor b
i(Te)
verwendet. Die Transformationsmatrix T
kann somit als eine Zeile interpretiert werden, welche die Basisvektoren des Originalraums in ihrer
Darstellung im transformierten Raum enthlt:
(27) ( )
) ( 1 ) ( ) ( 1 ) ( 0
e e e e
T N T i T T
b b b b T

= L L .
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 7 von 28
Entsprechend Gleichung (23) kann nun die Rcktransformationsmatrix B aufgestellt werden:
(28)
|
|
|
|
|
|
|
|
|
|
|
|
|
|

\
|
=

2
) ( 1
) ( 1
2
) (
) (
2
) ( 1
) ( 1
2
) ( 0
) ( 0
e
e
e
e
e
e
e
e
T N
T
T N
T i
T
T i
T
T
T
T
T
T
b
b
b
b
b
b
b
b
B
M
M
.
Auch hier vereinfacht sich im Falle eines orthonormalen Basissystems die Transformationsmatrix B
entsprechend Gleichung (25). Bemerkenswert ist dabei, dass in diesem Fall die Transformationsmatrizen T
und B zur Hin- und Rcktransformation zueinander transponiert sind (siehe Gleichung (27)):
(29)
T
T
T N
T
T i
T
T
T
T
T
b
b
b
b
B
e
e
e
e
=
|
|
|
|
|
|
|
|

\
|
=
) ( 1
) (
) ( 1
) ( 0
M
M
(bei orthonormalen Basissystemen).
Nun knnen beliebige Vektoren aus ihrer Darstellung s
(Te)
im transformierten Raum zurck in ihre
Darstellung s
(Be)
im Originalraum transformiert werden:
(30)
) ( ) (
e e
T B
s B s = .
Eine zu den Gleichungen (26)-(29) alternative Ermittlung der Rcktransformationsmatrix B geht direkt von
Gleichung (24) aus. Auflsung nach s
(Be)
ergibt:
) (
1
) ( ) (
1
) (
1
) ( ) (
e e e e e e
T B B T B T
s T s s T T s T s T s = = =

.
Somit erhlt man die Rcktransformationsmatrix B durch invertieren der Transformationsmatrix: B=T
-1
.
3.4 Die Cosinustransformation
Bei der Cosinustransformation wird ein Vektor s
(Be)
=(s
0
s
1
.. s
N-1
)
T
der Dimension N in eine Darstellung s
(Te)

transformiert, in der die einzelnen Koeffizienten Anteile aufsteigender Frequenz beschreiben. In den
Koeffizienten mit niedrigem Index werden die Informationen der niedrigen Frequenzen konzentriert, in den
Koeffizienten mit hohem Index hochfrequente Informationen.
Die Zerlegung in hohe und niedrige Frequenzanteile ist bei der Cosinustransformation jedoch keine exakte
Freuenzanalyse, diese muss mit der in Abschnitt 3.5 erluterten Digitalen Fouriertransformation
durchgefhrt werden. Im Gegensatz zur Fouriertransformation, welche eine Rechnung mit komplexen
Zahlen bedingt, kann die Cosinustransformation aber mit reeller Rechnung durchgefhrt werden.
In der Signalverarbeitung fllt man den Vektor s
(Be)
typischerweise mit rtlichen oder zeitlichen
Abtastwerten von Signalen, beispielsweise mit den Pixelwerten einer Bildzeile oder den Abtastwerten eines
Audiosignals.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 8 von 28
Hintransformation
Zur Transformation eines Vektors bentigt man die Basisvektoren t
i
des transformierten Systems in der
Darstellung des Originalsystems B
e
. Bei der Cosinusfunktion enthalten die Basisvektoren Vielfache einer
halben Periode der Cosinusfunktion. Der Basisvektor t
i(Be)
ist wie folgt definiert:
(31)
|
|
|
|
|
|
|
|
|
|
|
|

\
|
|

\
|
|

\
| +
|

\
| +
|

\
|
=
|
|
|
|
|
|
|
|

\
|
=

N
i N
N
i k
N
i
N
i
i
t
t
t
t
t
e
e
e
e
e
B N i
B k i
B i
B i
B i

) 2 / 1 (
cos
) 2 / 1 (
cos
) 2 / 1 1 (
cos
) 2 / 1 (
cos
) (
) ( 1 ,
) ( ,
) ( 1 ,
) ( 0 ,
) (
M
M
M
M

Die Werte (i) sind Gewichtsfaktoren, die spter in Gleichung (32) erlutert werden.
Beispiel: Beispielhafte Basisvektoren der Cosinustransformation mit N=8.
Basisvektor t
0(Be)
:
Der Basisvektor t
0(Be)
enthlt 0 Vielfache der halben Periode, damit besitzen alle Koeffizienten den
gleichen Wert (0). Bei der Transformation werden mit diesem Basisvektor somit alle Koeffizienten
des Signalvektors gewichtet mit (0) aufsummiert.
Basisvektor t
1(Be)
:
Der Basisvektor t
1(Be)
enthlt 1 Vielfaches der halben Periode. Stellt man seine Koeffizienten grafisch
dar, so ergibt sich folgende Abbildung:
0 1 2 3
5 6 7
k
t
1(Be)
4

Basisvektor t
2(Be)
:
Der Basisvektor t
2(Be)
enthlt 2 Vielfache der halben Periode, also genau eine Periode. Stellt man seine
Koeffizienten grafisch dar, so ergibt sich folgende Abbildung:
0 1
2 3 5
6 7
k
t
2(Be)
4

Die konstanten Faktoren (i) sind so gewhlt, dass die Cosinustransformation eine orthonormale
Transformation wird. Damit ergeben sich die (i) zu:
(32)


=
=
1 1 fr
2
0 fr
1
) (
N- i
N
i
N
i
Damit kann die Transformationsmatrix T nach Gleichung (25) aufgestellt und die Transformation gem
Gleichung (24) durchgefhrt werden.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 9 von 28
Beispiel: Ermittlung der Basisvektoren und Aufstellen der Transformationsmatrix fr die
Cosinustransformation mit N=4.
) (
) (
) ( 0
5 , 0
5 , 0
5 , 0
5 , 0
4
0 2 / 7
cos
4
0 2 / 5
cos
4
0 2 / 3
cos
4
0 2 / 1
cos
4
1
BE
BE
B
e
t
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|
|
|
|

\
|
|

\
|
|

\
|
|

\
|
|

\
|
=


) (
) (
) ( 1
6533 , 0
2706 , 0
2706 , 0
6533 , 0
4
1 2 / 7
cos
4
1 2 / 5
cos
4
1 2 / 3
cos
4
1 2 / 1
cos
4
2
BE
BE
B
e
t
|
|
|
|
|

\
|

|
|
|
|
|
|
|
|
|
|

\
|
|

\
|
|

\
|
|

\
|
|

\
|
=


) (
) (
) ( 2
5 , 0
5 , 0
5 , 0
5 , 0
4
2 2 / 7
cos
4
2 2 / 5
cos
4
2 2 / 3
cos
4
2 2 / 1
cos
4
2
BE
BE
B
e
t
|
|
|
|
|

\
|

|
|
|
|
|
|
|
|
|
|

\
|
|

\
|
|

\
|
|

\
|
|

\
|
=


) (
) (
) ( 3
2706 , 0
6533 , 0
6533 , 0
2706 , 0
4
3 2 / 7
cos
4
3 2 / 5
cos
4
3 2 / 3
cos
4
3 2 / 1
cos
4
2
BE
BE
B
e
t
|
|
|
|
|

\
|

|
|
|
|
|
|
|
|
|
|

\
|
|

\
|
|

\
|
|

\
|
|

\
|
=


Da die Basisvektoren der Cosinustransformation ein orthonormales Basissystem bilden, kann direkt aus
den Basisvektoren die Transformationsmatrix aufgestellt werden (siehe Gleichung (25)):
|
|
|
|
|

\
|



=
|
|
|
|
|

\
|
=
2706 , 0 6533 , 0 6533 , 0 2706 , 0
5 , 0 5 , 0 5 , 0 5 , 0
6533 , 0 2706 , 0 2706 , 0 6533 , 0
5 , 0 5 , 0 5 , 0 5 , 0
) ( 3
) ( 2
) ( 1
) ( 0
T
B
T
B
T
B
T
B
e
e
e
e
t
t
t
t
T

Beispiel: Cosinustransformation eines Vektors s
(Be)
mit N=4.
Gegeben sei der folgende Vektor:
) (
) (
5 , 1
3
2
1
BE
B
e
s
|
|
|
|
|

\
|
=
.
Dann kann dieser Vektor durch die Basisvektoren des Originalsystems ausgedrckt werden:
3 2 1 0
5 , 1 3 2 1 b b b b s + + + =
.
Die Cosinustransformation kann mittels Matrixmultiplikation mit T realisiert werden (Gleichung (24)).
Die Matrix T kann dem vorhergehenden Beispiel entnommen werden:
) ( ) (
) ( ) (
5180 , 0
2500 , 1
5972 , 0
7500 , 3
5 , 1
3
2
1
2706 0 6533 0 6533 0 2706 0
5 0 5 0 5 0 5 0
6533 0 2706 0 2706 0 6533 0
5 0 5 0 5 0 5 0
e e
e e
T B
B T
, , , ,
, , , ,
, , , ,
, , , ,
s T s
|
|
|
|
|

\
|

|
|
|
|
|

\
|

|
|
|
|
|

\
|



= =
.
Damit lsst sich nun der Vektor s auch mittels der Basisvektoren des transformierten Systems
ausdrcken:
3 2 1 0
5180 , 0 2500 , 1 5972 , 0 7500 , 3 t t t t s +
.
Verwendet man die Darstellung der Basisvektoren t
i(Be)
im Originalraum, so ergibt sich:
|
|
|
|
|

\
|

|
|
|
|
|

\
|

+
|
|
|
|
|

\
|


|
|
|
|
|

\
|


|
|
|
|
|

\
|

5 , 1
3
2
1
2706 , 0
6533 , 0
6533 , 0
2706 , 0
518 , 0
5 , 0
5 , 0
5 , 0
5 , 0
25 , 1
6533 , 0
2706 , 0
2706 , 0
6533 , 0
5972 , 0
5 , 0
5 , 0
5 , 0
5 , 0
75 , 3
) (
e
B
s
.
Man erhlt somit wieder, wie erwartet, die Darstellung des Vektors s
(Be)
im Originalsystem.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 10 von 28
Anschaulich wird das Vorgehen, wenn man die 4 gewichteten Basisvektoren t
i(Be)
und den Signalvektor
s
(Be)
ber dem Index ihrer Koeffizienten darstellt (z.B. Abtastwerte ber der Zeit, Pixelwerte ber einer
Bildzeile). Dann erkennt man, wie sich der Originalvektor aus der Summe der gewichteten
Basisvektoren zusammensetzt:
-1
-0,5
0
0,5
1
1,5
2
2,5
3
3,5
1 2 3 4
3,73*t0
-5,972*t1
-1,25*t2
5,18*t3
s

Rcktransformation
Die zur Rcktransformation bentigten Basisvektoren b
i(Te)
des Originalraums in der Darstellung im
transformierten Raum lassen sich direkt den Spalten der Transformationsmatrix T entnehmen (siehe
Gleichung (27)). Da wegen der Orthonormalitt der Cosinustransformation T auch zeilenweise aus den
Basisvektoren t
k(Be)
des transformierten Raums besteht, knnen die Elemente von b
i(Te)
direkt den Elementen
der t
k(Be)
entnommen werden (siehe Gleichung (29)).
Das erste Element b
i,0(Te)
des Basisvektors b
i(Te)
entspricht beispielsweise dem Element t
0,i(Be)
des
Basisvektors t
0(Be)
, allgemein entspricht das Element b
i,k(Te)
dem Element t
k,i(Be)
. Die Vertauschung der Indizes
entspricht der in Gleichung (29) angegebenen Transponierung. Somit ergeben sich die Basisvektoren b
i(Te)

wie folgt:
(33)
|
|
|
|
|
|
|
|
|
|
|
|

\
|
|

\
| +

|

\
| +

\
| +

\
| +

=
|
|
|
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|
|

\
|
=

N
N i
N
N
k i
k
N
i
N
i
t
t
t
t
b
b
b
b
b
e
e
e
e
e
e
e
e
e
B i N
B i k
B i
B i
T N i
T k i
T i
T i
T i

) 1 ( ) 2 / 1 (
cos ) 1 (
) 2 / 1 (
cos ) (
1 ) 2 / 1 (
cos ) 1 (
0 ) 2 / 1 (
cos ) 0 (
) ( , 1
) ( ,
) ( , 1
) ( , 0
) ( 1 ,
) ( ,
) ( 1 ,
) ( 0 ,
) (
M
M
M
M
M
M

Beispiel: Hin- und Rcktransformation eines 16-Bit-Vektors mit Lschen von Koeffizienten
im Cosinus-Raum.
Gegeben ist ein 16-Bit Vektor im Originalraum:
s
(Be)
= ( 0,0 0,3 0,4 0,5 0,7 0,9 0,7 0,6 0,2 -0,4 -0,7 -0,6 -1,0 -0,9 -0,7 -0,4)
T

Der 16-Bit Vektor wird mit der Cosinustransformation in den Cosinus-Raum transformiert.
Dort sollen die Koeffizienten des transformierten Vektors wie folgt manipuliert werden: Die
Koeffizienten mit niedrigen Indizes bleiben unverndert und Koeffizienten mit hohen Indizes werden
gelscht, d.h. zu 0 gesetzt.
Die modifizierten Vektoren werden wieder zurck in den Originalraum transformiert. Dort wird damit
die Information, die in den verbleibenden Koeffizienten steckt, im Vergleich zum Original sichtbar.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 11 von 28
Nachfolgendes Diagramm zeigt die Ergebnisse fr unterschiedliche Anzahlen erhaltener Koeffizienten:
-1,500
-1,000
-0,500
0,000
0,500
1,000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Originalvekt or
Koeffizient en 0-14
Koeffizient en 0-6
Koeffizient en 0-2
Koeffizient 0

Lscht man alle Koeffizienten auer Koeffizient 0, so ergibt sich eine horizontale Gerade. Koeffizient 0
im Cosinus-Raum enthlt den Mittelwert des Signalverlaufs.
Lsst man weitere Koeffizienten unverndert (z.B. 0-2), so erhlt man zunchst eine Anpassung an die
grobe Form des Signalverlaufs. Das Hinzunehmen weiterer hoher Koeffizienten nhert den Signalver-
lauf immer genauer an den Originalverlauf an. Den Originalverlauf erreicht man schlielich, wenn alle
16 Koeffizienten im Cosinus-Raum unverndert bleiben.
Cosinustransformation auf zweidimensionalen Daten
Zweidimensionale Daten (z.B. Bilder) lassen sich zeilen- und spaltenweise zerlegen. Damit erhlt man
entweder:
eine Spalte von N Zeilenvektoren oder
eine Zeile von M Spaltenvektoren.
Nachfolgend wird eine Anzahl N von Zeilen und M Spalten angenommen. Damit lsst sich ein Bild wie
folgt beschreiben:
(34)
|
|
|
|
|

\
|
=

) 1 )( 1 ( 1 ) 1 ( 0 ) 1 (
) 1 ( 1 11 10
) 1 ( 0 01 00
) (
M N N N
M
M
B
p p p
p p p
p p p
I
e
L
M O M M
L
L

(35)
|
|
|
|
|

\
|
=
|
|
|
|
|

\
|
=

) 1 (
1
0
) 1 (
1
0
) (
mit oren Zeilenvekt von Spalte
M i
i
i
i
T
N
T
T
B
p
p
p
z
z
z
z
I
e
M
M

(36) ( )
|
|
|
|
|

\
|
= =

i N
i
i
i M B
p
p
p
s s s s I
e
) 1 (
1
0
) 1 ( 1 0 ) (
mit toren Spaltenvek von Zeile
M
L
Die Cosinustransformation auf zweidimensionalen Daten ist eine separierbare und lineare Funktion im
Sinne der Signaltheorie. Dies bedeutet, dass die Cosinustransformation zunchst auf den Spalten und dann
auf den Zeilen (oder auch umgekehrt zunchst auf den Zeilen und dann auf den Spalten) durchgefhrt
werden kann.
Im Folgenden soll die Transformationsmatrix T mit der Gre der zugehrigen Vektoren gekennzeichnet
werden. T
N
bezeichnet dann eine Transformationsmatrix fr N-dimensionale Vektoren.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 12 von 28
Die Cosinustransformation auf den einzelnen Spalten nach Gleichung (24) kann in einer einzelnen
Matrixmultiplikation ausgedrckt werden, da die Spaltenvektoren als Zeile im Bild I
(Be)
gespeichert sind
(siehe Gleichung (35)):
(37)
) (
e
B M Tmp
I T I =
Man erhlt ein temporres Bild I
Tmp
, das in Richtung der Spalten bereits transformiert, in Richtung der
Zeilen aber noch im Originalraum dargestellt ist.
Zur nachfolgenden Transformation der Zeilen mssen diese als Zeile von Zeilenvektoren vorliegen. Dazu
muss das Bild transponiert werden:
(38) ( )
|
|
|
|
|

\
|
= =

) 1 (
1
0
) 1 ( 1 0
mit oren Zeilenvekt von Zeile
M i
i
i
i N
T
p
p
p
z z z z I
M
L
Im vorliegenden Fall wird das temporre Bild I
Tmp
transponiert, dann kann gem Gleichung (24) die
Transformation auf allen Zeilen durchgefhrt werden:
(39) ( )
T
T
Tmp N T
T
Tmp N
T
T
I T I I T I
e e
= =
) ( ) (

Zu beachten ist, dass durch das Transponieren von I
Tmp
sich mit der Matrixmultiplikation ein transponiertes
Bild im Cosinus-Raum ergibt. Somit muss das Ergebnis nochmals transponiert werden. Diese doppelte
Transponierung lsst sich vermeiden, wenn die Transformationsmatrix T
N
der Zeilen in transponierter Form
von rechts mit dem Spalten-transformierten Bild multipliziert wird. Die Zusammenfassung der Gleichungen
(37) und (39) ergibt damit:
(40) ( )
4 4 4 3 4 4 4 2 1
43 42 1
sformation Zeilentran
T
N
n nsformatio Spaltentra
B M Te
T I T I
e
=
) ( ) (

Bemerkenswert ist, dass in dieser Form nur die Transformationsmatrix T
N
in transponierter Form bentigt
wird. Diese kann in transponierter Form abgelegt werden. Eine Transponierung der Bilddaten ist nicht
erforderlich.
Beispiel: Transformationsschema fr ein 3x3 Bild.
Spaltentransformation:
) ( 3
,
) ( 2 ) ( 1 ) ( 0
2
1
0
,
2 1 0
) (
3
e
e
B
e e e
Tmp
B
toren Spaltenvek
in zerlegt
I Quellbild
B B B
ren Basisvekto
aus T matrix
tions Transforma
toren Spaltenvek
in zerlegt I
Bild formiertes
ns Spaltentra
Tmp
I T s s s
t
t
t
x x x I =
|
|
|

\
|

|
|
|

\
|
=
|
|
|

\
|
=

4 4 4 3 4 4 4 2 1 43 42 1 43 42 1

Zeilentransformation
3 2 1 0
,
2
1
0
sin
) ( 3 ) ( 1 ) ( 0 ) (
3 ) (
T I t t t
y
y
y
s s s I
Tmp
ren Basisvekto
aus T matrix
tions Transforma
rte Transponie
oren Zeilenvekt
in zerlegt I
Bild formiertes
ns Spaltentra
I Bild
ertes transformi
us Co
T T T T
Tmp e
T
e e e e
=
|
|
|

\
|

|
|
|

\
|
=
|
|
|

\
|
=


43 42 1 43 42 1 4 4 3 4 4 2 1

Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 13 von 28
Beispiel: Cosinustransformation eines Bildes

Originalbild.
Gre 256256 Pixel
Cosinus-transformiertes Bild.
Koeffizient mit Index (0,0) liegt unten links.
Zur besseren Darstellung wurde eine Gamma-
Korrektur mit =0,4 vorgenommen und der
Koeffizient (0,0) knstlich verkleinert.
Man erkennt, dass die Werte der Koeffizienten unten links die hchsten Werte annehmen und in
Richtung nach oben rechts abnehmen. Die meiste Information ist somit im Bereich kleiner
Koeffizienten abgelegt.
Erkennbar wird dies auch, wenn man im transformierten Raum hohe Koeffizienten zu 0 setzt und das
Bild in den Originalraum rcktransformiert. In den nachfolgenden Bildern sind Koeffizienten in
quadratischen Bereichen der linken unteren Ecke im transformierten Raum erhalten worden, der Rest
der Koeffizienten ist zu 0 gesetzt.
128x128
64x64
Bild im transformierten
Raum mit Markierungen
fr erhaltene Koeffizienten-
bereiche.
Rcktransformiertes Bild
aus 2x2 Koeffizienten.
Rcktransformiertes Bild
aus 4x4 Koeffizienten.
Rcktransformiertes Bild
aus 8x8 Koeffizienten.
Rcktransformiertes Bild
aus 16x16 Koeffizienten.
Rcktransformiertes Bild
aus 32x32 Koeffizienten.
Rcktransformiertes Bild
aus 64x64 Koeffizienten.
Rcktransformiertes Bild
aus 128x128 Koeffizienten.

Schon mit kleinen Koeffizientenbereichen (z.B. 32x32, dies entspricht ca. 1,6% der Bildflche) sind die
groben Umrisse des rcktransformierten Bildes gut zu erkennen. Mit ansteigender Gre des
Koeffizientenbereichs steigt die Schrfe des Bildes und immer mehr Details sind erkennbar.
Frequenzdarstellung der Cosinustransformation
Die Cosinustransformation zerlegt, wie erlutert, ein Originalsignal in Anteile, die durch Cosinusfunktionen
aus Vielfachen der halben Periodenlnge beschrieben sind (siehe Gleichung (31)). Diese Zerlegung ist
jedoch keine exakte Frequenzanalyse, wie das nachfolgende Beispiel zeigt.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 14 von 28
Beispiel: Transformation einer phasenverschobenen Periode einer Cosinusfunktion mit der
Cosinustransformation.
Zunchst soll eine Periode der Cosinusfunktion in den Cosinus-Raum transformiert werden. Die
Elemente s
i(Be)
des Signalvektors s
(Be)
errechnen sich wie folgt:
|

\
|

+
= 2
2 / 1
cos
N
i
s
i

Nachfolgendes Diagramm zeigt den Signalvektor sowohl im Originalraum als auch im Cosinus-Raum:

Wie erwartet bildet sich das Signal im Cosinus-Raum auf genau den zweiten Koeffizienten ab, da das
Signal in der gewhlten Form genau dem Basisvektor t
2
entspricht. Die unterschiedlichen Amplituden
zwischen Signal und Basisvektor werden durch den Wert des Koeffizienten angepasst.
Verschiebt man nun das Signal im Originalraum in seiner Phase, so verndert sich die Frequenz des
Signals nicht. Folgender Signalvektor mit verschobener Phase soll verwendet werden:
|
|

\
|
|

\
|
+
+
= 2 1 , 0
2 / 1
cos
N
i
s
i

Damit erhlt man folgende Darstellung des Signalvektors im Originalraum und im Cosinus-Raum:

Es zeigt sich, dass dieses Signal mit gleicher Frequenz aber unterschiedlicher Phase durch mehrere
Basisvektoren des Cosinus-Raums dargestellt werden muss. Zwar hat t
2
noch das grte Gewicht, die
Gewichte zu t
1
und t
3
liegen jedoch in hnlicher Grenordnung.
Wie das Beispiel zeigt, ist die Cosinustransformation zwar fr eine qualitative Sortierung der
Frequenzanteile von Signalen geeignet, fr eine exakte Frequenzmessung kann sie jedoch nicht verwendet
werden. Dazu dient die nachfolgend beschriebene Fouriertransformation.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 15 von 28
3.5 Die diskrete Fouriertransformation (DFT)
Bei der diskreten Fouriertransformation werden die Elemente des Signalvektors s als komplexe Zahlen
dargestellt. Will man Vektoren mit reellen Werten Fourier-transformieren, werden die Werte zu komplexen
Zahlen mit Imaginrteil gleich 0 erweitert.
Dazu mssen die Gleichungen (1) und (2) fr die komplexe Rechnung erweitert werden. Ein hochgestellter
Stern * markiert dabei den konjugiert komplexen Wert eines vorgegebenen Elements.
Der Betrag (die Lnge) eines Vektors v aus komplexen Elementen berechnet sich zu:
(41)

=
=
1
0
*
N
i
i i
v v v .
Das Innenprodukt zweier Vektoren u und v ist bei komplexer Rechnung definiert als:
(42)

=
=
1
0
*
,
N
i
i i
v u v u .
Zu beachten ist, dass nun das Skalarprodukt nicht mehr assoziativ ist. Vielmehr gilt: <u,v>=<v,u>* , d.h.
durch Vertauschen der beiden Vektoren erhlt man das konjugiert komplexe Ergebnis.
Hintransformation
Die Basisvektoren des Fourier-Raums in der Darstellung im Originalraum sind wie folgt definiert:
(43) N i
e
e
e
e
e
e
e
t
Be
N
N i
j
N
k i
j
N
i
j
Be
N
N i
j
N
k i
j
N
i
j
N
i
j
B i
e
<
|
|
|
|
|
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|
|
|
|

\
|
=







0 fr
1
) (
) 1 ( 2
2
1 2
) (
) 1 ( 2
2
1 2
0 2
) (

M
M
M
M
.
Dabei gilt:
(44) 1 : mit
2
sin
2
cos
2
= |

\
|
+ |

\
|
=

j
N
k i
j
N
k i
e
N
k i
j

.
Alle Vektoren besitzen die Lnge |t
i(Be)
|= N , somit bilden diese Vektoren kein orthonormales Basissystem.
Basisvektor t
0(Be)

Die Projektion eines Vektors s
(Be)
auf den Basisvektor t
0(Be)
summiert alle Elemente des Signalvektors. Die
bei der orthogonalen Transformation notwendige Normierung mit |t
0(Be)
|
2
=N (siehe Gleichung (21)) fhrt
dazu, dass im Koeffizient s
0(Te)
des Signalvektors im Fourier-Raum der Mittelwert aller Elemente von s
(Be)

berechnet wird.
Basisvektoren t
1(Be)
und t
N-1(Be)
Sowohl der Basisvektor t
1(Be)
als auch t
N-1(Be)
spannt im Originalraum genau eine Periode der Grundfrequenz
auf. Die Realteile beider Vektoren sind gleich, die Imaginrteile sind jedoch zueinander negiert. Damit sind
t
1(Be)
und t
N-1(Be)
zueinander konjugiert komplex:

Basisvektoren t
i(Be)
und t
N-i(Be)
Die Basisvektoren t
i(Be)
und t
N-i(Be)
(1 i < N/2) spannen im Originalraum genau i Perioden auf und sind
zueinander konjugiert komplex. Dadurch dass die Basisvektoren immer paarweise zur Verfgung stehen,
kann ein Signal mit gleicher Frequenz aber beliebiger Phasenverschiebung immer auf diese beiden Vektoren
abgebildet werden. Andere Koeffizienten werden bei nderung der Phase nicht beeinflusst.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 16 von 28
Basisvektor t
N/2(Be)
(N gerade)

Bei einer geraden Anzahl N von Elementen spannt dieser Basisvektor im Originalraum genau N/2 Perioden
auf. Da der Vektor die Dimension N besitzt, wechseln somit die Werte seiner Komponenten nur noch
zwischen den Werten 1/N und -1/N.
Transformationsmatrix

Die Transformationsmatrix ergibt sich nach Gleichung (23), wegen der komplexen Rechnung sind jedoch
die Elemente der Basisvektoren konjugiert komplex (siehe Gleichung (42)):
(45)
|
|
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|
|
|
|
|
|

\
|
=

N
N N
j
N
k N
j
N
N i
j
N
k i
j
B N
T
B N
B i
T
B i
B
T
B
e e
e e
N
t
t
t
t
t
t
T
e
e
e
e
e
e
) 1 ( ) 1 ( 2 ) 1 ( 2
) 1 ( 2 2
2
) ( 1
*
) ( 1
2
) (
*
) (
2
) ( 0
*
) ( 0
1
1
1 1 1
1


L L
M O M O M
L L
M O M O M
L L
M
M

Beispiel: Transformationsmatrix fr N=5
|
|
|
|
|
|

\
|
+ + +
+ + +
+ + +
+ + +
+ + + + +

=
|
|
|
|
|
|
|
|
|

\
|
=

190 , 0 062 , 0 118 , 0 162 , 0 118 , 0 162 , 0 190 , 0 062 , 0 0 , 0 2 , 0


118 , 0 162 , 0 190 , 0 062 , 0 190 , 0 062 , 0 118 , 0 162 , 0 0 , 0 2 , 0
118 , 0 162 , 0 190 , 0 062 , 0 190 , 0 062 , 0 118 , 0 162 , 0 0 , 0 2 , 0
190 , 0 062 , 0 118 , 0 162 , 0 118 , 0 162 , 0 190 , 0 062 , 0 0 , 0 2 , 0
000 , 0 200 , 0 000 , 0 200 , 0 000 , 0 200 , 0 000 , 0 200 , 0 0 , 0 2 , 0
1
1
1
1
1 1 1 1 1
5
1
5
4 4 2
5
3 4 2
5
2 4 2
5
1 4 2
5
4 3 2
5
3 3 2
5
2 3 2
5
1 3 2
5
4 2 2
5
3 2 2
5
2 2 2
5
1 2 2
5
4 1 2
5
3 1 2
5
2 1 2
5
1 1 2
5
j j j j j
j j j j j
j j j j j
j j j j j
j j j j j
e e e e
e e e e
e e e e
e e e e
T
j j j j
j j j j
j j j j
j j j j





Beispiel: Transformation eines 5-dimensionalen Vektors
) ( ) (
5 ) ( 5 ) (
597 , 0 168 , 0
157 , 0 078 , 0
157 , 0 078 , 0
597 , 0 168 , 0
000 , 0 820 , 0
0 , 0 1 , 0
0 , 0 5 , 0
0 , 0 5 , 1
0 , 0 0 , 2
0 , 0 0 , 1
e e
e e
T B
B T
j
j
j
j
j
j
j
j
j
j
T s T s
|
|
|
|
|
|

\
|
+

+

+
=
|
|
|
|
|
|

\
|
+
+
+
+
+
= =
Bemerkenswert an diesem Beispiel ist, dass der Signalvektor im Originalraum nur reelle Werte aufweist.
Dann sind die Koeffizienten s
i(Te)
und s
N-i(Te)
(0<i<N/2) im Fourier-Raum zueinander konjugiert
komplex. Dies kann zur Einsparung von Rechenaufwand verwendet werden.
Rcktransformation
Zur Rcktransformation knnen die Basisvektoren des Originalraums den Spalten der
Transformationsmatrix entnommen werden (siehe Gleichung (27)). Basisvektor b
k(Te)
ist somit definiert zu:
(46)
) (
) 1 ( 2
2
) (
1
1
e
e
T
N
k N
j
N
k i
j
T k
e
e
N
b
|
|
|
|
|
|
|

\
|
=

M
M

Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 17 von 28
Als Betrag ergibt sich fr alle Basisvektoren |b
k(Te)
| = 1/N . Damit kann gem Gleichung (28) und unter
Bercksichtigung der komplexen Rechnung die Rcktransformationsmatrix B aufgestellt werden:
(47)
|
|
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|
|
|
|
|
|

\
|
=

N
N N
j
N
N i
j
N
k N
j
N
k i
j
T N
T
T N
T k
T
T k
T
T
T
e e
e e
b
b
b
b
b
b
B
e
e
e
e
e
e
) 1 ( ) 1 ( 2 ) 1 ( 2
) 1 ( 2 2
2
) ( 1
*
) ( 1
2
) (
*
) (
2
) ( 0
*
) ( 0
1
1
1 1 1


L L
M O M O M
L L
M O M O M
L L
M
M

Beispiel: Rcktransformationsmatrix fr N=5
|
|
|
|
|
|

\
|
+ + +
+ + +
+ + +
+ + +
+ + + + +

=
|
|
|
|
|
|
|
|
|

\
|
=




951 , 0 309 , 0 588 , 0 809 , 0 588 , 0 809 , 0 951 , 0 309 , 0 0 , 0 0 , 1
588 , 0 809 , 0 951 , 0 309 , 0 951 , 0 309 , 0 588 , 0 809 , 0 0 , 0 0 , 1
588 , 0 809 , 0 951 , 0 309 , 0 951 , 0 309 , 0 588 , 0 809 , 0 0 , 0 0 , 1
951 , 0 309 , 0 588 , 0 809 , 0 588 , 0 809 , 0 951 , 0 309 , 0 0 , 0 0 , 1
000 , 0 000 , 1 000 , 0 000 , 1 000 , 0 000 , 1 000 , 0 000 , 1 0 , 0 0 , 1
1
1
1
1
1 1 1 1 1
5
4 4 2
5
4 3 2
5
4 2 2
5
4 1 2
5
3 4 2
5
3 3 2
5
3 2 2
5
3 1 2
5
2 4 2
5
2 3 2
5
2 2 2
5
2 1 2
5
1 4 2
5
1 3 2
5
1 2 2
5
1 1 2
5
j j j j j
j j j j j
j j j j j
j j j j j
j j j j j
e e e e
e e e e
e e e e
e e e e
B
j j j j
j j j j
j j j j
j j j j





Beispiel: Rcktransformation eines 5-dimensionalen Vektors
) ( ) (
5 ) ( 5 ) (
0 , 0 1 , 0
0 , 0 5 , 0
0 , 0 5 , 1
0 , 0 0 , 2
0 , 0 0 , 1
597 , 0 168 , 0
157 , 0 078 , 0
157 , 0 078 , 0
597 , 0 168 , 0
000 , 0 820 , 0
e e
e e
B T
T B
j
j
j
j
j
j
j
j
j
j
B s B s
|
|
|
|
|
|

\
|
+
+
+
+
+
=
|
|
|
|
|
|

\
|
+

+

+
= =
Eigenschaften der DFT
Linearitt: Die DFT ist eine lineare Transformation. Eine Skalierung des Signalvektors im Ortsraum durch
Multiplikation mit einem komplexen Wert wird direkt in den Fourierraum bernommen.
Wenn also im Ortsraum gilt:
) ( ) (
'
Be i Be i
s k s = (fr einen beliebigen komplexen Wert k),
dann gilt ebenso im Fourierraum:
) ( ) (
'
Te i Te i
s k s =
Symmetrie bei reellen Signalen: Sind alle Koeffizienten des Signalvektors im Ortsraum reelle Werte, dann
ergibt sich eine Symmetrie im Fourierraum:
*
) ( ) ( Te i N Te i
s s

= fr 0<i<N/2, falls alle Koeffizienten von s
(Be)
reellwertig sind.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 18 von 28
Verschiebungssatz: Eine interessante Eigenschaft der Fouriertransformation ist das Verhalten der
Koeffizienten im Fourier-Raum, wenn das Signal im Originalraum zyklisch verschoben wird:
0 1 2 N-1
i
S
i(Be)
0 1 2 N-1
i
S
i(Be) m
Vor der Verschiebung
Nach der Verschiebung
Zyklische Verschiebung

Eine zyklische Verschiebung der Elemente des Signalvektors s
(Be)
um m Positionen im Originalraum bewirkt,
dass jeder Koeffizient s
i(Te)
des Signalvektors im Fourier-Raum mit dem Faktor e
-j2mi/N
multipliziert wird.
Dieser Faktor mit dem Betrag 1 verndert nicht den Betrag des Koeffizienten s
i(Te)
, sondern dreht nur seine
komplexe Phase. Somit bleibt im Fourier-Raum jeder Koeffizient in seinem Betrag erhalten, es ndert sich
jedoch seine Phase. Der Signalvektor s'
(Te)
nach der Verschiebung lautet damit:
(48)
|
|
|
|
|
|
|
|
|
|

\
|

N
N m
j
T N
N
i m
j
T i
N
m
j
T
T
T
e s
e s
e s
s
s
e
e
e
e
e
) 1 ( 2
) ( 1
2
) (
2
) ( 1
) ( 0
) (
'

M
M

Dies zeigt, dass (anders als bei der Cosinustransformation) bei der Fouriertransformation die Freuenzanteile
des Signals fest den Koeffizienten im Fourier-Raum zugeordnet werden. Eine nderung der Phase beim
Signal im Originalraum verndert nicht die Betrge der Koeffizienten im Fourier-Raum sondern lediglich
deren komplexe Phase. Somit bleibt die Zuordnung der Frequenzen zu den Koeffizienten im Fourier-Raum
erhalten.
Offsetverschiebung: Addiert man zu allen Koeffizienten des Signalvektors im Ortsraum einen konstanten,
komplexen Faktor k (Offsetverschiebung), so wirkt sich dies im Fourierraum nur auf den Koeffizienten s
0(Te)

aus: Wenn im Ortsraum gilt:
k s s
Be i Be i
+ =
) ( ) (
' (fr einen beliebigen komplexen Wert k),
dann gilt im Fourierraum:
sonst
i
s
k s
s
Te i
Te
Te i
0 fr
'
) (
) ( 0
) (
=

+
=
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 19 von 28
Rotation des transformierten Vektors (Shifting)
In der hergeleiteten Darstellung des transformierten Vektors s
(Te)
liegt der Koeffizient s
0(Te)
fr den
Gleichanteil an Index 0. Koeffizientenpaare s
i(Te)
und s
N-1(Te)
zur Darstellung einer Frequenz liegen oft weit
auseinander:
0 1 2 N-1
i
S
i(Te)
2. Oberwelle
3
1. Oberwelle
Grundfrequenz
Mittelwert
N-3

N-2

Rotiert man die Koeffizienten des transformierten Vektors s
(Te)
um N/2 Stellen, so erhlt man eine
symmetrische Darstellung bezglich der Koeffizientenpaare gleicher Frequenz. Diese Rotation bezeichnet
man auch als "Shifting". Nach der Rotation liegt der Mittelwert in der Mitte des Vektors. Symmetrisch links
und rechts sind die Koeffizientenpaare aufsteigender Frequenz angeordnet:
Grundf.
0 1 2 N-1
i
S
i(Te)
3
1. Oberw.
M
i
t
t
e
l
w
.
N-3

N-2

2. Oberw.


Das "Shifting" verndert somit den transformierten Vektor nur bezglich seiner Darstellung, nicht jedoch
bezglich seines Inhalts.
Beispiel: Testbilder (oben) und ihre Fouriertransformierten (unten)

Fourierbilder sind inver-
tiert und in Shifting-Dar-
stellung gezeigt.
Weie Pixel besitzen
Wert 0. Je grer ein
Pixelwert ist, desto
dunkler wird er
dargestellt.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 20 von 28
Hoch- und Tiefpassfilterung eines Signals im Fourier-Raum
Im Fourierraum kann sehr einfach eine Tief- oder Hochpassfilterung durchgefhrt werden.
Bei einer Tiefpassfilterung werden alle Frequenzanteile eines Signals oberhalb einer Maximalfrequenz
gelscht. In der vorliegenden Darstellung des Signals s
(Te)
im Fourier-Raum wird die Maximalfrequenz
durch einen Index M spezifiziert. Dann errechnet sich das Tiefpass-gefilterte Signal s
TP
(Te)
wie folgt:
(49)
N i M N
M N i M
M i
s
s
s
e
e
e
T i
T i
TP
T i
<
< <

=
) ( fr
) ( fr
0 fr
0
) (
) (
) (
.
Diese Filterung lsst sich durch eine Filterfunktion TP im Fourier-Raum beschreiben:
(50)
N i M N
M N i M
M i
TP
i
<
< <

=
) ( fr
) ( fr
0 fr
1
0
1
.
Die Tiefpassfilterung ergibt sich dann durch Elementweise Multiplikation der Filterfunktion mit dem
Signalvektor:
(51)
) ( ) (
e e
T
TP
T
s TP s = .
Ebenso kann eine Hochpassfilterung vereinbart werden, bei der alle Frequenzen unterhalb einer
Minimalfrequenz m gelscht werden. Die Filterfunktion HP ergibt sich dann zu:
(52)
N i m N
m N i m
m i
HP
i
< <

<

=
) ( fr
) ( fr
0 fr
0
1
0
.
Die Durchfhrung der Filterung erfolgt durch Multiplikation von HP mit dem Signalvektor:
(53)
) ( ) (
e e
T
HP
T
s HP s = .
Fouriertransformation auf zweidimensionalen Bilddaten
Entsprechend wie die Cosinustransformation ist auch die Fouriertransformation eine separierbare Funktion,
bei der die zweidimensionale Transformation nacheinander auf Zeilen und Spalten angewendet werden kann.
Es gelten somit die Ausfhrungen von Seite 11. Somit gilt Gleichung (40) auch fr die
Fouriertransformation eines Bildes aus N Zeilen und M Spalten, als Transformationsmatrizen T
N
und T
M

mssen natrlich Matrizen der DFT (Gleichung (45)) verwendet werden. Gleiches gilt auch fr die
Rcktransformation.
Beispiel: Tiefpassfilterung eines Bildes
Original Fourierdarstellung
(negativ)
Tiefpassbild im
Fourierraum (negativ)
Tiefpassbild im
Originalraum

3.6 Die schnelle Fouriertransformation (FFT)
Komplexitt der digitalen Fouriertransformation (DFT)
Die arithmetische Komplexitt der digitalen Fouriertransformation ergibt sich aus den Projektionen des
Signalvektors auf jeden Basisvektor. Die Basisvektoren werden in Gleichung (45) in einer Matrix
zusammengefasst, so dass alle Projektionen durch die in Gleichung (26) gezeigte Matrixmultiplikation
realisiert werden.
Zur Berechnung der Komplexitt von Gleichung (26) unter Verwendung eines komplexen Signalvektors und
der Transformationsmatrix nach Gleichung (45) mssen die notwendigen Multiplikationen und Additionen
gezhlt werden. Fr die Transformation eines N-dimensionalen Signalvektors gilt folgende Komplexitt:
Zur Multiplikation einer Matrixzeile mit dem Signalvektor werden bentigt:
N komplexe Multiplikationen und
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 21 von 28
(N-1) komplexe Additionen.
Da die Matrix T aus N Zeilen besteht, werden somit bentigt:
NN komplexe Multiplikationen und
N(N-1) komplexe Additionen.
Die Multiplikation zweier komplexer Zahlen aus Realteil und Imaginrteil besteht aus:
4 reellen Multiplikationen und
2 reellen Additionen/Subtraktionen.
Beispiel: c = ab = (a
r
+ja
i
)(b
r
+jb
i
) = (a
r
b
r
a
i
b
i
)+j(a
r
b
i
+ a
i
b
r
) = (c
r
+jc
i
)
c
r
= (a
r
b
r
a
i
b
i
) 2 reelle Multiplikationen, 1 reelle Subtraktion
c
i
= (a
r
b
i
+ a
i
b
r
) 2 reelle Multiplikationen, 1 reelle Addition
Die Addition zweier komplexer Zahlen aus Realteil und Imaginrteil besteht aus:
2 reellen Additionen.
Beispiel: d = a+b = (a
r
+ja
i
)+(b
r
+jb
i
) = (a
r
+b
r
)+j(a
i
+b
i
) = (d
r
+jd
i
)
Zusammenfassen der Ergebnisse liefert den Gesamtaufwand:
Aufwand fr die Fouriertransformation (DFT) eines Signalvektors aus N Elementen:
4N
2
reelle Multiplikationen
4N
2
2N reelle Additionen/Subtraktionen
Untersucht man in gleicher Weise die zweidimensionale Fouriertransformation, bei der ein Feld der Gre
NM zu transformieren ist, so muss die eindimensionale Transformation fr alle N Zeilen und nochmals fr
alle M Spalten angewendet werden.
Somit erhlt man fr die Spaltentransformationen:
N(4M
2
) reelle Multiplikationen
N(4M
2
2M) reelle Additionen/Subtraktionen
und fr die Zeilentransformationen:
M(4N
2
) reelle Multiplikationen
M(4N
2
2N) reelle Additionen/Subtraktionen
Zusammenfassen der Ergebnisse liefert den Gesamtaufwand:
Aufwand fr die zweidimensionale, digitale Fouriertransformation (DFT) eines NM-Feldes:
4(NM
2
+N
2
M) reelle Multiplikationen
4(NM
2
+N
2
MNM) reelle Additionen/Subtraktionen
Beispiel: Die Transformation eines Bildes der Gre 512512 bentigt somit:
1.073.741.824 Multiplikationen und
1.072.693.248 Additionen.
Diese Aufwandsbetrachtungen zeigen, dass mit dem bisher vorgestellten Vorgehen eine praktische
Anwendung der Fouriertransformation wegen des hohen Rechenaufwands problematisch ist. Eine
Beschleunigung der Berechnung ist somit wnschenswert. Die nachfolgend vorgestellte schnelle
Fouriertransformation (Fast Fourier Transform, FFT) bewirkt diese Beschleunigung.
Prinzip "Teile und herrsche" (Divide et Impera)
Aus der Algorithmenentwicklung ist das Prinzip "Teile und herrsche" bekannt. Es bedeutet, dass man ein
Problem (z.B. der Gre N) in kleinere Probleme (z.B. zwei Probleme der Gre N/2) zerlegt. Die kleineren
Probleme lst man unabhngig voneinander, erhlt Zwischenergebnisse, welche schlielich zum Ergebnis
des Gesamtproblems zusammengefhrt werden. Damit hat man das Gesamtproblem gelst.
Bei einem Problem der Gre N, welches in zwei gleich aufwndige Teilprobleme der Gre N zerlegt
werden kann, ergibt sich damit folgender Aufwand zur Lsung des Problems:
Aufwand(N) = 2Aufwand(N/2) + Aufwand(Zusammenfhrung)
Fr die Teilprobleme kann wiederum genauso verfahren werden.
Projektion des Signalvektors auf die Zeilen der Transformationsmatrix
Es soll nun die Projektion des Signalvektors s
(Be)
auf die Zeilenvektoren der Transformationsmatrix T
untersucht werden. Der wie folgt normierte Basisvektor t
i(Be)
(Gleichung (23)) soll nun als t
i
bezeichnet
werden:
(54)
2
) (
) (
e
e
B i
B i
i
t
t
t = .
Damit lsst sich die Berechnung des Koeffizienten s
i(Te)
(Gleichung (21)) direkt als Innenprodukt schreiben.
Bezeichnet man das Element n des Vektors t
i
als t
i,n
, so ergibt sich fr die Fouriertransformation (Gleichung
(45)):
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 22 von 28
(55)
N
i n
j
N
n
B n n i
N
n
B n i B T i
e s
N
t s t s s
e e e e

=
= = =

2
1
0
) ( ,
1
0
) ( ) ( ) (
1
, .
Wegen der komplexen Rechnung mssen die Koeffizienten t
i,n
des normierten Vektors auf der rechten Seite
in ihrer konjugiert komplexen Form eingesetzt werden (siehe Gleichung (42)).
Die Summe der rechten Seite lsst sich aufteilen in eine Teilsumme, die nur die Elemente des Signalvektors
mit geradem Index enthlt (s
o(Be)
, s
2(Be)
, s
4(Be)
, ... ) und in eine zweite Summe aus Elementen mit ungeradem
Index:
(56)
N
i n
j
N
n
B n
N
i n
j
N
n
B n T i
e s
N
e s
N
s
e e e
+

=
+

=
+ =

) 1 2 ( 2
1
2
0
) ( 1 2
2 2
1
2
0
) ( 2 ) (
1 1

.
(57)
|
|
|
|
|
|

\
|
+ =

=
+

=

4 4 4 4 4 3 4 4 4 4 4 2 1 4 4 4 4 4 3 4 4 4 4 4 2 1
Elementen ungeraden auf Dimension
halben der Berechnung DFT
N
i n
j
N
n
B n
N
i
j
Elementen geraden auf Dimension
halben der Berechnung DFT
N
i n
j
N
n
B n T i
e s
N
e e s
N
s
e e e
2 /
2
1
2
0
) ( 1 2
2
2 /
2
1
2
0
) ( 2 ) (
2 /
1
2 /
1
2
1

.
Zerlegt man somit den Signalvektor s
(Be)
in zwei Vektoren der halben Dimension, von denen der Vektor s
E
(Be)

die geraden und der Vektor s
O
(Be)
die ungeraden Elemente enthlt, so kann man fr 0<i<N/2 die Berechnung
wie folgt zusammenfassen:
(58)
|
|

\
|
+ =

) 2 / ( ) (
2
) 2 / ( ) ( ) (
, ,
2
1
N i
O
B
N
i
j
N i
E
B T i
t s e t s s
e e e

fr 0 i <N/2.
Mit t
i(N/2)
ist dabei Zeile i der Transformationsmatrix T
N/2
der halben Dimension bezeichnet.
Gleichung (57) soll nun fr Koeffizienten mit Index N/2 i <N umgeformt werden. Es wird dabei ein Index
k verwendet der im Bereich 0<k<N/2 liegt. Es soll gelten: i=k+N/2. Damit erhlt man:
(59)
|
|
|
|

\
|
+ = =
+

=
+
+

=
+

2 /
)
2
( 2 1
2
0
) ( 1 2
2
)
2
( 2
2 /
)
2
( 2 1
2
0
) ( 2
2
) (
2
) (
1 1
2
1
N
N
k n
j
N
n
B n
N
N
N
k
j
N
N
k n
j
N
n
B n

T
N
k
T i
e s e e s s s
e e
e
e

.
Bei komplexer Rechnung gilt: e
-j2n
=1 und e
-j
=-1. Einsetzen in Gleichung (59) ergibt:
(60)
|
|
|
|

\
|
+ = =

=
+

=
+

2 /
2
1
2
0
) ( 1 2
2
2
2 /
2
1
2
0
) ( 2
2
) (
2
) (
1
) 1 (
1
2
1
N
k n
j
N
n
B n
N
N
k
j
N
k n
j
N
n
B n

T
N
k
T i
e s e e s s s
e e
e
e

.
Diese Gleichung lt sich entsprechend Gleichung (58) zusammenfassen:
(61)
|
|

\
|
=

) 2 / ( ) (
2
) 2 / ( ) ( ) (
, ,
2
1
N k
O
B
N
k
j
N k
E
B T i
t s e t s s
e e e

fr N/2 i<N und k=i-N/2.


Ein Vergleich der beiden Gleichungen (58) und (61) zeigt, dass zur Berechnung der beiden Koeffizienten
s
k(Te)
und s
i(Te)
weitgehend die gleichen Rechnungen durchgefhrt werden. Der einzige Unterschied liegt in
der abschlieenden Addition bzw. Subtraktion, mit der die berechneten Terme zum Ergebnis
zusammengefasst werden. Folgendes Blockschaltbild verdeutlicht nochmals diesen Zusammenhang:
) (
e
B
s
E
B
e
s
) (
) 2 / ( ) (
,
N k
E
B
t s
e
Innenprodukt-
Berechnungen
O
B
e
s
) (
) 2 / ( ) (
,
N k
O
B
t s
e
N
k
j
e

2
+
1/2
1/2
) (
e
T k
s
) (
2
) (
e
e
T
N
k
T i
s s
+
=
-

Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 23 von 28
Fasst man die Berechnungen alle Koeffizienten in einer bersicht zusammen, so erkennt man, dass zwei
Transformationen halber Dimension durchgefhrt werden, deren Ergebnisse anschlieend zusammengefhrt
werden. Nachfolgende Abbildung zeigt dies beispielhaft fr N=8:
F
o
u
r
i
e
r
t
r
a
n
s
f
o
r
m
a
t
i
o
n
h
a
l
b
e
r

D
i
m
e
n
s
i
o
n
N
/
2
0 j
e

+
) ( 3
e
T
s
) ( 2
e
T
s
1/2
1/2
1/2
1/2
1/2
4

j
e

1/2
2

j
e

1/2
2
3
j
e

1/2
+
+
+
) ( 0
e
T
s
) ( 1
e
T
s
) ( 4
e
T
s
) ( 5
e
T
s
) ( 6
e
T
s
) ( 7
e
T
s
F
o
u
r
i
e
r
t
r
a
n
s
f
o
r
m
a
t
i
o
n
h
a
l
b
e
r

D
i
m
e
n
s
i
o
n
N
/
2
) ( 2
e
B
s
) ( 0
e
B
s
) ( 4
e
B
s
) ( 6
e
B
s
) ( 3
e
B
s
) ( 1
e
B
s
) ( 5
e
B
s
) ( 7
e
B
s
-
-
-
-

Fhrt man das vorgestellte Vorgehen auch in den Transformationen niedriger Dimension durch, erhlt man
ld(N) Berechnungsschichten. Nachfolgende Abbildung zeigt die Auflsung fr N=8:
0 j
e

+
) ( 3
e
T
s
) ( 2
e
T
s
1/N
1/N
1/N
1/N
1/N
4

j
e

1/N
2

j
e

1/N
2
3
j
e

1/N
+
+
+
) ( 0
e
T
s
) ( 1
e
T
s
) ( 4
e
T
s
) ( 5
e
T
s
) ( 6
e
T
s
) ( 7
e
T
s
) ( 2
e
B
s
) ( 0
e
B
s
) ( 4
e
B
s
) ( 6
e
B
s
) ( 3
e
B
s
) ( 1
e
B
s
) ( 5
e
B
s
) ( 7
e
B
s
+
+
+
+
0 j
e

j
e

-
-
-
-
-
-
-
-
0 j
e

j
e

-
+
-
+
-
+
-
+
Schicht 0 Schicht 1 Schicht ld(N)-1=2

Bemerkenswert ist, dass die Faktoren mit Wert , mit denen am Ende jeder Schicht die Werte gewichtet
werden mssen, durch Faktoren mit Wert 1/N hinter der letzten Schicht zusammengefasst werden knnen.
Dies ist in obiger Abbildung bercksichtigt.
Vertauschung der Elemente am Eingang (Bitreversal)
Bei der Berechnung der FFT nach dem vorgestellten Schema werden die Elemente des Eingangsvektors
nicht in der vorgegebenen linearen sondern in einer permutierten Reihenfolge bentigt. Diese Permutation
wird als "Bitrevers-Permutation" bezeichnet.
Die Permutation entsteht dadurch, dass die Elemente des Eingangsvektors in jeder Schicht in Elemente mit
geradem und ungeradem Index aufgeteilt werden. Die Bitrevers-Permutation fasst diese Aufteilungen ber
alle Schichten zusammen.
Die Permutation lsst sich berechnen indem man den Index als Binrzahl darstellt und die Binrziffern
spiegelt. Somit werden Ziffern mit ursprnglich hoher Wertigkeit zu Ziffern niedriger Wertigkeit.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 24 von 28
Beispiel: Das Element des Signalvektors, welches an Eingang 47 einer 128-Punkte-FFT (N=7) anliegen
muss, soll ermittelt werden:
47=(0101111)
2
Bitrevers(47)=(1111010)
2
=122
Somit muss das Element s
122(Be)
an Eingang 47 der FFT angelegt werden.
Komplexitt der FFT
In jeder Schicht der DFT (auer Schicht 0) mssen fr jedes Koeffizientenpaar eine komplexe
Multiplikation, Addition und Subtraktion durchgefhrt werden. Da es jeweils N/2 Koeffizientenpaare und
ld(N) Schichten gibt, ergibt sich als Aufwand fr die Schichten 1 bis ld(N)-1:
N/2(ld(N)-1) komplexe Multiplikationen
N(ld(N)-1) komplexe Additionen/Subtraktionen
Hinzu kommt der Aufwand fr Schicht 0:
N komplexe Additionen/Subtraktionen
Schlielich muss noch die Gewichtung mit 1/N am Ende der Transformation bercksichtigt werden:
N komplexe Multiplikationen
Damit ergibt sich folgender Gesamtaufwand:
N/2(ld(N)+1) komplexe Multiplikationen
Nld(N) komplexe Additionen/Subtraktionen
Rechnet man die Werte in reelle Operationen um, so ergibt sich der Gesamtaufwand:
Aufwand fr die schnelle Fouriertransformation (FFT) eines Signalvektors aus N Elementen:
2N(ld(N)+1) reelle Multiplikationen
3Nld(N)+N Additionen/Subtraktionen
Beispiel: Vergleich der Berechungszeiten einer Fouriertransformation mit DFT und FFT
Nachfolgende Tabelle vergleicht die Anzahl der Additionen fr die DFT- und FFT-Algorithmen. In den
letzten beiden Spalten werden die Verhltnisse errechnet. Somit bentigt beispielsweise bei N=8 die
DFT 41-mal so viele Additionen/Subtraktionen wie die FFT.
ld(N) N Add/Sub Mult Add/Sub Mult Add/Sub Mult
2 4 56 64 28 24 2 3
4 16 992 1024 208 160 5 6
8 256 261632 262144 6400 4608 41 57
16 65536 1,718E+10 1,718E+10 3211264 2228224 5350 7710
20 1048576 4,398E+12 4,398E+12 63963136 44040192 68759 99864
DFT FFT Quotient DFT/FFT

Der Vergleich verdeutlicht nochmals die wichtige Bedeutung des FFT-Algorithmus fr die praktische
Anwendung der Fouriertransformation.
Schlubemerkungen zur FFT
Der FFT-Algorithmus in der vorgestellten Form wird als "Decimation in Time"-Algorithmus (DIT)
bezeichnet. Eine alternative Struktur ergibt sich beim "Decimation in Frequency"-Algorithmus (DIF), der in
etwa eine gespiegelte Struktur zum DIT aufweist. Fr Details wird auf die Literatur verwiesen [1].
Die Zerlegung des DFT-Algorithmus, welche schlielich zur schnellen Transformation fhrte, wurde als
Zweierzerlegung durchgefhrt. Dies ist nicht zwingend. Jeder Teiler der Dimension N kann fr eine
Zerlegung verwendet werden. Wird eine Zerlegung in K Teile vorgenommen, wird die resultierende FFT als
Radix-K FFT bezeichnet. Auch sind in den Schichten unterschiedliche Faktoren bei der Zerlegung mglich.
Der vorgestellte FFT-Algorithmus ist in allen Schichten ein Radix-2 Algorithmus. Die Dimension N des
Signalvektors muss somit eine Zweierpotenz sein. Fr weitere Details wird auf die Literatur verwiesen [1].
3.7 Walsh-Transformation
Eine in der Berechnung einfache Transformation ist die Walsh-Transformation. Ihre Basisvektoren bestehen
nur aus den Werten 1 und -1. Fr die Darstellung der Basisvektoren existieren unterschiedliche
Reihenfolgen, die durch Permutation ineinander berfhrt werden knnen. Nachfolgend soll die in [1] als
Hadamar- oder natrliche Reihenfolge bezeichnete Anordnung verwendet werden.
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 25 von 28
Hintransformation
Der Basisvektor i bei Hadamar-Anordnung soll als t
Hi(Be)
bezeichnet werden, er ist wie folgt vereinbart [2]:
(62) N i N t
n
Be
N b i b
k b i b
b i b
b i b
B Hi
n
r
r r
n
r
r r
n
r
r r
n
r
r r
e
< =
|
|
|
|
|
|
|
|
|
|
|

\
|

=
0 fr , 2 mit
) 1 (
) 1 (
) 1 (
) 1 (
) (
) 1 ( ) (
) ( ) (
) 1 ( ) (
) 0 ( ) (
) (
1
0
1
0
1
0
1
0
M
M
.
Die Funktion b
r
(x) entnimmt dabei dem ganzzahligen Wert x in der Binrdarstellung das Bit r. Sie liefert
somit einen Wert 0 oder 1 zurck. Die Summe im Exponenten von (-1) summiert somit 0 und 1 Werte. Ist
die Summe gerade ergibt sich somit der Wert 1 fr den Koeffizienten, bei ungerader Summe ergibt sich ein
Wert -1.
Zu bemerken ist, dass die Gre N der Vektoren eine Zweierpotenz N=2
n
sein muss.
Erzeugt man mittels der Gleichungen (23) und (62) die Transformationsmatrix fr n=1, so erhlt man:
(63)
|
|

\
|

=
1 1
1 1
2
1
2
T .
Interessant ist, dass sich die Transformationsmatrix T
N
rekursiv aus T
N/2
bilden lsst (Der Beweis bleibt dem
Leser als bung berlassen):
(64)
|
|

\
|

=
2 / 2 /
2 / 2 /
2
1
N N
N N
N
T T
T T
T .
Aus dieser Beobachtung lsst sich direkt eine schnelle Berechnungsform der Walsh-Transformation in
Hadamar-Ordnung ableiten. Dazu wird der Signalvektor s in einen oberen und unteren Teilvektor s
A
und s
B

halber Dimension zerlegt:
(65)
|
|

\
|
=
|
|

\
|

|
|

\
|

= =
) (
) (
) (
) (
2 / 2 /
2 / 2 /
) ( ) (
2
1
e
e
e
e
e e
T B
T A
B B
B A
N N
N N
B T
s
s
s
s
T T
T T
s T s .
Die beiden Teilvektoren s
A(Te)
und s
B(Te)
knnen separat berechnet werden:
(66)
( )
( )
) ( 2 / ) ( 2 / ) (
) ( 2 / ) ( 2 / ) (
2
1
2
1
e e e
e e e
B B N B A N T B
B B N B A N T A
s T s T s
s T s T s
=
+ =
.
Die beiden Berechnungsgleichungen (66) zeigen, dass zunchst die beiden Teilvektoren s
A(Be)
und s
B(Be)
mit
der Transformationsmatrix T
N/2
halber Dimension multipliziert werden mssen. Durch Addition dieser
Zwischenergebnisse erhlt man s
A(Te)
, durch Subtraktion s
B(Te)
. Nachfolgendes Blockschaltbild zeigt dieses
Vorgehen:
S
(Be)
Walsh-Hadamar
Transformation
halber Dimension
Walsh-Hadamar
Transformation
halber Dimension
S
A(Be)
S
B(Be)
+
S
A(Te)
S
B(Te)
2S
(Te)

Die Transformationen halber Dimension knnen schrittweise wieder in Transformationen kleinerer
Dimension zerlegt werden bis schlielich Transformationen mit N=2 erreicht sind.
Das Blockschaltbild erinnert an das Vorgehen zur Entwicklung der schnellen Fouriertransformation auf
Seite 23.
Beispiel: Transformationsmatrizen T
4
und T
8
:
|
|
|
|
|

\
|



=
|
|

\
|

=
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
4
1
2
1
2 2
2 2
4
T T
T T
T
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 26 von 28
|
|
|
|
|
|
|
|
|
|
|

\
|







=
|
|

\
|

=
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
8
1
2
1
4 4
4 4
8
T T
T T
T
Rcktransformation
Auch fr die Rcktransformation kann eine schnelle Form gefunden werden. Ebenso wie bei der
Hintransformation lassen sich die Transformationsmatrizen rekursiv erzeugen:
(67)
|
|

\
|

=
1 1
1 1
2
B .
(68)
|
|

\
|

=
2 / 2 /
2 / 2 /
N N
N N
N
B B
B B
B .
Sie unterscheiden sich von der Hintransformation nur um den konstanten Faktor , der bei der
Rcktransformation fehlt.
Diese rekursiven Matrizen ermglichen wie bei der Hintransformation eine Zweierzerlegung mit doppelter
Nutzung von Zwischenergebnissen, die zur schnellen Berechnungsform fhrt.
Sequentialitt (Sequency)
Bei der Cosinus- und der Fouriertransformation waren die Basisvektoren in einer Reihenfolge angeordnet,
welche das Originalsignal in aufsteigende Frequenzanteile zerlegte.
Auch bei der Walsh-Transformation kann man eine Art Frequenzwert fr jeden Basisvektor ber die
Sequentialitt (engl.: sequency) definieren. Man zhlt dabei die Wechsel zwischen negativen und positiven
Werten, wenn man die Koeffizienten der Basisvektoren in aufsteigender Reihenfolge durchluft.
Bezeichnet man die Anzahl der Wechsel mit w, dann ist die Sequentialitt seq wie folgt definiert:
(69)
ungerade w
gerade w
w
w
seq

=
) 1 (
2
1
2
1
.
Beispiel: Sequentialitt der Walsh Basisvektoren in Hadamar-Reihenfolge bei N=8:
3 ) 1 1 1 1 1 1 1 1 (
1 ) 1 1 1 1 1 1 1 1 (
3 ) 1 1 1 1 1 1 1 1 (
1 ) 1 1 1 1 1 1 1 1 (
2 ) 1 1 1 1 1 1 1 1 (
2 ) 1 1 1 1 1 1 1 1 (
4 ) 1 1 1 1 1 1 1 1 (
0 ) 1 1 1 1 1 1 1 1 (
) ( 7
) ( 6
) ( 5
) ( 4
) ( 3
) ( 2
) ( 1
) ( 0
= =
= =
= =
= =
= =
= =
= =
= =
seq t
seq t
seq t
seq t
seq t
seq t
seq t
seq t
T
B H
T
B H
T
B H
T
B H
T
B H
T
B H
T
B H
T
B H
e
e
e
e
e
e
e
e

Ordnet man die Basisvektoren in aufsteigender Sequentialitt, so erhlt man die Basisvektoren in der als
Walsh- oder sequentieller Reihenfolge bezeichneten Anordnung. Diese umsortierten Basisvektoren sollen als
t
Wj(Be)
bezeichnet werden, sie knnen nach [2] wie folgt vereinbart werden:
Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 27 von 28
(70) N j N t
n
Be
N b j p
k b j p
b j p
b j p
B Wj
n
r
r r
n
r
r r
n
r
r r
n
r
r r
e
< =
|
|
|
|
|
|
|
|
|
|
|

\
|

=
0 fr , 2 mit
) 1 (
) 1 (
) 1 (
) 1 (
) (
) 1 ( ) (
) ( ) (
) 1 ( ) (
) 0 ( ) (
) (
1
0
1
0
1
0
1
0
M
M
.
Die Bits p
r
(j) berechnen sich dabei wie folgt (Operator steht fr die Exklusiv-Oder-Verknpfung):
(71)
) ( ) ( ) (
) ( ) ( ) (
) ( ) (
0 1 1
2 1 1
1 0
j b j b j p
j b j b j p
j b j p
n
n n
n
=
=
=

L

(Anmerkung: Dieses Berechnungsschema wandelt j aus der Binrdarstellung in die Gray-Code Darstellung
und fhrt anschlieend ein Bit-Reversal durch.)
Will man zur Berechnung der Hadamar-Transformation die auf Gleichung (66) basierende, schnelle Form
verwenden, zur Darstellung aber die nach Sequentialitt sortierten Walsh-Reihenfolge nutzen, so mssen
nach der Transformation die Koeffizienten im transformierten Vektor umsortiert werden.
Das Element s
Wj(Te)
des transformierten Vektors in der Walsh-Darstellung entspricht wegen Gleichung (71)
folgendem Element des transformierten Vektors in Hadamar-Darstellung:
(72) ( )
2 0 1 1 ) )( ( ) (
) ( ), ( , ), ( ) ( : mit j p j p j p j p s s
n T j Hp T Wj
e e
K

= =
Beispiel: Ermittlung des transformierten Vektors in Walsh-Darstellung aus der Hadamar-Darstellung fr
N=8
Zunchst werden die p(j) fr alle j ermittelt:
p(0) = (b
1
(0)b
0
(0), b
2
(0)b
1
(0), b
2
(0))
2
= (00, 00, 0)
2
= (0,0,0)
2
= 0
p(1) = (b
1
(1)b
0
(1), b
2
(1)b
1
(1), b
2
(1))
2
= (01, 00, 0)
2
= (1,0,0)
2
= 4
p(2) = (b
1
(2)b
0
(2), b
2
(2)b
1
(2), b
2
(2))
2
= (10, 01, 0)
2
= (1,1,0)
2
= 6
p(3) = (b
1
(3)b
0
(3), b
2
(3)b
1
(3), b
2
(3))
2
= (11, 01, 0)
2
= (0,1,0)
2
= 2
p(4) = (b
1
(4)b
0
(4), b
2
(4)b
1
(4), b
2
(4))
2
= (00, 10, 1)
2
= (0,1,1)
2
= 3
p(5) = (b
1
(5)b
0
(5), b
2
(5)b
1
(5), b
2
(5))
2
= (01, 10, 1)
2
= (1,1,1)
2
= 7
p(6) = (b
1
(6)b
0
(6), b
2
(6)b
1
(6), b
2
(6))
2
= (10, 11, 1)
2
= (1,0,1)
2
= 5
p(7) = (b
1
(7)b
0
(7), b
2
(7)b
1
(7), b
2
(7))
2
= (11, 11, 1)
2
= (0,0,1)
2
= 1
Damit ist die Zuordnung der Koeffizienten zwischen den beiden Darstellungen festgelegt:
|
|
|
|
|
|
|
|
|
|
|

\
|
=
|
|
|
|
|
|
|
|
|
|
|

\
|
=
) ( 1
) ( 5
) ( 7
) ( 3
) ( 2
) ( 6
) ( 4
) ( 0
) ( 7
) ( 6
) ( 5
) ( 4
) ( 3
) ( 2
) ( 1
) ( 0
) (
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
T H
T H
T H
T H
T H
T H
T H
T H
T W
T W
T W
T W
T W
T W
T W
T W
T w
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
s
Die umgekehrte Sortierung aus der Walsh-Darstellung in die Hadamar-Darstellung bentigt man vor einer
Rcktransformation in den Originalraum, wenn man dazu die schnelle Rcktransformation der Hadamar-
Darstellung nutzen will.
Die Zuordnung der Komponenten durch folgende Gleichung beschrieben:
(73) ( )
2 0 1 1 ) )( ( ) (
) ( ), ( , ), ( ) ( : mit i q i q i q i q s s
n T i Wq T Hi
e e
K

= =
Die Bits von q(i) werden wie folgt berechnet:
(74)
) ( ) ( ) (
) ( ) ( ) (
) ( ) (
1 1 0
1 1 2
0 1
i q i b j q
i q i b i q
i b i q
n
n n
n
=
=
=

L

Prof. Dr.-Ing. B. Lang, FH Osnabrck Seite 28 von 28
(Anmerkung: Dieses Berechnungsschema fhrt zunchst ein Bitreversal durch und wandelt dann aus der
Gray-Code- in die Binrdarstellung.)
Literatur:
[1] Douglaus F. Elliot und K. Ramamohan Rao: Fast Transforms: Algorithms, Analyses and
Applications. Academic Press, 1982.
[2] R. C. Gonzalez und R. E. Woods: Digital Image Processing. Addison-Wesley, 1993.