Zurück Vor +Ebene Home Inhalt Index Hilfe

Diskrete FourierTransformation

Die Daten müssen getrennt für Real- und Imaginärteil in je eine Datei gespeichert sein. Es wird Äquidistanz der Daten vorausgesetzt. Die Anzahl der Daten müssen eine Zweierpotenz sein. Die Daten müssen zeilenweise abgespeichert werden. Sie können mittels des Befehls readdata( dateiname, Zahlenformat,1) gelesen werden. Als Zahlenformate kommen integer oder float in Frage.

restart:
readlib(readdata):
readlib(FFT):
readdata(`realteildatei`,Zahlenformat,1):
datar:=array("):
readdata(`imaginärteildatei`,Zahlenformat,1):
datai:=array("):
N:=     ; `(* Zweierpotenz *)`:
dataxy:=[seq([i,abs(datar[i]+I*datai[i])],i=1..2^N)]:
plot(dataxy);
FFT(N,datar,datai);
`(* Das Ergebnis wird in die Datendateien eingeschrieben. *)`:
datxy:=[seq([i,abs(datar[i]+I*datai[i])],i=1..2^N)]:
plot(datxy,1..50);

Beispiel:

Daten eines Rechteckimpulses--

Realteil:462 Nullen, 100 Einsen, 462 Nullen

Imaginärteil: 1024 Nullen.

readlib(FFT):
datar:= array([0$462,1$100,0$462]):
datai:= array([0$1024]):
N:=10     ;  `( *  Zweierpotenz *)`:
dataxy:=[seq([i,abs(datar[ i]+I*datai[i])],i=1..2^N)]:
plot(dataxy);
FFT(N,datar,datai);
`(* Das Ergebnis wird in die Datendateien eingeschrieben. *) `:
datxy:=[seq([i,abs(datar[i]+I*datai[i])],i=1..2^N)]:
plot(datxy,1..50);

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik