fourier transform of gaussian beam to simulate far-field beam
- From: "Jurgen Chan" <bigfoot84s@xxxxxxxxxxx>
- Date: Fri, 9 May 2008 03:03:00 +0000 (UTC)
Hi,
i have been working on some simulation of optical stuffs
such as the simulation of light beam in free space.
i want to use the fraunhofer approximation method as such
to fourier transform my gaussian beam by using fftshift(fft
(gaussian)). this is simulate the propagated beam at far
field.
f(x,y)= exp(-(x.^2+y.^2)/Wo)
g(x,y)= ho F(x/λd, y/λd) ,where ho=(j/λd)exp(-jkd),
d is the far-field dist,
λ is the wavelength,
g(x,y) is the far-
field beam function,
F is the fourier transform
of f(x,y) which is the
initial beam,
Wo is the initial beam
width.
However i cannot get the correct result in matlab.
The beam-width of the far-field beam seems to be affected
by the spacing of the array. And this makes the simulated
propagated beam different from the expected result. Varying
the spacing of the array(dx and dy), sometimes i will get a
small beam width at far-field. In fact i am using a very
small beam width (eg. 0.001m) and the expected far field
beam waist should be bigger than the initial beam width.
Also, how should i normalize the F(vx,vy)? is it divide by
N^2 ?
By using the Parseual’s Theorem, the power of the initial
and farfield beam should be the same. but in my program,
the power of the initial beam and the farfield beam, they
are not equal.
below is my coding:
N = 2^9;%2^9; %//size of iterations for x and y directions
w_0 = 1.84D-3; %//Beam waist in m
wavelength = 1.064D-6;
dx = 0.05D-3;%//unit length of iterations; per m
dy = dx;
x = [1:N];
y = x;
z =0; % starting position of z
k_0 = 2*pi/wavelength;
dk = pi/N;
Rayleigh= w_0.^2*pi/wavelength
[X,Y] = meshgrid((x-1-N/2),(x-1-N/2));
radius = sqrt((X*dx).^2 + (Y*dx).^2);
u_0 = A.*exp(-(radius/w_0).^2); %//gaussian
P_0= sum(sum(abs(u_0).^2));
u_F= 1/N/N*fft2(u_0);
u_F= fftshift(u_F);
z_d =0.5985; % far-field dist
h_0= j/wavelength/(z_d).*exp(-j*k_0.*z_d);
g_F=h_0.*u_F0;
P_1= sum(sum(abs(g_F).^2));
figure(1)
surf(abs(u_0),'facecolor','flat','edgecolor','none')
camlight left;
lighting phong
figure(2)
surf(abs(g_F),'facecolor','flat','edgecolor','none')
camlight left;
lighting phong
Can anyone help me with this problem ? Thanks...
.
- Follow-Ups:
- Re: fourier transform of gaussian beam to simulate far-field beam
- From: Bruno Luong
- Re: fourier transform of gaussian beam to simulate far-field beam
- Prev by Date: Re: different markers in plotyy
- Next by Date: Re: coherence over time
- Previous by thread: Modulation Transfer function
- Next by thread: Re: fourier transform of gaussian beam to simulate far-field beam
- Index(es):