How to plot Fresnel Diffraction?

52 Ansichten (letzte 30 Tage)
Mehmet
Mehmet am 1 Mär. 2014
Kommentiert: Matthew Fisher am 1 Dez. 2020
Hi I am trying to plot 1D fresnel diffraction in MATLAB. Is there any way of it?
  1 Kommentar
Image Analyst
Image Analyst am 1 Mär. 2014
Yes. You need the equation giving the signal as a function of distance, then use plot().

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Prasobhkumar P. P.
Prasobhkumar P. P. am 4 Mär. 2020
Bearbeitet: Prasobhkumar P. P. am 4 Mär. 2020
function U = fresnel_advance(U0, dx, dy, z, lambda)
% The function receives a field U0 at wavelength lambda
% and returns the field U after distance z, using the Fresnel
% approximation. dx, dy, are spatial resolution.
%If required, Please see below code's 2d version at
k=2*pi/lambda;
[~ nx] = size(U0);
Lx = dx * nx;
dfx = 1./Lx;
u = ones(nx,1)*((1:nx)-nx/2)*dfx;
O = fftshift(fft(U0));
H = exp(1i*k*z).*exp(-1i*pi*lambda*z*(u.^2));
U = ifft2(O.*H);
  1 Kommentar
Matthew Fisher
Matthew Fisher am 1 Dez. 2020
Shouldn't H=exp(1i*k*z).*exp(-1i*pi/(lambda*z)*(u.^2))?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Visual Exploration finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by