Fresnel propagation using matlab

In summary, the conversation discusses the use of the Fresnel diffraction formula to propagate a spherical beam and the attempted use of MATLAB code to achieve this. However, the resulting image is not diffracted as expected and instead appears to be focused. The conversation also mentions the equation for a spherical wave originating from a point source and questions the validity of the formula. The poster wonders if moving the discussion to an advanced physics forum would be more helpful.
  • #1
Raze2dust
63
0
Hi!

Didnt know where to post this..
I was trying to fresnel propogate a spherical beam using the formula

[tex]U(x,y)=\frac{e^{jkz}e^{\frac{jk(x^{2}+y^{2})}{2z}}}{j\lambda z}\int^{\infty}_{-\infty}\int^{\infty}_{-\infty}{U(\xi,\eta)e^{\frac{jk(\xi^{2}+\eta^{2})}{2z}}}e^{-j\frac{2\pi}{\lambda z}(x\xi+y\eta)} d\xi d\eta[/tex]

[Ref. Intro. to Fourier Optics by Goodman pg 67]

which is basically the Fourier Transform of the product of the complex field just to the right of the aperture and a quadratic phase exponential, aside from the multiplicative factors.

I useed the following MATLAB code..

clc;
clf
clear;

%Parameters
N=512;
L=0.001;
dx=2*L/N;
[x y]=meshgrid(-L:dx:L-dx,-L:dx:L-dx);%plane1
x0=0;y0=0;z0=0;
[X Y]=meshgrid(-L:dx:L-dx,-L:dx:L-dx);%plane2 for fresnel prop
lambda=532*10^(-9);
k=2*pi/lambda;
%sigma=j*k/(2*z);

z=0.1;
z2=0.2;

%r=sqrt((x-x0).^2+(y-y0).^2+(z-z0)^2);
psi1=zeros(N);
psi1(128:384,128:384)=exp(j*k*z); %sigma ignored since its too large
F1=psi1.*exp(j*k*(x.^2+y.^2)/(2*(z2-z)));
FFT1=fftshift(fft2(F1));
F2=exp(j*k*(z2-z))*exp(j*k*(X.^2+Y.^2)/(2*(z2-z)))/(j*lambda*(z2-z));
U=FFT1;

figure(1)
I=psi1.*conj(psi1);
imagesc(I);
axis square;
colormap(gray);

figure(2)
I=U.*conj(U);
imagesc(I);
axis square;
colormap(gray);

where I have used a square aperture at z=0.1 m and tried to propogate it till z=0.2 m
But the propogated image, instead of being diffracted more is coming out to be focussed..

I would be grateful for any help
 
Physics news on Phys.org
  • #2
hmm i guess too long for anyone to read fully..

suppose I have a point source at z=z0. What will be the equation of the Spherical wave which originates from there?

I tried using [tex]\frac{(z-z0)}{r^{2}}e^{jkr}[/tex]

when is this valid?
 
  • #3
hmm...will moving this to advanced physics forum help?
 

FAQ: Fresnel propagation using matlab

1. What is Fresnel propagation?

Fresnel propagation is a mathematical method used to describe the propagation of light waves from one point to another. It takes into account the effects of diffraction, which causes the light waves to spread out and become distorted as they travel.

2. How is Fresnel propagation used in MATLAB?

In MATLAB, Fresnel propagation is implemented using the Fresnel Transform function (ft). This function takes in an input field and calculates the propagated field at a specified distance using the Fresnel integral.

3. Can MATLAB simulate Fresnel propagation in 3D?

Yes, MATLAB can simulate Fresnel propagation in 3D using the 3D Fourier Transform function (fft3). This function takes in an input field and calculates the propagated field in 3D space at a specified distance.

4. Are there any limitations to using MATLAB for Fresnel propagation?

One limitation of using MATLAB for Fresnel propagation is that it assumes the input field is a scalar wave, meaning it has a single amplitude and phase. This may not accurately represent all types of light waves, such as polarized or partially coherent waves.

5. How can I visualize the results of Fresnel propagation in MATLAB?

MATLAB has built-in functions for visualizing 2D and 3D fields, such as the surf and slice functions. These can be used to plot the propagated field and observe any changes in the light wave as it propagates.

Similar threads

Replies
1
Views
2K
Replies
1
Views
5K
Replies
2
Views
3K
Replies
7
Views
10K
Replies
5
Views
2K
Replies
4
Views
1K
Replies
6
Views
1K
Replies
1
Views
1K
Back
Top