How to plot Fresnel Diffraction?

51 vues (au cours des 30 derniers jours)
Mehmet
Mehmet le 1 Mar 2014
Commenté : Matthew Fisher le 1 Déc 2020
Hi I am trying to plot 1D fresnel diffraction in MATLAB. Is there any way of it?
  1 commentaire
Image Analyst
Image Analyst le 1 Mar 2014
Yes. You need the equation giving the signal as a function of distance, then use plot().

Connectez-vous pour commenter.

Réponses (1)

Prasobhkumar P. P.
Prasobhkumar P. P. le 4 Mar 2020
Modifié(e) : Prasobhkumar P. P. le 4 Mar 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 commentaire
Matthew Fisher
Matthew Fisher le 1 Déc 2020
Shouldn't H=exp(1i*k*z).*exp(-1i*pi/(lambda*z)*(u.^2))?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Visual Exploration dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by