DIFFR4 Generating a slit diffraction pattern

by Chuck DiMarzio Northeastern University 2010

!! This file may be copied, used, or modified for educational and
!! research purposes provided that this header information is not
!! removed or altered, and provided that the book is cited in
!! publications, as DiMarzio, Charles A., Optics for Engineers,
!! CRC Press, Boca Raton, FL, 2011.
!! http://www.crcpress.com
!! Other distribution is prohibited without permission.

Contents

Start

lambda=0.8;n=1;
zaxis=(-5:0.01:5);
xaxis=(-5:0.01:5);
[x,z]=meshgrid(xaxis,zaxis);
k=2*pi/lambda;
fundamental=1.3*exp(1i*n*k*z);
top=find(z<0);bottom=find(z>0);
field=zeros(size(x));
field(top)=fundamental(top);

xc=[-1,1];scaling=length(xc)/5;
for q=1:length(xc);
  if(floor(q/10)*10==q);disp([num2str(q),'/',num2str(length(xc))]);end;
  r=sqrt((x(bottom)-xc(q)).^2+z(bottom).^2);
  field(bottom)=field(bottom)+exp(1i*k*n*r)./r/scaling;
end;
field(find((abs(x)>1.1)&(abs(z)<0.1)))=0;
field(find((abs(x)<0.9)&(abs(z)<0.1)))=0;

fig32=figure;imagesc(xaxis,zaxis,real(field));axis image;
colormap(flipud(gray));caxis([-1,1]);colorbar;
hold on;
plot([-5,-1.1,-1.1,-5],[-1,-1,1,1]*0.1,'w');
plot(0.9*[-1,1,1,-1,-1],[-1,-1,1,1,-1]*0.1,'w');
plot([5,1.1,1.1,5],[-1,-1,1,1]*0.1,'w');
plot(-5*lambda/n*cos((0:0.01:1)*pi),...
      5*lambda/n*sin((0:0.01:1)*pi),'w--');

field=zeros(size(x));
field(top)=fundamental(top);
xc=-1:0.02:1;scaling=length(xc)/5;
for q=1:length(xc);
  if(floor(q/10)*10==q);disp([num2str(q),'/',num2str(length(xc))]);end;
  r=sqrt((x(bottom)-xc(q)).^2+z(bottom).^2);
  field(bottom)=field(bottom)+exp(1i*k*n*r)./r/scaling;
end;
field(find((abs(x)>1)&(abs(z)<0.1)))=0;

fig33=figure;imagesc(xaxis,zaxis,real(field));axis image;
colormap(flipud(gray));caxis([-1,1]);colorbar;
hold on;
plot([-5,-1,-1,-5],[-1,-1,1,1]*0.1,'w');
plot([5,1,1,5],[-1,-1,1,1]*0.1,'w');
plot(-5*lambda/n*cos((0:0.01:1)*pi),...
      5*lambda/n*sin((0:0.01:1)*pi),'w--');
10/101
20/101
30/101
40/101
50/101
60/101
70/101
80/101
90/101
100/101