How to plot Fresnel Diffraction?

55 ビュー (過去 30 日間)
Mehmet
Mehmet 2014 年 3 月 1 日
コメント済み: Matthew Fisher 2020 年 12 月 1 日
Hi I am trying to plot 1D fresnel diffraction in MATLAB. Is there any way of it?
  1 件のコメント
Image Analyst
Image Analyst 2014 年 3 月 1 日
Yes. You need the equation giving the signal as a function of distance, then use plot().

サインインしてコメントする。

回答 (1 件)

Prasobhkumar P. P.
Prasobhkumar P. P. 2020 年 3 月 4 日
編集済み: Prasobhkumar P. P. 2020 年 3 月 4 日
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 件のコメント
Matthew Fisher
Matthew Fisher 2020 年 12 月 1 日
Shouldn't H=exp(1i*k*z).*exp(-1i*pi/(lambda*z)*(u.^2))?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeVisual Exploration についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by