Diffraction pattern of plane wave through Circular Aperture

17 ビュー (過去 30 日間)
syed khaleduzzaman
syed khaleduzzaman 2022 年 10 月 26 日
コメント済み: Bjorn Gustavsson 2022 年 10 月 27 日
I have done diffraction pattern for infinite slit (in the y-dir.) with a =10 microns (total opening = 20 microns). but cannot do same thing for circular aperture with Diameter = 15 microns. Here is my code for slit aperture. Requesting for circular aperture-plane wave diffraction pattern solution.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This program creates a plane wave function U(r), the transmission
% profile of a 20 um slit p(x), and a combination of the two, g(x),
% a distance away d computed from the user input Fresnel number.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
% cwd = pwd;
% cd(tempdir);
% pack
% cd(cwd)
posx=[];
posy=[];
% posy=[];
lambda=1.31; % wavelength
k=(2*pi)/lambda;
z=1;
Nf=input('Enter Fresnel Number: ');
slit=10;
d=(slit^2)/(lambda*Nf);
%d=input('Enter distance of observation plane in microns: ');
Ur=[];
aperture=[];
% 2-D Plane Wave Amplitude U(x)
for x=-30:1:30
for y=-30:1:30
posx=[posx x];
posy=[posy y];
u=exp(-j*k*z); % plane wave
Ur=[Ur u];
% begin slit definition
if (x>=-slit)&(x<=slit)
amp=1;
else
amp=0;
end %
aperture=[aperture amp];
end
IU=abs(Ur).^2;
% Complex Wave after Aperture f(x)
fx=Ur.*aperture;
If=abs(fx).^2;
% g(x) and Intensity Determination |g(x)|^2
hx=[];
aa=[];
ho=(j/(lambda*d))*exp(-j*k*d);
for a=-70:0.025:70
aa=[aa a];
const=(-j*pi)/(lambda*d);
h1=a^2;% Fresnel Appx. of transfer function of free space
h2=exp(const*h1);
hx=[hx h2];
end
hhx=ho*hx;
gx=conv2(fx,hhx,'same'); % direct convolution
Ig=abs(gx).^2;
% intensity normalization
maxg1=max(Ig);
% Pupil Function p(x,y)
figure(1);
plot(posx, aperture);
title('Slit Transmission Profile');
xlabel('X-Distance (microns)');
ylabel('Transmission Value');
% Aperture Function f(x,y)
figure(2);
plot(posx,If);
title('Aperture Shadowed Beam Pattern (d=0)');
xlabel('X-Distance (microns)');
ylabel('Normalized Intensity');
% Observation Plane g(x)
figure(3);
plot(posx,Ig/maxg1);
t1=sprintf('Aperture Affected Beam Pattern (Nf=%f, d=%f microns)',Nf,d);
title(t1);
xlabel('X-Distance (microns)');
ylabel('Normalized Intensity');

採用された回答

Bjorn Gustavsson
Bjorn Gustavsson 2022 年 10 月 26 日
Your first problem is surely that all your variables are 1-D arrays and it seems you still only model some kind of linear aperture. To model a circular aperture you will need to model a fully 2-D circular aperture. Start by making posx and posy 2-D arrays and then make aperture into a circular pupil.
  4 件のコメント
syed khaleduzzaman
syed khaleduzzaman 2022 年 10 月 27 日
Thank you !
Bjorn Gustavsson
Bjorn Gustavsson 2022 年 10 月 27 日
You're welcome, happy that it helped.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePhased Array Design and Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by