How do I create a source field of light through a circular aperture?

17 vues (au cours des 30 derniers jours)
Janna Hinchliff
Janna Hinchliff le 8 Avr 2020
I have been trying to construct a code where I propagate a light source through a circular aperture. So far I have
L1=0.5; % side length
M=500; % number of samples
dx1=L1/M; % src sample interval
x1=-L1/2:dx1:L1/2-dx1; % src coords
y1=x1;
lambda=500*10^-9; % wavelength
k=2*pi/lambda; % wavenumber
w=0.05; % source half width (m)
z=500; % propagation dist and focal length (m)
[X1,Y1]=meshgrid(x1,x1);
u1=circ(sqrt(X1^2+Y1^2)/w); % src field
I1=abs(u1.^2); % src intensity
figure;
imagesc(x1,y1,I1);
axis square; axis xy;
colormap('gray'); xlabel('x (m)'); ylabel('y (m)');
title('z= 0 m');
but the intensity plot shown does not represent a circular source. Is my definition of u1 incorrect or have a made an error in the coding?
I have defined the function circ as
function[out]=circ(r)
%
% circle function
%
% evaluates circ(r)
% note: returns odd number of samples for diameter
%
out=abs(r)<=1;
end

Réponse acceptée

darova
darova le 8 Avr 2020
First of all you forgout about element-wise:
X1.^2 + Y.^2 % each element of matrix in power '2'
Here is what i tried

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by