Top Banner
18 Kapitel 18 Diskrete Fourier-Transformation und Anwendungen (C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018
33

Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

Sep 05, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18Kapitel 18

Diskrete Fourier-Transformation undAnwendungen

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 2: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18

18 Diskrete Fourier-Transformation und Anwendungen . . 1063

18.1 Diskrete Fourier-Transformation ................................ 1063

18.1.1 Herleitung der Formeln der DFT ............................... 1063

18.1.2 Inverse diskrete Fourier-Transformation ....................... 1067

18.2 Diskrete Fourier-Transformation mit MAPLE................. 1074

18.3 Anwendungsbeispiele zur DFT mit MAPLE ................... 1081

18.3.1 Anwendung der DFT zur Signalanalyse ....................... 1081

18.3.2 Anwenden der DFT zur Systemanalyse eines Tiefpasses ... 1087

18.4 Zusammenstellung der MAPLE-Befehle ....................... 1092

18.5 Aufgaben zur diskreten Fourier-Transformation.............. 1093

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 3: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18 Diskrete Fourier-Transformation undAnwendungen

18.118.1 Diskrete Fourier-TransformationIn den vorhergehenden Abschnitten behandelten wir Fourier-Reihen und die Fourier-Trans-

formation von kontinuierlichen Funktionen. In beiden Fallen mussen zur Analyse der Signale

Integrale berechnet werden. Dies ist jedoch nur dann moglich, wenn die betrachteten Zeit-

funktionen (Signale) in analytischer Form gegeben sind.

Bestimmt man z.B. die Impulsantwort eines Systems experimentell, so liegt das Ausgangs-

signal nicht als kontinuierliche, sondern in der Regel als diskrete, abgetastete Funktion vor.

Mit dieser Folge von Funktionswerten lassen sich die Transformationsintegrale nicht be-

rechnen.

Wir gehen deshalb der Frage nach, wie man auf numerischem Weg die Fourier-Transformation

eines diskreten Signals berechnen kann und kommen so von der kontinuierlichen Fourier-

Transformation (FT) zur diskreten Fourier-Transformation (DFT).

18.1.1 Herleitung der Formeln der DFT

Bei der Herleitung der Formeln fur die diskrete Fourier-Transformation (DFT)gehen wir von einem endlichen Zeitsignal f (t) im Zeitintervall [0, T ] aus.

Abb. 18.1. Zeitsignal f(t) und periodisch fortgesetztes Signal f(t)

Von der Funktion f (t) gehen wir zu der T -periodischen Erweiterung f (t) uber

f (t) =∞∑

n=−∞f (t+ nT )

und stellen fur f die Fourier-Reihe mit den komplexen Fourier-Koeffizienten

cm =1T

∫ T

0

f (t) e−i m ω0 t dt(ω0 = 2π

T

)auf. Da die Funktion f im Intervall [0, T ] mit f ubereinstimmt, ersetzt manim Integral f durch f :

cm =1T

∫ T

0

f (t) e−i m ω0 t dt .

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 4: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1064 18. Diskrete Fourier-Transformation und Anwendungen

Außerhalb des Intervalls [0, T ] ist nach Voraussetzung die Funktion f Null, sodass die Integration formal auf ganz IR erweitert werden kann

cm =1T

∫ ∞

−∞f (t) e−i m ω0 t dt .

Dieses Integral stellt bis auf den Vorfaktor 1T die Fourier-Transformierte der

Funktion f (t) fur die Frequenzen mω0 dar.

⇒ cm =1TF (f) (mω0) =

1TF (mω0).

Man erhalt also die Fourier-Transformierte der Funktion f (t) an den Stellenmω0 durch die Fourier-Koeffizienten cm der Funktion f (t):

F (mω0) = T · cm =∫ T

0

f (t) e−i m ω0 t dt.

D.h. bis auf den Faktor T stimmt die Fourier-Transformation von f an derStelle mω0 mit dem Fourier-Koeffizienten cm der Fourier-Reihe von f uberein!

Gehen wir im Weiteren davon aus, dass f (t) nicht als kontinuierliche Funktion,sondern als diskretes Signal vorliegt, kann das Integral∫ T

0

f (t) e−i m ω0 t dt

nicht symbolisch sondern nur numerisch ausgewertet werden. Sei f im Intervall[0, T ] an N Stellen abgetastet, d.h. f wird reprasentiert durch die Werte

f (t0) , f (t1) , . . . , f (tN−1) .

Abb. 18.2. Numerische Naherung des bestimmten Integrals

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 5: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.1 Diskrete Fourier-Transformation 1065

Dann nahern wir die Flache∫ T

0f (t) e−i m ω0 t dt an durch die Partialsumme

der Rechteckflachen f (tn) e−i m ω0 tn · 4tn (n = 0, . . . , N − 1):∫ T

0

f (t) e−i m ω0 t dt ≈N−1∑n=0

f (tn) e−i m ω0 tn 4 tn .

Fur eine konstante Abtastfrequenz fa = 14t = N

T sind die N Abtastpunktetn = T

N n (n = 0, . . . , N − 1) gleichmaßig im Intervall [0, T ] verteilt. Somit ist

4t =T

Nund ω0 tn =

2πT

T

Nn = n

2πN

.

Fur die Naherung F an die Fourier-Transformierte F von f ergibt sich bei denFrequenzen mω0

F (mω0) ≈T

N

N−1∑n=0

f (tn) e−i m n 2πN =: F (mω0) (∗)

F (mω0) heißt die diskrete Fourier-Transformierte (DFT) von f .

Eigenschaften der DFT

Eigenschaft 1: Gleichung (∗) lasst sich fur beliebiges m ∈ ZZ auswerten, sodass man formal das Spektrum fur alle Frequenzen mω0 erhalt. Da das Si-gnal aber mit der Frequenz fa = N

T abgetastet ist, sollten Frequenzen großerder Abtastfrequenz ω > 2π fa = 2π N

T = N ω0 nicht mehr erfasst werden.Tatsachlich ist dies auch nicht der Fall, denn fur m ≥ N wiederholen sich dieSpektren der DFT:

Satz 18.5:

F ((N + k) ω0) = F (k ω0) (k ∈ ZZ) .

Begrundung: Es ist

F ((N + k) ω0) =T

N

N−1∑n=0

f (tn) e−i (N+k) n 2πN

=T

N

N−1∑n=0

f (tn) e−i k n 2πN · e−i N n 2π

N .

Da e−i N n 2πN = e−i n 2π = 1 folgt

F ((N + k) ω0) =T

N

N−1∑n=0

f (tn) e−i k n 2πN = F (k ω0) .

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 6: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1066 18. Diskrete Fourier-Transformation und Anwendungen

Eigenschaft 2: Tatsachlich gewinnt man aber mit der DFT nur Informationuber das Spektrum von f fur Frequenzen

nω0 mit n = 0, 1, 2, . . . ,N

2,

da die Frequenzen nω0 mit n = N2 + 1, . . . , N komplex konjugiert, symme-

trisch zur mittleren Frequenz liegen:

Satz 18.6:

F ((N − k) ω0) = F (k ω0) (k ∈ ZZ) .

Begrundung: Es ist

F ((N − k) ω0) = TN

N−1∑n=0

f (tn) e−i (N−k) n 2πN

= TN

N−1∑n=0

f (tn) e−i N n 2πN e+i k n 2π

N .

Wegen e−i N n 2πN = e−i n 2π = 1 und ei k n 2π

N = e−i k n 2πN gilt weiter

F ((N − k) ω0) = TN

N−1∑n=0

f (tn) e−i (N−k) n 2πN

= TN

N−1∑n=0

f (tn) e−i k n 2πN = F (k ω0).

Eigenschaft 3: Satz 18.6 hat weitreichende Konsequenzen fur die Frequenz-auflosung eines abgetasteten Signals:

(i) Die Amplituden der Frequenzen F (k ω0) stimmen fur k > N2 nicht mehr

mit dem Frequenzspektrum von f uberein.

(ii) Wird ein Signal f (t) , 0 ≤ t ≤ T , mit der Abtastfrequenz fa = NT ab-

getastet, so erhalt man nur Information uber das Spektrum von f furSignalfrequenzen f <

N2T = fa

2 . Diese Aussage deckt sich mit einem fun-damentalen Satz aus der Systemtheorie, dem sog. Abtasttheorem vonShannon:

Abtasttheorem: Ist f (t) ein Signal mit hochster auftretender Frequenzfs. Dann ist das Signal durch seine Abtastwerte vollstandig bestimmt,wenn die Abtastfrequenz fa großer als 2 fs. Man bezeichnet die Frequenz2 fs auch als Nyquist-Frequenz.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 7: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.1 Diskrete Fourier-Transformation 1067

18.1.2 Inverse diskrete Fourier-Transformation

Im Folgenden leiten wir die Umkehrformel zur DFT her: Eine Formel, die ausgegebenen diskreten Frequenzspektren F (mω0) , m = 0, . . . , N − 1, wiederdie ursprunglichen Funktionswerte f (tn) , n = 0, . . ., N −1, reproduziert. Umdiese Umkehrformel zu erhalten, stellen wir die DFT in Matrizenschreibweiseauf. Dazu kurzen wir die erste N -te Einheitswurzel ab durch

W := ei 2πN .

Dann gilt fur jedes k ∈ IN

W k =(ei 2π

N

)k

= e−i 2πN k =

(ei 2π

N

)−k

= W−k

und die Formel (∗) fur die DFT erhalt die Form

F (mω0) =T

N

N−1∑n=0

f (tn) Wm n, m = 0, . . . , N − 1 .

Um zur Matrizenschreibweise zu gelangen, fassen wir die diskreten SpektrenF (mω0), m = 0, . . .,N − 1, zu einem Vektor ~FN und die Abtastwertef (tn) , n = 0, . . .,N − 1, zu einem Vektor ~fN zusammen

~FN :=

F (0)F (ω0)...F ((N − 1) ω0)

; ~fN :=

f (t0)f (t1)...f (tN−1)

und fuhren die N ×N Fourier-Matrix MN ein

MN :=

1 1 1 . . . 11 W W 2 . . . WN−1

1 W 2 W 4 . . . W 2(N−1)

......

1 WN−1 W 2(N−1) . . . W (N−1)2

.

Mit dieser Vektornotation schreibt sich die DFT als

~FN =T

NMN

~fN . (∗2)

Beispiel CD.103. Fur N = 3 und N = 4 lautet die Fourier-Matrix

M3 =

1 1 11 1

2

(−1 +

√3 i)

12

(−1−

√3 i)

1 12

(−1−

√3 i)

12

(−1 +

√3 i) ,

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 8: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1068 18. Diskrete Fourier-Transformation und Anwendungen

M4 =

1 1 1 11 i −1 −i1 −1 1 −11 −i −1 i

.

Gleichung (∗2) liefert eine einfache Ausgangsbasis, um die inverse DFT zubilden, indem man von der Matrix MN die inverse Matrix bildet und damitnach dem Vektor ~fN auflost:

~fN =N

T

(MN

)−1 ~FN . (∗3)

Satz 18.7: Die inverse Matrix von MN ist durch 1N MN gegeben, da

MN ·MN = N IN ,

wobei IN die Einheitsmatrix ist.

Beweis: Das Element in der (k + 1)-ten Zeile und (l + 1)-ten Spalte des Pro-duktes MN ·MN (0 ≤ k, l ≤ N − 1) lautet

N−1∑j=0

W k j W j l =N−1∑j=0

W k j W−j l =N−1∑j=0

W (k−l) j =N−1∑j=0

(W k−l

)j.

Fur k = l ist W k−l = 1 und∑n−1

j=0 1 = N . Da(W k−l

)N = ei (k−l) 2πN N = 1,

gilt fur k 6= l mit der geometrischen Reihe

N−1∑j=0

(W k−l

)j=

1−(W k−l

)N1−W k−l

= 0 .

Damit kann man Gleichung (∗3) schreiben als

~fN =N

T· 1NMN

~FN .

In Komponentenschreibweise erhalt man die inverse diskrete Fourier-Trans-formation (iDFT)

f (tn) =1T

N−1∑k=0

F (k ω0) ei k n 2πN fur n = 0, . . . , N − 1.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 9: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.1 Diskrete Fourier-Transformation 1069

Satz 18.8: (Diskrete Fourier-Transformation). Sei f (t) ein endli-ches Zeitsignal fur 0 ≤ t ≤ T , welches durch die N Werte f (t0), f (t1),. . ., f (tN−1) abgetastet ist. ω0 := 2π

T , tj = j · 4t = j · TN (j =

0, . . . , N − 1).

(1) Dann ist die diskrete Fourier-Transformation (DFT) an den dis-kreten Stellen mω0 (m = 0, . . . , N − 1) gegeben durch

F (mω0) =T

N

N−1∑n=0

f (tn) e−i m n 2πN (DFT ) .

(2) Die Umkehrung heißt inverse diskrete Fourier-Transformation(iDFT) und ist fur k = 0, . . . , N − 1 gegeben durch

f (tk) =1T

N−1∑m=0

F (mω0) ei m k 2πN (iDFT ) .

Da bis auf einen Faktor die DFT und die diskrete Berechnung der Fourier-

Koeffizienten ubereinstimmen, wird in der Regel bei Programmroutinen ganzauf eine Skalierung verzichtet und nur die Summation ausgefuhrt. Dem An-wender wird es dann uberlassen, die Skalierung zu setzen. In Tabelle 18.1stellen wir zusammenfassend die kontinuierlichen Formeln sowohl der Fourier-Transformation als auch der Fourier-Reihen den diskreten gegenuber:

Tabelle 18.1: Formeln der Fourier-Transformation

Transformation

FT F (ω) =∫ ∞

−∞f (t) e−i ω t dt

DFT F (mω0) =T

N

N−1∑n=0

f (tn) e−i m n 2πN m=0,. . .,N -1

inverse FT f (t) =12π

∫ ∞

−∞F (ω) ei ω t dω

inverse DFT f (tk) =1T

N−1∑m=0

F (mω0) ei m k 2πN k=0,. . .,N -1

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 10: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1070 18. Diskrete Fourier-Transformation und Anwendungen

Reihen

Fourier-Koeffizienten cm =1T

∫ ∞

−∞f (t) e−i 2π

T m t dt

diskret cm =1N

N−1∑n=0

f (tn) e−i m n 2πN m=0,. . .,N -1

Fourier-Reihe f (t) =∞∑

m=−∞cm ei 2π

T m t

diskret f (tk) =1T

N−1∑m=0

cm ei m k 2πN k=0,. . .,N -1

Algorithmus fur die DFT

Um einen programmierbaren, reellen Algorithmus zur numerischen Berech-nung der DFT und der inversen DFT zu erstellen, verwenden wir die EulerscheFormel

e−iϕ = cosϕ− i sinϕ

und zerlegen die moglicherweise komplexwertige Funktion f (t) in Real- undImaginarteil

f (t) = x (t) + i y (t) .

In der Formel fur die DFT eingesetzt, zerfallt die DFT wegen

e−i(n m 2πN ) f (tn) =

(cos(nm 2π

N )− i sin(nm 2πN ))

(x (tn) + i y (tn))

= x (tn) cos(nm 2πN ) + y (tn) sin(nm 2π

N )

+ i(y (tn) cos(nm 2π

N )− x (tn) sin(nm 2πN ))

in Real- und Imaginarteil

F (mω0) =T

N

N−1∑n=0

[x (tn) cos(nm 2π

N ) + y (tn) sin(nm 2πN )]

+ iT

N

N−1∑n=0

[y (tn) cos(nm 2π

N )− x (tn) sin(nm 2πN )].

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 11: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.1 Diskrete Fourier-Transformation 1071

Die Maple-Prozedur DFT

Diese beiden Summenformeln werden in der Prozedur DFT verwendet, um dieDFT eines abgetasteten Signals zu berechnen. Der Aufruf der Prozedur DFTerfolgt durch die Angabe der Anzahl der Abtastpunkte N , dem Vektor x mitden Realteilen und dem Vektor y mit den Imaginarteilen der Abtastwerte.

> DFT := proc(N, x, y)

> #Prozedur zur Berechnung der diskreten FT,

> #die Normierung mit T/N wird nicht durchgefuhrt!

>

> local i, k, arg, resum, imsum, xf, yf;

>

> for i from 1 to N

> do resum := 0: imsum := 0:

> for k from 1 to N

> do arg := 2.∗Pi∗(i-1)∗(k-1)/N:

> resum := resum + x[k]∗cos(arg)+y[k]∗sin(arg):

> imsum := imsum - x[k]∗sin(arg)+y[k]∗cos(arg):

> od:

> xf[i] := resum:

> yf[i] := imsum:

> od:

> x := array([seq(evalf(xf[i]), i = 1..N)]):

> y := array([seq(evalf(yf[i]), i = 1..N)]):

> end:

4! Achtung: Man beachte, dass fur reelle Signale y der Nullvektor ist. Durchdie Prozedur werden die Eingabevektoren durch das diskrete Spektrum uber-schrieben. Die Normierung mit dem Faktor T

N wird nicht in der Prozedurdurchgefuhrt.

Beispiel M.57 (Mit Maple). Diskrete Fourier-Transformation des Recht-eckimpulses, der in Abb. 18.3 angegeben ist

Abb. 18.3. Rechteckimpuls

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 12: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1072 18. Diskrete Fourier-Transformation und Anwendungen

1. Definition des Signals> t0 := 2.: T := 2∗8:

> f := t -> Heaviside(t+t0) - Heaviside(t-t0):

> Heaviside(0):=1:

> Heaviside(0.):=1: #ab Maple7 notwendig

> plot(f(t), t = -(T/2+1)..T/2+1, numpoints = 300, thickness = 2);

und Abtastung der Rechteckfunktion> m := 4: N := 2ˆm; dt := 2∗T/N:

> x := array([seq(f((i-1)∗dt-T), i = 1..N)]):

> y := array([seq(0, i = 1..N)]):

N := 16

2. Berechnung der diskreten Fourier-Transformation mit der Proze-dur DFT:> set time := time():

> DFT(N, x, y):

> CPU time 1 := (time()-set time)∗seconds;

> print(evalm(T/N∗x)); print(evalm(T/N∗y));

CPU time 1 := .245 seconds

[2. − 1.923879533 1.707106782 − 1.382683434 1.000000002−.6173165681 .2928932179 − .0761204701 0 − .0761204663.2928932180 − .6173165684 .9999999927 − 1.3826834271.707106779 − 1.923879532]

[0 − .3826834319 .7071067795 − .9238795308 .9999999944−.9238795306 .7071067817 − .3826834337 .3589793239 10−8

.3826834373 − .7071067845 .9238795333 − 1.000000007.9238795379 − .7071067934 .3826834401]

Die Rechenzeit zur Berechnung der DFT mittels der direkten Berechnung derSumme ist betrachtlich. Fur Rechnungen mit N ≥ 2048 ist dieser Algorithmusnicht mehr praktikabel.

Einen weitaus schnelleren Algorithmus erhalt man, wenn man N = 2m alsspezielle Unterteilung wahlt und dann alle Symmetrien ausnutzt. Dies fuhrtzur sog. schnellen Fourier-Transformation (FFT, Fast Fourier Trans-form), die auf J.W. Cooley und J.W. Tukey 1965 zuruckgeht und die z.B.in [Meyberg, Vachenauer: Hohere Mathematik 2, Springer 1991] vorgestelltwird. Auf Details werden wir aber nicht eingehen, sondern in 15.8 lediglich dieMaple-Prozedur FFT benutzen, um die diskrete Fourier-Transformation vondigitalen Signalen zu bestimmen.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 13: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.1 Diskrete Fourier-Transformation 1073

Algorithmus fur die inverse DFT

Zerlegt man F (mω0) = x [m] + i y [m] in Real- und Imaginarteil, gilt mit derEulerschen Formel

ei n m 2πN F (mω0) =

(cos(nm 2π

N ) + i sin(nm 2πN ))

(x [m] + i y [m])

= x [m] cos(nm 2πN )− y [m] sin(nm 2π

N )

+ i(y [m] cos(nm 2π

N ) + x [m] sin(nm 2πN )).

Die Formel fur die inverse DFT zerfallt ebenfalls in eine Summe fur den Real-und eine Summe fur den Imaginarteil:

f (tk) =1T

N−1∑m=0

(x [m] cos(nm 2π

N )− y [m] sin(nm 2πN ))

+ i1T

N−1∑m=0

(y [m] cos(nm 2π

N ) + x [m] sin(nm 2πN )).

Hierbei ist x der Vektor mit dem Realteil und y der Vektor mit dem Ima-ginarteil des Spektrums. Analog der Prozedur DFT erhalt man so die Pro-zedur iDFT fur die Berechnung der nicht-normierten Summenausdrucke, dieauf der CD-ROM enthalten ist. Der Aufruf erfolgt analog zur DFT-Prozedur.

Beispiel M.58 (Mit Maple). Wir wenden die inverse diskrete Fourier-Transformation auf das Spektrum des Rechteckimpulses aus Beispiel CD.57an.> iDFT(N, x, y):

> print(evalm(1/T∗x)); print(evalm(1/T∗y));

[−.437500 10−9 −.375000 10−10 .296250 10−9 −.533125 10−9

−.185625 10−8 .210625 10−8 −.968750 10−9 1.000011.00001 −.750000 10−10 −.167438 10−8 −.125000 10−9

.157350 10−8 −.343750 10−9 .212500 10−8 .750000 10−9][−.256250 10−9 − .125000 10−9 .160000 10−8 − .431250 10−9

.825000 10−9 .768750 10−9 .212500 10−9 − .437051 10−9

.506250 10−9 .568750 10−9 .774276 10−9 − .331250 10−9

−.134034 10−8 .103125 10−8 − .437500 10−9 − .212500 10−9]

4! Achtung: Aufgrund von Rundungsfehlern mussen die Terme mit Faktoren≤ 10−8 als Null interpretiert werden. Somit lautet das korrigierte Ergebnis

[0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0] ;[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] .

Dies ist das abgetastete Ausgangssignal des Rechtecks.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 14: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1074 18. Diskrete Fourier-Transformation und Anwendungen

18.2 18.2 Diskrete Fourier-Transformation mit MAPLE

Die Prozeduren fourier und invfourier werden bei Maple herangezogen,um die Fourier-Transformation bzw. deren Inversen bei analytisch gegebe-nen Funktionen zu bestimmen. Die Prozeduren FFT und iFFT stehen furdie Berechnung der diskreten Fourier-Transformation und deren Inversen zurVerfugung. Algorithmisch werden sie durch die schnelle Fourier-Transformationrealisiert. Daher muss die Anzahl der diskreten Abtastwerte als Potenz von 2gewahlt werden: N = 2m.

Da die diskrete Fourier-Transformation auch fur komplexwertige Funktionenerklart ist, mussen der Prozedur FFT zwei Vektoren ubergeben werden: derdiskrete Realteil und der zugehorige diskrete Imaginarteil der Funktion. Furreellwertige Funktionen ist der zweite Vektor der Nullvektor. Die Syntax derProzeduren lautet> FFT (m, x, y);> iFFT (m, x, y);

wobei die Parameter die folgende Bedeutung besitzen:

- m: Potenz der Anzahl der abgetasteten Werte: 2m

- x: Vektor der diskreten Realteile indiziert von 1 bis 2m

- y: Vektor der diskreten Imaginarteile indiziert von 1 bis 2m.

4! Achtung: Beide Prozeduren uberspeichern die Eingabevektoren mit denErgebnisvektoren. Als Ausgabe des Aufrufs erhalt man den Wert 2m. Die Er-gebnisvektoren mussen anschließend explizit mit dem print-Befehl, print(x)

bzw. print(y), ausgegeben werden. Vor dem Aufruf mussen die ProzedurenFFT und iFFT durch> readlib(FFT):

geladen werden.

4! Achtung: Es ist zu beachten, dass Maple als Ergebnis der FFT bzw.iFFT die nicht-normierten Summenausdrucke in die Vektoren x und y ab-speichert. Fur die Berechnung der DFT mussen die Ergebnisvektoren mit demFaktor T

N und fur die inverse DFT mit 1T multipliziert werden.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 15: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.2 Diskrete Fourier-Transformation mit MAPLE 1075

Beispiel M.59 (Mit Maple). Die Funktion

f (t) = S (t)− S (t− t0)

wird im Intervall 0 ≤ t ≤ T = 8 abgetastet. Wir berechnen fur t0 = 2 undt0 = 1

4 die FFT.

Fall t0 = 2: Fur t0 = 2 erhalt man eine Rechteckfunktion und mit m = 4insgesamt N = 24 = 16 Abtastwerten:

Abb. 18.4. Abgetastete Rechteckfunktion

> #Definition der Funktion.

> m := 4: N := 2ˆm:

> t0 := 2: T := 8:

> f := t->Heaviside(t)-Heaviside(t-t0):

> Heaviside(0):=1:

> Heaviside(0.):=1: #ab Maple7 notwendig

>

> #Abtastung der Funktion

> dt := T/N: #Abtastintervall

> fd := array([seq(f((i-1)*dt), i=1..N)]); #Realteilvektor

> imd := array([seq(0, i = 1..N)]); #Imaginarteilvektor

fd := [1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0]imd := [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

> #Berechnung der DFT und Ausgabe

> readlib(FFT):

> FFT(m, fd, imd):

> print(evalm(T/N∗fd)); print(evalm(T/N∗imd));

[2 1.5068 0.5000 − 0.1241 0 0.4170 0.4999 0.20020 0.2002 0.4999 0.4170 0 − 0.1241 0.5000 1.5068]

[0 − 1.0068 − 1.2071 − 0.6241 0 0.0829 − 0.2071 − 0.29970 0.2997 0.2071 − 0.0829 0 0.6241 1.2071 1.0068]

Die Probe uber die inverse DFT ergibt> iFFT(m, fd, imd):

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 16: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1076 18. Diskrete Fourier-Transformation und Anwendungen

> print(fd); print(imd);[1.00000 1.00000 .99999994 .161871 10−9 .625000 10−10

.500000 10−10 .312500 10−9 .502601 10−10 − .625000 10−10

−.625000 10−10 − .625000 10−10 .381281 10−10 − .625000 10−10

−.500000 10−10 .437500 10−9 − .250260 10−9]

[.625000 10−10 .437500 10−9 − .625000 10−10 .105437 109

.625000 10−10 − .250000 10−10 .312500 10−9 .347271 10−10

−.625000 10−10 − .125000 10−10 .625000 10−10 − .230437 10−9

−.625000 10−10 − .150000 10−9 − .312500 10−9 − .159727 10−9]

4! Achtung: Man beachte, dass aufgrund von Rundungsfehlern, Terme mitdem Faktor 10−9 und kleiner als Null interpretiert werden mussen und somitdas Ergebnis der inversen DFT lautet:

[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0][0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

Fall t0 = 14 : Fur t0 = 1

4 und m = 4 erhalt man den Dirac-Impuls als abgetas-tete Funktion

Abb. 18.5. Abgetasteter Dirac-Impuls

fd := [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

Die FFT-Prozedur liefert als DFT den Realteil

[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

und den Imaginarteil

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] ,

was der Fourier-Transformierten des Dirac-Impulses, F (δ (t)) = 1, entspricht.

Als nachstes untersuchen wir, in welchem Frequenzbereich die DFT einer abge-tasteten Funktion mit der Fourier-Transformation der kontinuierlichen Funk-tion ubereinstimmt.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 17: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.2 Diskrete Fourier-Transformation mit MAPLE 1077

Beispiel M.60 (Mit Maple). Gegeben ist die Funktion f (t) = S (t) e−t.Wir bestimmen mit der Prozedur FFT die diskrete und mit fourier die kon-tinuierliche Fourier-Transformation. Anschließend werden beide Transformier-ten in ein Schaubild gezeichnet und verglichen.

Abb. 18.6. Funktion f (t) = S (t) e−t

Die Funktion f wird analog dem Vorgehen in Beispiel CD.59 an den diskretenStellen ti = (i− 1) dt = (i− 1) T

N im Bereich 0 ≤ t ≤ T abgetastet.> f := t->Heaviside(t)∗exp(-t): Heaviside(0):=1:

> Heaviside(0.):=1: #ab Maple7 notwendig

> m := 6: N := 2ˆm:

> fd := array([seq( f((i-1)∗dt), i = 1..N )]):

> imd := array([seq(0, i = 1..N)]):

Fur die Diskussion wahlen wir T = 8 und variieren m = 6, 8, 10, so dass dieAnzahl der Abtastpunkte N = 2m von 64, 256 bis 1024 variiert.> readlib(FFT):

> FFT(m, fd, imd):

fd enthalt nach dem Aufruf der Prozedur FFT den Realteil des diskretenSpektrums von f und imd den Imaginarteil. Zur graphischen Darstellung gehenwir daher zum Betrag der mit T

N normierten Großen uber:

FT d [k] =∣∣ TN fd [k] + i T

N imd [k]∣∣

=√(

TN fd [k]

)2+(

TN imd [k]

)2k = 1 . . . N

Um in der Vektorschreibweise zu bleiben, verwenden wir den map-Operator,der den Betrag abs auf jede Komponente des komplexen Vektors

T

Nfd+ i

T

Nimd

anwendet. Die zugehorigen Frequenzen

ωk = (k − 1) · 2πT

(k = 1 . . . N)

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 18: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1078 18. Diskrete Fourier-Transformation und Anwendungen

speichern wir in den Vektor w data.> FT d := map(abs, evalm(T/N∗fd + I∗T/N∗imd)):

> w data := array([seq((i-1)∗2∗Pi/T, i = 1..N)]):

Zur graphischen Darstellung muss der plot-Routine eine Liste von Wertepaa-ren der Form [[

ω1, F (ω1)],[ω2, F (ω2)

], . . . ,

[ωN , F (ωN )

]]ubergeben werden. Daher gehen wir von den beiden Vektoren w data und FT d

mit dem zip-Operator zum Vektor der Paaren uber. convert konvertiert dasGanze in eine Liste.> plot data := convert(zip((a, b)->[a, b], w data, FT d), list):

> p DFT := plot(plot data, style = POINT, color = red):

Um die DFT mit der Fourier-Transformation zu vergleichen, berechnen wirmit dem fourier-Befehl die Fourier-Transformierte von f .> with(inttrans):

> F(w) := fourier(f(t), t, w);

> p FT := plot(abs(F(w)), w = 0..200, color = blue):

F (w) :=1

1 + I w

und zeichnen die beiden Graphen von F (ω) und der diskreten Fourier-TransformiertenF in ein Schaubild (vgl. Abb. 18.7 (a)).> with(plots):

> display(p DFT, p FT);

Abb. 18.7. Fourier-Transformierte und DFT der Funktion f (t) = S (t) e−t

Fuhrt man die Abtastung und anschließende Berechnung der DFT fur m = 8,also mit 256 Abtastpunkten durch, erhalt man als Ergebnis Abb. 18.8 (b),bzw. mit m = 10 und 1024 Abtastpunkten Abb. 18.8 (c). Fur Abb. 18.8 (c)wird ω nur im Bereich von 0 ≤ ω ≤ 800 variiert.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 19: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.2 Diskrete Fourier-Transformation mit MAPLE 1079

Abb. 18.8.

Diskussion:

(1) Fuhrt man die Rechnungen mit steigender Zahl von Abtastpunkten durch,bemerkt man einen erheblichen Anstieg in der Rechenzeit. Um die Re-chenzeit von Programmteilen genau zu bestimmen, verwendet man dietime-Prozedur: Vor und nach dem zu messenden Programmteil wird dieZeit gestoppt; die Zeitdifferenz entspricht der verbrauchten Rechenzeit inSekunden:

> start time := time():

> FFT(m, var(fd), var(imd)):

> CPU time:=(time()-start time);

Die Rechenzeiten, die fur m = 8, 10, 12 und 14 auf einem Intel PentiumIII 800MHz benotigt wurden, sind in der zweiten Zeile von Tabelle 18.2aufgelistet.

Tabelle 18.2: Rechenzeiten der Prozedur FFT:

m

N

8256

101024

124096

1416384

FFT 0.19 s 0.97 s 5.17 s 35sevalhf(FFT) − 0.05 s 0.24 s 1.25s

Bei einer Anzahl von Abtastpunkten N > 4096 sind die Antwortzeitenganz erheblich. Um diese zu verkurzen, fuhrt man die numerische Berech-nung mit der evalhf -Option durch.

> evalhf(FFT(m, var(fd), var(imd))):

Die resultierenden Rechenzeiten sind in der unteren Zeile von Tab. 18.2eingetragen. evalhf berechnet einen Ausdruck numerisch, indem die Hard-ware Floating-Point-Einheit des Systems benutzt wird. Falls Digits aufden Wert 15 gesetzt wird, erfolgt die Auswertung von evalf und evalhfmit vergleichbarer Genauigkeit.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 20: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1080 18. Diskrete Fourier-Transformation und Anwendungen

(2) Die Werte der DFT liegen symmetrisch zur mittleren Frequenz. Dies wirdauch durch die Zahlenergebnisse aus Beispiel CD.60 bestatigt. Insbesonde-re stimmen die Amplituden der Frequenzen F (k ω0) fur k = N

2 +1, . . . , Nnicht mehr mit dem Frequenzspektrum von F (k ω0) uberein! Nur die Fre-quenzamplituden F (k ω0) , k = 0, . . . , N

2 , sind vergleichbar mit F (k ω0).Aus der graphischen Darstellung von F (k ω0) fur m = 8 in Abb. 18.8 (b)entnimmt man, dass die DFT und die FT im Bereich 0 ≤ ω ≤ 90 gutubereinstimmen. Frequenzen, die großer sind als N

2 ω0, konnen also durchdie DFT nicht wiedergegeben werden. Diese Beobachtung deckt sich mitdem Abtasttheorem von Shannon, dass die Abtastfrequenz fa großerals die doppelte Signalfrequenz 2 fs sein muss, um alle Signalfrequenzenzu erfassen.

Ubertragen auf unser Beispiel mit m = 8, liefert die Abtastfrequenz fa =1dt = N

T = 2568 = 32 eine maximal reproduzierbare Frequenz von fa

2 =16⇒ ω = 2π · 16 ≈ 96.

(3) Fur N →∞ stimmt fur festes ω der Wert der DFT mit der FT eines end-lichen Zeitsignals f (t) uberein. Um dieses Verhalten qualitativ zu bestati-gen, wahlen wir ein festes ω1 = 14.9225 und vergleichen fur ω1 den exaktenWert der FT F (f) (ω1) = 6.6686 · 10−2 mit den Werten der DFT furm = 6, 8, 10 und 12. Diese Werte der DFT, sowie der Absolutbetrag desFehlers sind in Tab. 18.3 eingetragen.

Tabelle 18.3: Fehler der DFT in Abhangigkeit von m.

DFT Fehlerm = 6 8.2553 · 10−2 1.569 · 10−2

m = 8 6.8509 · 10−2 1.646 · 10−3

m = 10 6.7139 · 10−2 2.770 · 10−4

m = 12 6.6907 · 10−2 4.523 · 10−5

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 21: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.3 Anwendungsbeispiele zur DFT mit MAPLE 1081

18.318.3 Anwendungsbeispiele zur DFT mit MAPLE

Die DFT wird sowohl zur Analyse von Signalen (→ Signalanalyse) als auch zur Bestimmung

des Ubertragungsverhaltens von Systemen (→ Systemanalyse) intensiv verwendet. Denn in

der Regel liegen die Signale nur diskret vor und die kontinuierliche Fourier-Transformation

ist nicht anwendbar. Sowohl zur Signal- als auch zur Systemanalyse werden Beispiele dis-

kutiert.

18.3.1 Anwendung der DFT zur Signalanalyse

Die Signalanalyse mit der DFT stellt sich schematisch folgendermaßen dar

Diskretes Signal→ FFT →Frequenzspektrum

Zur besseren Interpretierbarkeit der Ergebnisse stellen wir in diesem Abschnittdas Spektrum in Einheiten von f = ω

2π dar. Außerdem zeichnen wir die Spek-tren immer nur bis N

2 ω0, da sie fur(

N2 + 1

)ω0, . . . , (N − 1) ω0 komplex-

konjugiert symmetrisch um N2 auftreten. Die Frequenzskala lauft somit bis

zur maximal erfassbaren Frequenz

fmax = N2

1T .

Da in der Analyse nur Vielfache von ω0 auftreten, betragen die Frequenz-abstande

4f = 1T ,

Beispiel M.61 (Mit Maple). Gegeben ist die Funktion

f (t) = sin (2π t)

im Intervall 0 ≤ t ≤ 10.1. Wie hangt der Spektralbereich von der Anzahl derAbtastpunkte ab?

Abb. 18.9. Sinusfunktion mit 10 Schwingungen

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 22: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1082 18. Diskrete Fourier-Transformation und Anwendungen

4! Wir wahlen als Zeitintervall nicht ein Vielfaches des Periodenintervalls, daman in der Regel bei gemessenen Signalen das Periodenintervall nicht kennt.

Wir tasten die Funktion f (t) im Intervall [0 . . . 10.1] an den Stellen ti = i dt,i = 0 . . . N − 1, mit dt = T

N ab und variieren N . Die abgetasteten Werte sindin dem Vektor fd abgespeichert.

> f := t->evalf(sin(2∗Pi∗ t)):

> m := 6: N := 2ˆm:

> T := 10.1: dt := evalf(T/N):

> fd := array([seq(f((i-1)∗dt), i = 1..N)]):

> imd := array([seq(0, i = 1..N)]):

Mit der Prozedur FFT wird die diskrete Fourier-Transformation berechnet.Die Vektoren fd und imd beinhalten dann den Real- und Imaginarteil derDFT.> readlib(FFT):

> FFT(m, fd, imd);

64

Die Aufbereitung der Daten erfolgt dadurch, dass wir von Real- und Ima-ginarteil zum Betrag ubergehen und ihn anschließend als Funktion der Fre-quenzen f = 0 . . . N

21T darstellen. Mit dem map-Operator nehmen wir von

jeder Komponente den Betrag; gleichzeitig skalieren wir die Transformiertemit dem Faktor T

N .> FT d := map(abs, evalm(T/N∗fd+I∗T/N∗imd)):

> f data := array([seq((i-1)/T, i = 1..N/2)]):

f data stellt den Vektor aller x-Werte und FT d den Vektor aller y-Werte dar.Um diskrete Punkte zeichnen zu konnen, mussen sie als Liste vorliegen, diejeweils die Paare [xi, yi] enthalt. Um aus den beiden Einzelvektoren einenVektor aus den Paaren zu bilden, verwenden wir den zip-Befehl. Mit convertkonvertieren wir anschließend den Ergebnisvektor in eine Liste der Form

[[x1, y1] , [x2, y2] , . . . , [xN , yN ]] .

> plot data := convert(zip((a, b)->[a, b], f data, FT d), list):

> plot(plot data, style = line);

Durch die DFT bestimmt sich die Frequenz f ≈ 1, die in dem Signal enthaltenist. Allerdings erhalten wir nicht eine Linie, sondern eine Verbreiterung, danur ein endlicher Zeitbereich [0, T ] abgetastet wurde.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 23: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.3 Anwendungsbeispiele zur DFT mit MAPLE 1083

Abb. 18.10. Spektrum der abgetasteten Sinusfunktion

Variiert man die Abtastrate N = 64, 256, 512, so erhalt man als Ergebnis dieAbb. 18.11 (a), (b) und (c).

Abb. 18.11.

Vergroßern wir in Bild (c) den Bereich f = 0..3, so ist dieser identisch mit Bild(a).

Zusammenfassung: Durch Variation der Abtastrate N andert man beifestem T nur fmax; die Frequenzauflosung bleibt dabei erhalten; insbeson-dere wird die Linie f = 1 durch Vergroßerung von N nicht schmaler.

Beispiel M.62 (Maximal erfassbare Frequenz, mit Maple). Gegeben istein Signal, das sich aus mehreren Einzelfrequenzen zusammensetzt. Gesuchtwird die Abtastung, bei der die großte im Signal enthaltene Frequenz nochwiedergegeben wird. Vorgegeben ist eine Uberlagerung von Sinusfunktionenmit den Frequenzen 1Hz, 2Hz, 3Hz und 4Hz:

f(t) = sin(2π t) + sin(2 · 2π t) + sin(3 · 2π t) + sin(4 · 2π t)

(1) Abtastung der Funktion f (t) an den Stellen t = i ∗ dt mit dt = TN .

> f := t->evalf(sin(1∗2∗Pi∗t) + sin(2∗2∗Pi∗t) + sin(3∗2∗Pi∗t) + sin(4∗2∗Pi∗t)):> m := 8: N := 2ˆm:

> T := 10.1: dt := evalf(T/N):

> fd := array([seq(f((i-1)∗dt), i = 1..N)]):

> imd := array([seq(0, i = 1..N)]):

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 24: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1084 18. Diskrete Fourier-Transformation und Anwendungen

Abb. 18.12. Signal mit vier Frequenzen: 1, 2, 3, 4 Hz

(2) Berechnung der DFT mit der Prozedur FFT> readlib(FFT):

> FFT(m, fd, imd):

(3) Darstellung des Frequenzspektrums> FT d := seq(T/N∗sqrt(fd[i]ˆ2+imd[i]ˆ2), i=1..N/2):

> f data := seq((i-1)/T, i=1..N/2):

> plot data := [seq([f data[i],FT d[i]],i=1..N/2)]:

> plot(plot data, style = line, color = red):

Abb. 18.13. Spektrum des Signals mit vier Frequenzen

Bei einer Abtastrate von N = 256 werden alle 4 Frequenzen des Signals richtigbei f = 1, 2, 3, 4Hz wiedergegeben. Variiert man bei konstantem T die Ab-tastrate von N = 64, 128, 256, erhalt man die unten angegebenen Abb. alsErgebnis der DFT.

Abb. 18.14.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 25: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.3 Anwendungsbeispiele zur DFT mit MAPLE 1085

Zusammenfassung: Man erkennt wie in Beispiel CD.61, dass bei festem T

durch Variation der Abtastrate N die maximale Frequenz fmax geandert wird.Ist N zu klein gewahlt (wie in Abb. 18.14 (a)), werden nicht mehr alle Fre-quenzen des Signals richtig erfasst. Nach den Abtasttheorem muss die Abtast-frequenz fa > 2 fs = 2 · 4Hz gewahlt werden, um die großte Frequenz 4Hznoch zu erhalten. Aus

fa =N

T

folgt fur eine Auflosung der Frequenz: fa = NT > 2 · 4Hz = 8Hz ⇒ N > 80.

Beispiel M.63 (Frequenzauflosung, mit Maple). Gegeben ist wieder einSignal, das sich aus mehreren Einzelfrequenzen zusammensetzt. Gesucht ist derAbtastparameter, bei dem alle Frequenzen getrennt aufgelost werden. DieseUntersuchung sei am Beispiel der Uberlagerung von 4 Sinusfunktionen mitden Frequenzen 1.0Hz, 1.2Hz, 2.3Hz und 2.7Hz durchgefuhrt:

f(t) = sin(2π t) + sin(1.2 · 2π t) + sin(2.3 · 2π t) + sin(2.7 · 2π t)

Abb. 18.15. Zeitsignal mit vier Frequenzen: 1.0, 1.2, 2.3 und 2.7 Hz

> f := t->evalf(sin(1.0 ∗ 2∗Pi∗t) + sin(1.2 ∗ 2∗Pi∗t)

+ sin(2.3 ∗ 2∗Pi∗t) + sin(2.7 ∗ 2∗Pi∗t)):

(1) Abtastung der Funktion f (t) an den Stellen t = i · dt mit dt = TN .

> m := 8: N := 2ˆm;

> T := 5: dt := evalf(T/N):

> fd := array([seq(f((i-1)∗dt), i = 1..N)]):

> imd := array([seq(0, i = 1..N)]):

N := 256

(2) Berechnung der DFT mit der Prozedur FFT> readlib(FFT):

> FFT(m, fd, imd):

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 26: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1086 18. Diskrete Fourier-Transformation und Anwendungen

(3) Graphische Darstellung der FFT im Frequenzbereich f> FT d := seq(T/N∗sqrt(fd[i]ˆ2+imd[i]ˆ2), i=1..N/2):

> f data := seq((i-1)/T, i=1..N/2):

> plot data := [seq([f data[i],FT d[i]], i=1..N/2)]:

> plot(plot data, style = line, color = red);

Abb. 18.16. Spektrum der Funktion bei zu kleiner Abtastzeit T

Es werden nur 3 Frequenzen getrennt aufgelost: f = 1, 2.3 und 2.7. DurchVariation von N wurde man zwar die maximal erfassbare Frequenz erhohen,aber nicht die Frequenzauflosung. Die Frequenzauflosung 4f wird nur durcheine Vergroßerung des Messintervalls erhoht, da

4f =1T

.

Damit die Frequenzen 1 und 1.2 noch getrennt aufgelost werden, muss 4f ≤0.22 gewahlt werden⇒ T ≥ 10. Wir setzen T = 10 und T = 20. Die zugehorigen

Ergebnisse sind in Abb. 18.17 (a) und (b) dargestellt:

Abb. 18.17.

Wie erwartet, sind ab T = 10 alle 4 Frequenzen getrennt erfasst. Fur T = 20verkleinert man zwar nochmals den Spektralbereich, erhalt aber eine bessereAuflosung der Linien.

Zusammenfassung: Die Frequenzauflosung 4f = 1T kann nur durch

eine Vergroßerung des Messintervalls T erzielt werden.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 27: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.3 Anwendungsbeispiele zur DFT mit MAPLE 1087

18.3.2 Anwenden der DFT zur Systemanalyse eines Tiefpasses

Die Systemanalyse mit der DFT lasst sich schematisch durch folgendes Dia-gramm darstellen:

Signal −→ System −→ Systemreaktion

↓ ↓

DFT DFT

↓ ↓Spektrum desEingangssignals

Spektrum desAusgangssignals

Die Systemfunktion (= Ubertragungsfunktion) ist das Verhaltnis vom Spek-trum des Ausgangssignals zum Spektrum des Eingangssignals. Zur Verdeutli-chung der Anwendung der DFT bei der Systemanalyse behandeln wir exem-plarisch die Bestimmung der Ubertragungsfunktion eines Tiefpasses.

Gegeben ist ein Tiefpass, der aus zwei Π-Gliedern zusammengesetzt ist (sieheCD-Abschnitt 12.5.3 Beispiel CD.53).

Abb. 18.18. Tiefpass-Filter

Experimentell kann die Systemfunktion bestimmt werden, indem man dasNetzwerk mit dem δ-Impuls anregt, die Reaktion des Systems U3 (= Impuls-antwort) abtastet und mittels der DFT die Fourier-Transformierte davon be-stimmt. Diese reprasentiert dann die Systemfunktion.

Bestimmung der Impulsantwort

Um die diskreten Werte der Impulsantwort zu erhalten, losen wir numerisch diedas Netzwerk beschreibenden Differenzialgleichungen. Die numerischen Werteder Impulsantwort entsprechen den diskreten, abgetasteten Werten von U3.Nach dem Maschen- und Knotensatz lautet das Differenzialgleichungssystem(siehe CD.53)

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 28: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1088 18. Diskrete Fourier-Transformation und Anwendungen

> eq1 := R∗(C1∗dU1 + I1) = Ue - U1:

> eq2 := U1 = L1∗dI1 + U2:

> eq3 := I1 = C2∗dU2 + I2:

> eq4 := U2 = L2∗dI2 + U3:

> eq5 := I2 = C3∗dU3 + U3/R:

Diese Gleichungen werden nach den Ableitungen aufgelost, um auf jede Diffe-renzialgleichung das Euler-Verfahren anwenden zu konnen.> dfunct := {dU1, dU2, dU3, dI1, dI2}:> sol := solve({eq1, eq2, eq3, eq4, eq5}, dfunct);

> assign(sol);

sol :={dI2 = −−U2 + U3

L2, dU2 = −−I1 + I2

C2, dU3 = −−I2R+ U3

C3R,

dI1 = −−U1 + U2L1

, dU1 = −RI1− Ue+ U1RC1

}Die Parameter fur die Bauelemente und die Anfangsbedingungen werden fest-gelegt> R := 0.8: C1 := 1: C2 := C1∗2: C3 := C1: L1 := 1: L2 := L1:

> U1 := 0: U2 := 0: U3 := 0: I1 := 0: I2 := 0:

Fur die Anregung des Netzwerkes Ue (t) wahlen wir eine Annaherung an denδ-Impuls durch eine Rechteckfunktion mit Breite t0 und Hohe 1

t0> t0 := 0.5: Ue := (Heaviside(t)-Heaviside(t-t0))/t0:

> Heaviside(0):=1: Heaviside(0.):=1: #ab Maple7 notwendig

Die Differenzialgleichungen werden mit dem Euler-Verfahren gelost. Damit vonden diskreten Werten im Anschluss die FFT gebildet werden kann, setzen wirdie Anzahl der Zeitschritte als Potenz von 2:> m := 9: N := 2ˆm:

> T := 90: dt := T/N: t := 0:

> data1[1] := U3:

> data2[1] := subs(t = 0, Ue):

> for i from 2 to N

> do

> U1 := U1 + dt∗dU1:

> I1 := I1 + dt∗dI1:

> U2 := U2 + dt∗dU2:

> I2 := I2 + dt∗dI2:

> U3 := U3 + dt∗dU3:

> t := t + dt:

> data1[i] := U3:

> data2[i] := Ue:

> od:

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 29: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.3 Anwendungsbeispiele zur DFT mit MAPLE 1089

Die Impulsantwort wird mit dem plot-Befehl dargestellt.> plot([seq([(n-1)∗dt, data1[n]], n = 1..N)]);

Abb. 18.19. Impulsantwort des Tiefpasses

Signalanalyse der Impulsantwort

Zur Analyse von h (t) mit der DFT konvertiert man mit dem convert-Befehldie Daten in einen Vektor fd, der den Realteil der Abtastwerte darstellt. DerImaginarteil der Abtastwerte, imd, wird auf Null gesetzt, da die Impulsantwortein reelles Signal darstellt.> fd := convert(data1, array):

> imd := array([seq(0, i = 1..N)]):

Mit der schnellen Fourier-Transformation wird die DFT berechnet> readlib(FFT):

> evalhf(FFT(m, var(fd), var(imd))):

Um die DFT der Impulsantwort (= Systemfunktion) graphisch darzustellen,werden von den skalierten Werten die Betrage gebildet> FT d := seq(T/N∗sqrt(fd[i]ˆ2+imd[i]ˆ2), i=1..N/4):

> w data := seq((i-1)∗2∗Pi/T, i=1..N/4):

FT d enthalt diese Betrage der Systemfunktion und w data stellt den Vektorder diskreten Frequenzen ω dar. Zur graphischen Darstellung geht man wiederzu einer Liste von Wertepaaren uber.> plot data := [seq([w data[i],FT d[i]], i=1..N/4)]:

> plot(plot data, style = line, color = red);

Diskussion: Der Graph der diskreten Ubertragungsfunktion hat qualitativden gleichen Verlauf wie der der analytisch berechneten (siehe CD-Abschnitt5.5.2 Beispiel CD.2). Aus dem Graphen entnimmt man die gleiche Grenzfre-quenz bei halber Maximalamplitude

ωg = 1.4 .

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 30: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1090 18. Diskrete Fourier-Transformation und Anwendungen

Abb. 18.20. Diskretes Spektrum der Impulsantwort

Auffallend ist, dass die Maximalamplitude bei der diskreten Ubertragungs-funktion 0.52 betragt anstatt 0.5. Fuhrt man Simulationen durch, bei der dieImpulsbreite t0 variiert wird, erhalt man sogar wesentlich hohere Werte furdiese Maximalamplitude.

Der Grund fur dieses ”falsche” Verhalten liegt darin, dass wir fur unsere nume-rische Bestimmung der Impulsantwort eine Naherung des δ-Impulses nehmen.Dies erkennt man am Besten am Spektrum des Eingangssignals: Ersetzen wirin der Frequenzanalyse data1 durch data2, folgt das Spektrum des Eingangs-signals.

Abb. 18.21.

4! Achtung: Da das Eingangssignal nicht exakt die Impulsfunktion δ (t) re-prasentiert, ist das Spektrum nicht konstant 1. Folglich ist das Antwortsignalnicht exakt die Impulsantwort. Da die Impulsfunktion eine idealisierte Funk-tion darstellt, ist sie auch experimentell nicht realisierbar und das diskutierteProblem stellt sich auch bei der experimentellen Bestimmung der Impulsant-wort.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 31: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.3 Anwendungsbeispiele zur DFT mit MAPLE 1091

Systemanalyse

Um das Spektrum des Eingangssignals zu berucksichtigen, nutzen wir die all-gemeine Definition der Systemfunktion aus: Die Systemfunktion H (ω) ist dasVerhaltnis vom Spektrum des Ausgangssignal G (ω) zum Spektrum des Ein-gangssignals F (ω):

H (ω) =G (ω)F (ω)

.

Dividieren wir daher in unserer Analyse die beiden Spektren durcheinander,erhalten wir die diskrete Ubertragungsfunktion.

(1) Analyse des Eingangssignals> fd in := convert(data2, array):

> imd := array([seq(0, i = 1..N)]):

> evalhf(FFT(m, var(fd in), var(imd))):

> FT d in := seq(T/N∗sqrt(fd in[i]ˆ2+imd[i]ˆ2), i=1..N/4):

(2) Analyse des Ausgangssignals> fd out := convert(data1, array):

> imd := array([seq(0, i = 1..N)]):

> evalhf(FFT(m, var(fd out), var(imd))):

> FT d out:= seq(T/N∗sqrt(fd out[i]ˆ2+imd[i]ˆ2), i=1..N/4):

(3) Ubertragungsfunktion: Verhaltnis von FT d out / FT d in> for i from 1 to N/4 do FT transfer[i] := FT d out[i]/FT d in[i] od:

> w data := seq((i-1)∗2∗Pi/T, i=1..N/4):

> plot data := [seq([w data[i],FT transfer[i]], i=1..N/4)]:

> plot(plot data, style = line, color = red);

Abb. 18.22. Diskrete Ubertragungsfunktion

Nun stimmt auch die Amplitude der Ubertragungsfunktion mit der aus CD-Abschnitt 5.5.2 Beispiel CD.2 uberein und ist unabhangig von der speziellenWahl der Impulsbreite T .

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 32: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

1092 18. Diskrete Fourier-Transformation und Anwendungen

MAPLE-Worksheets zu Kapitel 18

Die folgenden elektronischen Arbeitsblatter stehen fur Kapitel 18 mitMaple zur Verfugung. Sie konnen direkt durch Anklicken aus derpdf-Version des Buches gestartet werden.

Diskrete Fourier-Transformation (DFT) mit Maple

Diskrete Fourier-Transformation mit der FFTSignalanalyse diskreter Signale mit der FFTSystemanalyse eines Tiefpasses mit der FFT

18.4 18.4 Zusammenstellung der MAPLE-Befehle

Befehle zur diskreten Fourier-Transformation

readlib(FFT) Befehle zur diskreten Fourier-Transformation.FFT(m,x, y) Berechnung der DFT mit dem FFT-Algorithmus.

m ist die Potenz der Anzahl der abgetasteten Wer-te, N = 2m;x ist der Vektor mit dem diskreten Realteil derFunktion;y ist der Vektor mit dem diskreten Imaginateil derFunktion.

iFFT(m,x, y) Berechnung der inversen DFT mit dem FFT-Algorithmus.m, x, y analog wie bei FFT, jetzt abermit den diskreten Frequenzwerten.

print(x) Ausgabe der diskreten Werte des Vektors x.

4! Achtung: FFT und iFFT uberspeichern die Vektoren x und y

durch die nicht-normierten Ergebnisvektoren!

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018

Page 33: Mathematik für Ingenieure - home.hs-karlsruhe.deweth0002/buecher/mathe/downloads/kap18ext... · 18 DiskreteFourier-Transformationund Anwendungen 18.1 Diskrete Fourier-Transformation

18.5 Aufgaben zur diskreten Fourier-Transformation 1093

18.518.5 Aufgaben zur diskreten Fourier-Transformation18.1 Bestimmen Sie von der Rechteckfunktion

f (t) =1

T(S (t)− S (t− T ))

fur T = 1 die diskrete Fourier-Reihe sowie die diskrete Fourier-Transformation,

wenn die Funktion im Intervall [0, 25] mit 256 Abtastwerten diskretisiert

wird. Verwenden Sie hierzu die Prozedur DFT oder FFT.

18.2 Bestimmen Sie mit der Prozedur FFT das diskrete Spektrum der Rechteck-

funktion

f (t) =1

T(S (t)− S (t− T ))

fur T → 0, wenn Tmax = 25 und die Abtastung n = 512 betragt. Wie

verhalten sich die Nullstellen des Spektrums?

18.3 Vergleichen Sie die Fourier-Transformierte der Funktion

f (t) = e−t S (t)

mit der DFT, wenn die Funktion im Intervall [0, 20] mit n = 64, 128, 256, 512,

1024 Abtastwerten diskretisiert wird. Verwenden Sie den fourier-Befehl so-

wie die Maple-Prozedur FFT.)

18.4 Bestimmen Sie die DFT der Funktion

f (t) = e−(t−2.5)2 ,

wenn die Funktion im Intervall [0, 20] durch n = 256 Abtastwerte diskreti-

siert wird.

18.5 Frequenzanalyse der Kosinusfunktion

a) Stellen Sie eine Kosinusfunktion mit einer ganzen Anzahl von Schwingun-

gen (z.B. 10 Schwingungen) dar. Tasten Sie die Funktion mit 512 Abtast-

punkten ab. Wie hangt die Frequenzauflosung der DFT mit Tmax zusammen?

Verdoppeln bzw. halbieren Sie Tmax (bei 512 Abtastpunkten); welches ∆f

ergibt sich nun? Halten Sie Tmax fest und variieren Sie die Abtastrate. Was

zeigt sich?

b) Stellen Sie 10.5 Schwingungen dar und berechnen Sie die DFT nochmals.

Wie verandern sich die Spektrallinien?

18.6 Systemanalyse eines Hochpasses

Gegeben ist der Hochpass, HP2TLCL, aus CD-Abschnitt 12.5.3 Beispiel

CD.54. Man bestimme fur die Eingangsfunktion

Ue (t) = e−(t−T )2 mit T = 3 · 10−5

die Systemreaktion, indem das lineare Differenzialgleichungssystem nume-

risch gelost wird. Gehen Sie vor wie in CD-Abschnitt 18.9.2 und bestimmen

Sie von Eingangs- und Ausgangssignal die FFT und berechnen Sie damit die

Ubertragungsfunktion. Lesen Sie aus der Ubertragungsfunktion die Grenz-

frequenz ab.

(C) Thomas Westermann Mathematik für Ingenieure (Springer-Verlag) 2018