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

