Fast Fourier Transformation

Neue Frage »

gitterrost4 Auf diesen Beitrag antworten »
Fast Fourier Transformation
Hallo,

Ich versuche gerade mittels Fast Fourier Transformation eine Funktion zu interpolieren und ein gewisses Stueck vorauszusagen. Ich benutze hierfuer die Statistische Programmiersprache R

Ich habe nach einigem Herumprobieren folgenden Code zustande gebracht:

code:
1:
2:
3:
4:
5:
6:
7:
8:
x=seq(0,100)
y=sin(x)
fftbl=fft(y, inverse=F)
i=complex(real=0,imaginary=1)
t=100
yneu=sum( 1/length(x) * (fftbl * exp(x * i * 2 * pi * (t) /length(x))))


Zur Erklaerung: Ich nehme mir eine Funktion, die ich an 101 Datenpunkten auswerte (hier sin(x)). Diese moechte ich nun mit einer Fast-Fourier-Transformation interpolieren. Die Funktion fft(vector) bestimmt mir die fast-Fourier Koeffizienten zu diesem Vektor und gibt diese als Vector zurueck. Die Grundoperationen, die auf die Vektoren angewandt werden, agieren alle Elementweise. sum() bildet dann die Summe ueber alle Elemente des Vektors.

Nun das Problem: Diese Funktion interpoliert zwar meine Stuetzstellen wie gewollt, liefert aber fuer komplexe Werte. Wenn ich mich recht an meine Numerik Vorlesung erinnere, sollte die Interpolationsfunktion von reellwertigen Funktionen doch wieder reell werden (Ich erinnere mich noch gut an den Beweis).

Kann sich vielleicht irgendjemand durch den Programmcode finden, und mir einen Fehler aufzeigen?

Vielen Dank schonmal im Voraus! (Fuer Fragen zum Code stehe ich natuerlich offen)
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »