Wie klappt die normale und inverse Fouriertransformation?
1 view (last 30 days)
Show older comments
% Parameters
tau = 0.2;
sig = 5;
dt = 0.01;
t = 0:dt:55;
fs = 1./dt;
N = length(t);
tshift = t-t(round(N/2));
fshift = (-N/2:N/2-1)*(fs/N);
% Correlationfunction
Cor = (sig^2*tau/2)*exp(-abs(t)/tau);
FT_Cor = (fftshift(fft(Cor)));
FTFT_S_Cor = abs(fftshift(ifft(FT_Cor)));
% Figure
figure('Name','Korrelationsfunktion')
plot(t,Cor)
hold on;
plot(tshift,FTFT_S_Cor)
title('Realraum Korrelation')
legend(' Cor ','FTFT(Cor)')
set(gca, 'YScale', 'log')
Hallo,
Eigentlich sollte die Funktion nach zweifacher Fouriertransformation - abgesehen von Normierungsfaktoren- das gleiche ergeben, oder?
Ich wäre sehr dankbar für Tipps und Hilfe.
0 Comments
Accepted Answer
Harald
on 26 Jun 2023
Hallo,
abgesehen von den Verschiebungen durch fftshift sind die Unterschiede zwischen Cor und FTFT_S_Cor in der Größenordnung von 1e-16. Das entspricht der relativen Genauigkeit von Double bei Zahlen der Größenordnung 1.
FT_Cor = fft(Cor);
FTFT_S_Cor = abs(ifft(FT_Cor));
plot(Cor - FTFT_S_Cor)
Die logarithmische Skala ist aus meiner Sicht hier irritierend, da Abweichungen zwischen 1e-16 und 1e-120 sehr groß wirken. Das sind sie ja aber nicht.
Viele Grüße,
Harald
3 Comments
Harald
on 26 Jun 2023
Hallo Charlo,
sehr schön. :) Dann bitte auch die Antwort "akzeptieren".
Viele Grüße,
Harald
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!