2019/8/28,基于MATLAB编程模拟光学实验,钱朝阳,测试计量技术及仪器,在物理学波动光学的部分,往往由于这部分知识较为抽象且要用到复杂的数学运算,有时很难掌握好这部分的知识为了较好地解决这一问题,本文根据惠更斯-菲涅耳原理计算推导了夫琅禾费衍射场下单缝衍射的光强分布公式,建立了单缝衍射的Matlab实现模型,利用Matlab强大的计算功能,得出光强分布矩阵,然后用Matlab绘图函数得到衍射图样,同时绘制了相应的衍射光强分布图并结合理论公式对衍射图样进行了分析单缝衍射,单缝衍射是光在传播过程中遇到障碍物,光波会绕过障碍物继续传播的一种现象如果波长与缝、孔或障碍物尺寸相当或者更大时,衍射现象最明显把单色点光源放在透镜的焦点上,经过透镜后的单色平行光垂直照射衍射屏时,在屏后面不同距离上会观察到一些衍射现象,其中当屏远离到足够大的距离后,光斑中心出现一个较大的亮斑,外围是一些较弱的明暗相间的同心圆环,此后再往外移动,衍射花样出现稳定分布,中心处总是亮的,只是半径不断扩大而已,这种衍射称为夫琅禾费衍射光的衍射现象是光的波动性的一种表现,通过对光的各种衍射现象的研究可以深入具体地了解光的波动性。
惠更斯原理认为:传播中的波面上任何一点都可以认为是一个新的次波源,由这些次波源发出的次波是球面波,这些次波的公共包络面就是下一个时刻的波面菲涅尔将其进一步具体化,认为可以将波面S分成许多面积元ds,每个ds在P点的振动可写为: 这便是计算衍射场的常用公式,即惠更斯-菲涅尔原理的表达式单色平行光通过单缝,可看作N条光束的叠加来计算,单缝衍射的几何关系如图所示.把单缝看作一排等间隔的光源,N个光源分布,P处的光强为这N个光源照射结果的合成设计成MATLAB程序如下:,clear lamba=500e-9; %波长 a=1e-3;L=1; %a是狭缝宽度,L屏与障碍物的距离 xm=3*lamba*L/a; %屏幕上y方向的范围最大值 n=51; %屏幕上的点数 xs=linspace(-xm,xm,n); n=51; %缝上的点数 yp=linspace(-a/2,a/2,n); for i=1:n %对屏幕和光缝上各点循环,计算缝点到屏幕位置的距离 r=sqrt((xs(i)-yp).^2+L^2); phi=2*pi.*(r-L)./lamba;%相位差 sumcos=sum(cos(phi)); %数组求和 sumsin=sum(sin(phi)); B(i,:)=(sumcos^2+sumsin^2)/n^2; %屏幕上的归一化光强 end,N=256; %确定灰度的等级 Br=(B/max(B))*N; %定标 subplot(1,2,1) image(xm,xs,Br); colormap(gray(N)); %色调处理 subplot(1,2,2) plot(B,xs,'k');,杨氏双缝干涉,clear lam=500e-9 a=2e-3;D=1; ym=5*lam*D/a;xs=ym; n=101;ys=linspace(-ym,ym,n); for i=1:n r1=sqrt((ys(i)-a/2).^2+D^2); r2=sqrt((ys(i)+a/2).^2+D^2); phi=2*pi*(r2-r1)./lam; B(i,:)=sum(4*cos(phi/2).^2); end N=255; Br=(B/4.0)*N subplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys),1.,光栅衍射,clear lam=500e-9;N=2; a=2e-4;D=5;d=5*a; ym=2*lam*D/a;xs=ym; n=1001; ys=linspace(-ym,ym,n); for i=1:n sinphi=ys(i)/D; alpha=pi*a*sinphi/lam; beta=pi*d*sinphi/lam; B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2; B1=B/max(B); end NC=255; Br=(B/max(B))*NC; subplot(1,2,1) image(xs,ys,Br); colormap(gray(NC)); subplot(1,2,2) plot(B1,ys);,参考文献: [1]:胡守信、李柏年,《基于MATLAB的数学实验》,科学出版社 [2]:张铮、杨文平、石博强、李海鹏,《MATLAB程序设计与实例应用》,中国铁道出版社,。