Hallo Ich habe eine Schwierigkeit mit dem Split-Schritt Fourier-Methode. Angenommen, ich eine Gaußsche im freien Raum verbreiten wollen, ich verwenden soll:Split-Schritt Fourier-Propagation - Beam Propagation-Methode
A(x,z) = F^-1 [exp((i*k^2*z)/(2*k_0))* F[A(x,0)]]
wobei F die Fourier und F^-1 ist die inverse Fourier.
Was ich tun möchte, ist plotten I (x, z = 0), I (x, z = 3) und die Intensitätsverteilung in der x-z-Ebene.
Ich versuchte es numerisch tun (Plotten I (x, z = 0), I (x, z = 3)) mit dem folgenden Code:
lambda = 0.5*10^-6;
k0 = 2*pi/lambda;
w = 10*10^-6;
N=500;
a=0.4*10^-4;
dx=a/N;
x = -a/2:dx:a/2-dx;
Dk_x = 2*pi*N/a;
dk_x=2*pi/a;
k_x=-Dk_x/2:dk_x:Dk_x/2-dk_x;
N = (k_x.^2)/(2*k0);
z = 0:(5*10^-3)/length(N):5*10^-3;
z(end) = [];
% A0 = A(x,z=0)
A0 = exp(-x.^2/w^2);
I_0 = A0.*conj(A0);
% F_A0 is the fourier of A0
F_A0 = fft(A0);
% A3 = A(x,z=3)
A3 = ifft(exp(1i*N*3).*F_A0);
I_3 = A3.*conj(A3);
figure
plot(x,I_3,x,I_0)
Allerdings ist I_3 nicht, was ich zu erwarten erhalten, die eine andere Gaußsche von geringerer Intensität ist.
Außerdem bin ich mir nicht sicher, wie ich die Intensitätsverteilung in der x-z-Ebene darstellen würde. Sie schlagen vor, mit der imagesc Funktion, die ich nehme an, ich mag es verwenden würde:
imagesc(x,z, abs(ifft(exp(1i*N.*z).*F_A0).^2)
aber das dritte Argument, die angeblich eine Matrix sein, ist ein Vektor in dem, was ich geschrieben habe ..
Kann mir bitte jemand dabei helfen?
Vielen Dank im Voraus.
die Ausbreitung entlang z, ist 1D die Gaußsche Sie übertragen möchten, muss der Split-Schritt eine for-Schleife, wo Sie propagiere jedes Mal mit einem kleinen dz ... – bla
aber für I (x, z = 3), schaue ich nicht auf ein einzelnes z? – FlyGuy
Ich glaube ich verstehe was du jetzt meinst. Ich werde es jetzt versuchen und aktualisieren. Danke! – FlyGuy