Diffraction pattern of plane wave through Circular Aperture
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
syed khaleduzzaman
am 26 Okt. 2022
Kommentiert: Bjorn Gustavsson
am 27 Okt. 2022
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');
0 Kommentare
Akzeptierte Antwort
Bjorn Gustavsson
am 26 Okt. 2022
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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Phased Array Design and Analysis 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!