Fouriertransformierte < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 22:32 Di 02.09.2008 | Autor: | FrankM |
Hallo,
ich habe eine Frage zur 2-dimensionale Fouriertransformierte in Matlab (das verwendete Skript habe ich unten angehängt). Zum Test wollte ich Fouriertransformierte von [mm] exp(-\bruch{x^2+y^2}{4a^2}) [/mm] mit a=5e-9 berechnen. Das Ergebnis ist natürlich analytisch bekannt und lautet
[mm] a^2/(2*Pi)*exp(-0.5*a^2*(kx^2+ky^2))
[/mm]
Ich habe jetzt eine 100x100 Matrix mit Funktionswerten erstellt habe und dann mit fftshift(fft()) die Fouriertransformierte berechnet. Mein Problem ist jetzt, dass die Einträge der Fouriertransformierten komplex sind und verglichen mit dem analytischen Ergebnis viel zu groß sind. Ich vermute, dass die Fouriertransformierte komplex ist, liegt daran, dass ich ja irgendwie implementieren muss, dass die Null in der Mitte der Matrix liegt, aber ich habe keine Idee, wie ich eine Übereinstimmung zwischen dem analytischen und numerischen Ergebnis erhalte.
Vielen Dank
Frank
Beginn m-File
%Urspruengliche Funktion [mm] exp(-(x^2+y^2)/(4*a^2))
[/mm]
%analytische Fouriertransform. [mm] a^2/(2*Pi)*exp(-0.5*a^2*(kx^2+ky^2))
[/mm]
%Erstelen der Ausgangsmatrix
pr=zeros(100,100);
%Breite des Profils
a=5e-9;
%Abtastweite
schritt=0.5e-9;
%Ausgangsmatrix
for irun=1:100
for jrun=1:100
x=schritt*(irun-1)-49.5*schritt;
y=schritt*(jrun-1)-49.5*schritt;
[mm] pr(irun,jrun)=exp(-(x*x+y*y)/(4*a^2));
[/mm]
end
end
%Berechnen der Fouriertransformierte und zentrieren um Null
f_te=fftshift(fft2(pr));
%Analytische Fouriertransformierte
f_ana=zeros(100,100);
%Schrittweite im k-Raum
schritt=2*pi/(100*schritt);
for irun=1:100
for jrun=1:100
kx=(irun-50.5)*schritt;
ky=(jrun-50.5)*schritt;
[mm] f_ana(irun,jrun)=a^2/(2*pi)*exp(-0.5*a^2*(kx^2+ky^2));
[/mm]
end
end
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:59 Mo 08.09.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|