模拟夫琅禾费衍射的matlab源代码(精.选)
- 格式:doc
- 大小:190.00 KB
- 文档页数:3
实验7衍射的Matlab模拟一、实验目的:掌握衍射的matlab模拟。
二、实验内容:1)单个圆孔夫朗和费衍射的matlab模拟2)双圆孔夫朗和费衍射的matlab模拟3)同一波长,狭缝数量分别为1、2、3、6、9、10时候的夫朗和费衍射的matlab模拟4)对4个不同波长的光照射时,狭缝数量分别为1、3时候的夫朗和费衍射的matlab 模拟5)单个圆孔菲涅尔衍射的matlab模拟6)模拟圆孔(或者单缝)衍射时,衍射屏到接收屏距离不同的时候衍射的图样1)clearclclam=632.8e-9;a=0.0005;f=1;m=300;ym=4000*lam*f;ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:mr=xs(i)^2+ys.^2;sinth=sqrt(r./(r+f^2));x=2*pi*a*sinth./lam;hh=(2*BESSELJ(1,x)).^2./x.^2;b(:,i)=(hh)'.*5000;B=b/max(b);endimage(xs,ys,b);colormap(gray(n));figure;plot(xs,B);colormap(green);-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-3-3-2-10123x 10-300.10.20.30.40.50.60.70.80.912)%双圆孔夫琅禾费衍射clear all close all clc %lam=632.8e-9;a=0.0005;f=1;m=300;ym=4000*lam*f;ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:m r=xs(i)^2+ys.^2;sinth=sqrt(r./(r+f^2));x=2*pi*a*sinth./lam;h=(2*BESSELJ(1,x)).^2./x.^2;d=10*a;deltaphi=2*pi*d*xs(i)/lam;hh=4*h*(cos(deltaphi/2))^2;b(:,i)=(hh)'.*5000;end image(xs,ys,b);colormap(gray(n));-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-33)lamda=500e-9;%波长N=[1236910];for j=1:6a=2e-4;D=5;d=5*a;ym=2*lamda*D/a;xs=ym;%屏幕上y 的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda;beta=pi*d*sinphi/lamda;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(j)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure(j);subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);plot(B1,ys,'k');end-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为2-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为3-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为9狭缝数为6-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.0254)lamda=400e-9:100e-9:700e-9;%波长N=[13];a=2e-4;D=5;d=5*a;for j=1:4ym=2*lamda(j)*D/a;xs=ym;%屏幕上y 的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for k=1:2for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda(j);beta=pi*d*sinphi/lamda(j);B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(k)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure();subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);狭缝数为10plot(B1,ys,'k');end end-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02Lamda=400nm,N=1-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025Lamda=400nm,N=3Lamda=500nm,N=1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03Lamda=500nm,N=3Lamda=600nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04Lamda=600nm,N=3Lamda=700nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.045)clearclcN=300;r=15;a=1;b=1;I=zeros(N,N);[m,n]=meshgrid(linspace(-N/2,N/2-1,N));D=((m-a).^2+(n-b).^2).^(1/2);i=find(D<=r);I(i)=1;subplot(2,2,1);imagesc(I)colormap([000;111])axis imagetitle('衍射前的图样')L=300;M=300;[x,y]=meshgrid(linspace(-L/2,L/2,M));lamda=632.8e-6;k=2*pi/lamda;z=1000000;Lamda=700nm,N=3h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z); H=fftshift(fft2(h));%传递函数B=fftshift(fft2(I));%圆孔频谱G=H.*B;U=fftshift(ifft2(G));Br=(U/max(U));subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)%figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U));subplot(2,2,4);plot(abs(Br))6)lamda=500e-9;%波长N=1;%缝数,可以随意更改变换a=2e-4;D=3:7;d=5*a;for j=1:5ym=2*lamda*D(j)/a;xs=ym;%屏幕上y的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for i=1:nsinphi=ys(i)/D(j);alpha=pi*a*sinphi/lamda;beta=pi*d*sinphi/lamda;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;B1=B/max(B);endNC=256;%确定灰度的等级Br=(B/max(B))*NC;figure();subplot(1,2,1)image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2)plot(B1,ys,'k');end-0.4-0.200.20.4-0.015-0.01-0.00500.0050.010.01500.51-0.015-0.01-0.0050.0050.010.015D=3m-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025D=5m D=4m-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04D=7m D=6m。
基于MATLAB的单色光单缝夫琅禾费衍射现象的模拟作者:耿顺山来源:《电脑学习》2008年第01期摘要:在分析单缝夫琅禾费衍射现象的数学模型的基础上,提供了一种运用MATLAB开发工具对单缝夫琅禾费衍射现象进行计算机模拟的方法。
关键词:MATLAB 单色光单缝衍射模拟中图分类号:TP391.9文献标识码:A 文章编号:1002-2422(2008)01-0020-021 单色光光栅夫琅禾费衍射现象的数学模型处理衍射问题的基本公式是著名的菲涅耳一基尔霍夫公式:直接利用上式进行计算是十分困难的,实际上普遍采用振幅矢量法研究衍射现象。
这里只考虑单色光的夫琅禾费衍射现象。
图1为用振幅矢量法研究单缝夫琅禾费衍射的典型示意图。
想像将单缝波面分成N条等宽度的波带,在衍射角很小的条件下,倾斜因子K(θ)≈1,各波带在P点的稍微波振幅可认为大致相等。
相邻两波带到P点的程差:(4)上面的讨论假设光源是完全的单色光,若用白光照射,不同波长的光会单独产生自己的条纹,中央为白色,向两侧依次为紫色到红色,产生彩色条纹。
2 MATLAB仿真程序建立了单色光单缝夫琅禾赞衍射现象的数学模型后,依据所建立的数学模型很容易在MATLAB环境下编制可以直接执行的m文件。
在程序中,输入单缝的宽度a(单位:μ m),光的波长wavelength,即λ(单位:nm),则单色光单缝夫琅禾赞衍射现象的MATLAB仿真程序的m文件如下:clc;clear;a=input('请输入单缝的宽度:a=');wavelength=mput('请输入单色光的波长:λ=');t=-0.6:0.001:0.6;%sin θal=(1000*a/,wavelength)*t;y10=sina(a1):y1=y10.*y10;subplot(2,1,1),image(2,t,y1*255)colormap(gray(3))subplot(2,1,2),plot(t,y1)axis(f-0.6 0.6 0 1])3 衍射现象的模拟结果与讨论在程序运行时,从键盘输入光的波长,单缝的宽度这些参数的不同数值,可以从程序的输出结果观察到单色光双缝干涉现象的仿真结果。
第29卷 第3期2009年 5月河北大学学报(自然科学版)Journal of Hebei University(Nat ural Science Edition)Vol.29No.3May2009基于MA TL AB的矩孔夫琅和费衍射场模拟计算郝忠秀,赵亚军,李立功,丁文革(河北大学物理科学与技术学院,河北保定 071002) 摘 要:利用MA TL AB软件对夫琅和费矩孔衍射场进行模拟,得到了不同参数下各种衍射场的三维分布图样,并且采用彩色网格图的形式输出,可以方便地观察衍射图样的细节.模拟结果与实验观测的结果非常吻合.这种方法作为辅助教学手段,不仅可以观察夫琅和费矩孔衍射完整、清晰的立体图像,而且可以很容易地调节参数,观察不同的衍射现象,有助于学生更加深刻地理解夫琅和费矩孔衍射的特征和规律,提高教学质量.关键词:夫琅和费衍射;矩孔;MA TL AB中图分类号:O436.1 文献标识码:A 文章编号:1000-1565(2009)03-0266-04On Simulated C alculation of Fraunhofer Diffractionfrom R ectangular Aperture B ased on MAT LABH AO Zhong2xiu,ZH AO Y a2jun,LI Li2gong,DI NG Wen2ge(College of Physics Science and Technology,Hebei U niversity,Baoding071002,China)Abstract:Based on MA TL AB software,t he Fraunhofer diffraction field of rectangular apert ure was simulated and t he t hree2dimensional dist ributions of Fraunhofer diff raction wit h different parameters were obtained.The simulatio n result s were outp ut in t he form of color grid,which helped us to observe t he de2 tails of t he diffraction patterns.Our result s were consistent wit h t he experimental result s.As an auxiliary teaching means,t he met hod p rovids us complete and clear t hree2dimensional grap h of Fraunhofer diff rac2 tion from a rectangular apert ure,and help s us to p rofoundly understood t he diffraction p henomenon and characteristic.K ey w ords:Fraunhofer diff raction;rectangular apert ure;MA TLAB光的衍射现象是光的波动性的重要表现.所有光学系统,特别是成像光学系统,一般都将光波限制在一个特定的空间区域内,这种光波传播过程实际上是一种衍射过程.所以对光的衍射现象的研究,不仅具有重要的理论意义,而且在光学仪器研制和成像分析等诸多实际应用方面均具有重要价值.衍射现象可以利用菲涅耳2基尔霍夫衍射公式来讨论,但由于这些数学公式的复杂性,在解决具体问题时,实际的计算工作很繁杂[1].在教学过程中,为建立清晰的物理图像,加深对各种现象的理解,通常利用演示实验辅助课堂教学,但是由于衍射实验需要较复杂的演示仪器和较苛刻的实验条件,在课堂上常常难以进行,而在实验室中一般也 收稿日期:2008-11-18 基金项目:河北省自然科学基金资助项目(E2007000197) 第一作者:郝忠秀(1949-),女,河北藁城人,河北大学副教授,主要从事基础物理方面研究.第3期郝忠秀等:基于MA TL AB 的矩孔夫琅和费衍射场模拟计算只能对矩孔夫琅和费衍射结果进行定性观察.因此在分析衍射问题时,为突出物理图像,避免复杂的数学计算,利用计算机对光的衍射图像进行模拟,是一种很好的解决方法[2-4].1 矩孔夫琅和费衍射场的理论分析矩孔夫琅和费衍射是二维衍射,一般利用菲涅耳2基尔霍夫衍射公式对衍射屏上通光的矩孔面积进行双重积分得到其衍射场的分布.为突出衍射的物理实质,简化运算,将二维的矩孔衍射转化为一维微缝衍射的叠加来处理,即把矩孔划分为无限多很窄的微缝,先求出微缝的衍射场,再将所有微缝的衍射场叠加,得到矩孔的衍射场.由这种运算过程可以看到,单缝衍射场是矩孔的衍射场的一个特例.矩孔夫琅和费衍射实验装置如图1所示,设矩孔沿x ,y 轴方向的边长分别为a 和b ,透镜L 的焦距为f ,在接收屏E 上任意点P 会聚的衍射光,其方向由二维衍射角(θ1,θ2)表示.在矩孔上任取一平行于y 轴宽为d x 的微缝b dx.图1 矩孔夫琅和费衍射实验装置Fig.1 F raunhofer diffraction setup设光波在矩孔面上的初位相为零,在微缝b d x 上任取面元d x d y ,到P 点的光程为r ,该面元上的次波在P 点的振动为d E 1,根据惠更斯2菲涅耳原理[5],在傍轴条件下,该面元上的次波在P 点的振动为d E 1=C 1d x d y co s (ωt -2πλr ),(1)式中C 1为常数,和λ分别为入射光的圆频率和波长.设微缝中点(x ,0)到P 点的光程为r ′0,考虑到图中几何关系r =r ′0+y sin θ2,则微缝上所有次波在P 点的合振动为d E =C 1d x ∫b 2-b 2co s [ωt -2πλ(r ′0+y sin θ2)]d y =C 1b sin πb sin θ2λπb sin θ2λco s (ωt -2πλr ′0)d x.(2)设矩孔中心O 到P 点的光程为r 0,有r ′0=r 0+x sin θ1,则矩孔上所有次波在P 点的合振动为E =C 1b sin πb sin θ2λπb sin θ2λ∫a 2-a 2cos [ωt -2πλ(r 0+x sin θ1)]d x =C 1ab sin ααsin ββco s (ωt -2πλr 0),(3)式中,α=πa sin θ1λ,β=πb sin θ2λ.由(5)式可知,P 点的光强为I =I 0(sin αα)2(sin ββ)2,(4)其中I 0=(ab λfC 1)2为衍射场的中心强度.(3)式即为矩孔夫琅和费衍射场光场分布公式,(4)式为相应的光・762・河北大学学报(自然科学版)2009年强分布公式.2 矩孔夫琅和费衍射场的MA TL AB 模拟及分析利用MA TLAB 软件,对矩孔夫琅和费衍射场分布进行模拟.为了获得矩孔夫琅和费衍射场分布的各种特征,分别对入射光的波长λ、矩孔的边长a 和b 、会聚透镜的焦距f 对衍射场的影响进行了分析.由于MA TL AB 允许用不同格式输出图形,采用彩色网格图的形式输出了矩孔夫琅和费衍射光强分布的立体图,同时为便于和实验结果比较,还输出了矩孔夫琅和费衍射光强分布的平面图.2.1 矩孔夫琅和费衍射场分布当矩孔的边长a =b =1mm ,入射光的波长λ=500nm ,会聚透镜的焦距f =2.5m 时,衍射场分布的模拟结果如图2所示.由于光波在矩孔x ,y 轴方向上受到的限制程度相同,则接收平面上衍射图样在x ,y 轴方向的扩展情况相同.由图2可以很清晰地观察到这一衍射特征.a.光场分布;b.光强分布;c.衍射图样图2 矩孔夫琅和费衍射场Fig.2 Fraunhofer diffraction from the rectangular aperture2.2 矩孔线度对衍射场的影响保持入射光的波长与会聚透镜的焦距保持不变,当方孔的边长a =b =1.5mm 时,衍射场的光强分布模拟结果如图3所示.由图3可见,当矩孔的线度变大时,衍射图样的扩展范围变小,衍射现象不明显.同时整 图3 a =b =1.5mm 时的夫琅和费衍射场Fig.3 Fraunhofer diffraction for a =b =1.5mm 图4 b =10a =5mm 时的夫琅和费衍射场Fig.4 Fraunhofer diffraction for b =10a =5mm・862・第3期郝忠秀等:基于MA TL AB 的矩孔夫琅和费衍射场模拟计算体衍射场的光强增加,而零级衍射斑的面积显著减小.若继续增大矩孔的线度,则衍射效应越来越弱,这就说明,当光孔线度远大于光波的波长时,衍射的散射角Δθ→0,衍射场基本上集中在沿直线传播的原方向上,在透镜焦面上衍射斑收缩为几何光学像点.当矩孔的边长b =10a =5mm 时,衍射场的光强分布模拟结果如图4所示.由图可见,由于a 很小,光波在x 方向上受到的限制很大,所以光波在x 轴方向上的衍射很明显;同时,由于b 比较大,光在y 方向上受到的限制很小,y 轴方向上的衍射较弱.若继续增加b 的量值,则在y 轴方向上的衍射将越来越弱,矩孔夫琅和费衍射场过渡到单缝夫琅和费衍射场.2.3 透镜焦距对衍射场的影响当矩孔的边长与入射光的波长保持不变,而会聚透镜的焦距f =5m 时,衍射场的振幅和光强分布模拟结果如图5所示.比较图5与图2a 可见,当透镜的焦距变大时,整体衍射场的光强减小,而零级衍射斑的面积增大.实际上衍射图样的形状和零级衍射斑的半角宽度都不变,但透镜的焦距增加使得各级亮斑的面积及其间距同时被放大.图5 f =5m 时的夫琅和费衍射场Fig.5 F raunhofer diffraction for f =5m 图6 λ=800nm 时的夫琅和费衍射场Fig.6 F raunhofer diffraction for λ=800nm2.4 入射光波长对衍射场的影响当矩孔的边长与会聚透镜的焦距保持不变,而入射光的波长λ=800nm 时,衍射场的光强分布模拟结果如图6所示.比较图6与图2a 可见,当光波波长增大时,衍射图样的扩展范围变大,衍射现象更加明显.同时整体衍射场的光强减小,而零级衍射斑的面积增大.显然波长越长,衍射效应越显著;波长越短,衍射效应越可忽略,所以通常说,几何光学是短波(λ→0)极限.利用MA TLAB 软件对不同参数下的矩孔夫琅和费衍射场分布进行了大量模拟,经过比较,这些计算机模拟结果与实验观测[1,6-7]的结果非常吻合.参 考 文 献:[1]赵凯华.光学:新概念物理教程[M ].北京:高等教育出版社,2004:183-184.[2]谢嘉宁,赵建林,陈伟成,等.夫琅禾费衍射的计算机仿真[J ].大学物理,2004,23(3):51-54.[3]谢嘉宁,赵建林.光学空间滤波过程的计算机仿真[J ].光子学报,2002,31(7):847-850.[4]飞思科技产品研发中心.MA TL AB7基础与提高[M ].北京:电子工业出版社,2005:166-174.[5]梁绍荣.普通物理学:光学[M ].北京:高等教育出版社,1988:160-202.[6]章志鸣,沈元华,陈惠芬.光学[M ].北京:高等教育出版社,2000:91-101.[7]H ECH T E.Optics[M ].4th ed.New Y ork :Addision 2wesley Publishing Company ,2002:453-466.(责任编辑:孟素兰)・962・。
源代码:N=512;disp('衍射孔径类型1.圆孔 2.单缝3.方孔')kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型while kind~=1&kind~=2&kind~=3disp('超出选择范围,请重新输入衍射孔径类型');kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型endswitch(kind)case 1r=input('please input 衍射圆孔半径(mm):');% 输入衍射圆孔的半径I=zeros(N,N);[m,n]=meshgrid(linspace(-N/16,N/16-1,N));D=(m.^2+n.^2).^(1/2);I(find(D<=r))=1;subplot(1,2,1),imshow(I);title('生成的衍射圆孔');case 2a=input('please input 衍射缝宽:');% 输入衍射单缝的宽度b=1000;% 单缝的长度I=zeros(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a<m&m<a&-b<n&n<b)=1;subplot(1,2,1);imshow(I);title('生成的衍射单缝');case 3a=input('please input 方孔边长:');% 输入方孔边长I=zeros(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a/2<m&m<a/2&-a/2<n&n<a/2)=1;subplot(1,2,1),imshow(I);title('生成的方孔');otherwise kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型end% 夫琅禾费衍射的实现过程L=500;[x,y]=meshgrid(linspace(-L/2,L/2,N));lamda_1=input('please input 衍射波长(nm):');% 输入衍射波长;lamda=lamda_1/1e6k=2*pi/lamda;z=input('please input 衍射屏距离衍射孔的距离(mm):');% 衍射屏距离衍射孔的距离h=exp(1j*k*z)*exp((1j*k*(x.^2+y.^2))/(2*z))/(1j*lamda*z);%脉冲相应H =fftshift(fft2(h));%传递函数B=fftshift(fft2(I));%孔频谱G=fftshift(ifft2(H.*B));subplot(1,2,2),imshow(log(1+abs(G)),[]);title('衍射后的图样');figuremeshz(x,y,abs(G));title('夫琅禾费衍射强度分布')实验输入:衍射孔径类型1.圆孔 2.单缝3.方孔please input 衍射孔径类型:1please input 衍射圆孔半径(mm):3please input 衍射波长(nm):632lamda =6.3200e-04please input 衍射屏距离衍射孔的距离(mm):1000000实验结果:程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。
光的干涉和衍射的matlab模拟单缝夫琅和费衍射是光的衍射现象之一,如图2所示。
当单色光波通过一个狭缝时,光波会向周围扩散,形成一系列同心圆环。
这些圆环的亮度分布是由夫琅和费衍射公式描述的,即。
其中为入射光波长,为狭缝宽度,为衍射角。
夫琅和费衍射公式表明,随着衍射角的增大,圆环的半径会减小,而亮度则会逐渐减弱。
在MATLAB中,可以通过输入实验参数,如光波长和狭缝宽度,来观察圆环的亮度分布和半径随衍射角的变化情况。
同时,还可以探讨不同波长和狭缝宽度对圆环亮度和半径的影响。
4双缝衍射双缝衍射是光的干涉和衍射现象的结合,如图3所示。
当一束单色光波通过两个狭缝时,光波会在屏幕上形成一系列干涉条纹和衍射环。
干涉条纹的亮度分布与___双缝干涉相同,而衍射环的亮度分布则由夫琅和费衍射公式描述。
在MATLAB中,可以通过输入实验参数,如光波长、双缝间距和双缝宽度,来观察干涉条纹和衍射环的亮度分布和条纹间距、环半径随实验参数的变化情况。
同时,还可以探讨不同实验参数对干涉条纹和衍射环的影响。
5衍射光栅衍射光栅是一种利用衍射现象制成的光学元件,如图4所示。
当一束单色光波通过光栅时,光波会被分为多个衍射光束,形成一系列亮度不同的衍射条纹。
衍射条纹的亮度分布与夫琅和费衍射公式描述的圆环类似,但是条纹间距和亮度分布会受到光栅常数的影响。
在MATLAB中,可以通过输入实验参数,如光波长和光栅常数,来观察衍射条纹的亮度分布和条纹间距随实验参数的变化情况。
同时,还可以探讨不同实验参数对衍射条纹的影响。
总之,通过MATLAB模拟光的干涉和衍射现象,可以更加直观地理解和掌握这些重要的光学现象,同时也可以为实验设计和数据分析提供有力的工具和支持。
本文介绍了___双缝干涉、单缝夫琅禾费衍射和衍射光栅光谱的计算机模拟。
当一束单色平行光通过宽度可调的狭缝,射到其后的光屏上时,形成一系列亮暗相间的条纹。
单缝夫琅禾费衍射的光强分布可以通过惠更斯-费涅耳原理计算。
MATLAB编程用两种方法模拟光学实验03级物理一班李超PB03203017摘要:利用MATLAB软件编程实现了用衍射积分的方法对单缝衍射、杨氏双缝干涉、黑白光栅衍射的计算机模拟;以及用傅立叶变换方法对简单孔径衍射、黑白光栅及正弦光栅夫琅和费衍射的模拟。
关键词:MATLAB;衍射积分;傅立叶变换;计算机模拟引言:美国Mathworks公司推出的MA TLAB,是一种集数值计算、符号预算、可视化建模、仿真和图形处理等多种功能于一体的优秀图形化软件。
本文介绍了通过MA TLAB软件编程实现用衍射积分和傅立叶变换实现夫琅和费衍射计算机模拟的方法。
计算机模拟为衍射实验的验证提供一条简捷、直观的途径。
从而加深了对物理原理、概念和图像的理解。
正文:大学教学课程中引入计算机模拟技术正日益受到重视,与Basic、C和Fortran相比,用MA TLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编程过程。
下面来介绍利用MATLAB进行光学模拟的两种方法。
(一)衍射积分方法:该方法首先是由衍射积分算出接收屏上的光强分布,然后根据该分布调制色彩作图,从而得到衍射图案。
1.单缝衍射。
把单缝看作是np个分立的相干光源,屏幕上任意一点复振幅为np个光源照射结果的合成,对每个光源,光程差Δ=ypsinΦ,sinΦ=ys/D,光强I=I0(Σcosα)2+(Σsinα)2,其中α=2Δ/λ=πypys/λD编写程序如下,得到图1lam=500e-9;a=1e-3;D=1;ym=3*lam*D/a;ny=51;ys=linspace(-ym,ym,ny);np=51;yp=linspace(0,a,np);for i=1:nysinphi=ys(i)/D;alpha=2*pi*yp*sinphi/lam;图1 单缝衍射的光强分布 sumcos=sum(cos(alpha));sumsin=sum(sin(alpha));B(i,:)=(sumcos^2+sumsin^2)/np^2;endN=255;Br=(B/max(B))*N;subplot(1,2,1) image(ym,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys); 2. 杨氏双缝干涉两相干光源到接收屏上P 点距离r 1=(D 2+(y-a/2)2)1/2, r 2=(D 2+(y+a/2)2)1/2,相位差Φ=2π(r 2-r 1)/λ,光强I=4I 0cos 2(Φ/2) 编写程序如下,得到图2 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:nr1=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)*Nsubplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys) 3. 光栅衍射公式:I=I 0(sin α/α)2(sin(λβ)/sin β)2α=(πa/λ)sin Φ β=(πd/λ)sin Φ编写程序如下:得到图3clearlam=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:nsinphi=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);图2 杨氏双缝干涉的光强分布 图3 黑白光栅衍射光强分布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);(二)傅立叶变换方法:在傅立叶变换光学中我们知道夫琅和费衍射场的强度分布就等于屏函数的功率谱。
用Matlab GUI模拟圆环和矩形环夫琅禾费衍射李继军;徐大海;田永红【摘要】为动态反映圆环和矩形环夫琅禾费衍射光强随波长、衍射屏的几何特征等重要参数的变化。
利用Matlab图形用户界面的设计和开发功能,结合真实的可见光谱,制作了圆环和矩形环夫琅禾费衍射的交互式图形仿真界面.仿真结果细致逼真,使该过程的物理规律直观形象,有助于学生理解衍射过程中的物理规律.%In order to simulate the fraunhofer diffraction pattern of circular ring and rectangular ring with the change of lambda and geometric parameter of the ring and take advantage of the design and development function of Matlab graphic user interface by combining a visible optical spectrogram, an interactive simulation graphical user interface for fraunhofer diffraction of circular ring and rectangular ring was created. The result of simulation is the same as the experiment. The GUI makes it easy for students to understand the diffraction.【期刊名称】《常熟理工学院学报》【年(卷),期】2011(025)008【总页数】4页(P111-114)【关键词】物理光学;Matlab;仿真;夫琅禾费衍射【作者】李继军;徐大海;田永红【作者单位】长江大学物理科学与技术学院,湖北荆州434023;长江大学物理科学与技术学院,湖北荆州434023;长江大学物理科学与技术学院,湖北荆州434023【正文语种】中文【中图分类】O436.1在当前的光学衍射教学中,教师在黑板上推导出光强度公式后,根据该公式在黑板上画出光强分布曲线,或利用PPT将预先准备好的光强分布图片投影在屏幕上.经验表明,并不是所有的学生都能通过这种静态的结果理解衍射的物理规律.随着计算机性能的提高及模拟仿真技术的发展,在课堂上利用计算机软件对光学过程进行仿真已经成为一种可能.MATLAB软件是当今最优秀的科技应用软件和开发环境之一[1],它以强大的科学计算与可视化功能、简单易用、可开放式、可扩展环境等特点在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台.已有的使用Matlab软件模拟光学现象的文献中[2-5],只是对单一波长进行模拟,模拟结果为该波长下光强分布的灰度图,无法体现可见光波段波长连续变化时的光学现象,而且没有使用Matlab图形用户界面(Graphical User Interfaces,GUI),无法实现交互式模拟.本文利用可见光的光谱图,采用Matlab GUI对圆环和矩形环的夫琅禾费衍射在可见光波段进行仿真,仿真结果与实验结果一致.GUI中采用交互式滚动条动态的展现各物理量对衍射结果的影响,有利于加深学生对物理规律的理解和认识.1 圆环衍射的光强公式图1 圆环衍射屏如图1所示,衍射屏上有一个内外半径分别为R1和R2的圆环区域,设该衍射屏的透射率为:本文模拟将单位振幅的平面波入射到衍射屏上的情况,根据标量衍射理论[6],通过圆环的光在观察平面上的夫琅禾费衍射强度分布为:式中λ是入射光波长,z是观察平面与衍射屏的距离.根据远场近似的要求,本文中z取50米,观察区域是一个0.2米×0.2米的正方形.r是观察平面上的观察点到该平面坐标原点的距离,J1()表示一阶贝塞尔函数.2 矩形环衍射的光强公式如图2所示,衍射屏上有一个内外边长分别为d和D的矩形环区域,该衍射屏的透射率为:当单位振幅的平面波透射过该衍射屏,在远离该屏的观察平面上产生的夫琅禾费衍射光强分布为:图2 矩形环衍射屏式中x,y是观察点在观察面中的坐标.3 Matlab GUI模拟3.1 界面的设计本程序将实现两个不同衍射屏下的仿真,为了编程的方便和界面的简洁,我们使用了matlab的容器控件——面板(Panel),加上初始界面,总共使用了三个面板.当其中一个界面出现时,另外两个界面是隐藏的.图3所示为程序执行后的初始界面.为实现仿真对象的转换,在界面中使用了两个按钮(Push Button),“Circle with Obscuration”实现圆环的仿真,“Rectangle with Obscuration”实现矩形环的仿真,界面上还有一个标示为“Exit”的按钮用于程序的退出.3.2 颜色的仿真我们用imread命令读入图4所示的可见光谱,并将光谱保存在color_spectrum 这个变量中,该变量是一个三维数组,前面二维对应着空间的行、列坐标,第三维对应该坐标下像素点的红、绿、蓝颜色值.每个像素点的颜色是由这三个值混合而成[7].为仿真不同波长所对应的色彩,我们先将该波长的衍射光强与该波长所对应的红、绿、蓝的颜色值分别相乘,然后再将结果混合起来,最后用imagesc命令即可得到与该波长相对应颜色的光强分布图.处理光谱的代码如下:3.3 回调的处理图5为圆环的仿真界面,界面右边自上而下的三个滚动条分别控制入射光波长,圆环外径和内径,因此涉及到三个回调函数.第一个回调函数是对波长改变的响应.代码如下:图3 初始界面图4 可见光谱图5 圆环的仿真后面两个回调函数是对外径改变的响应,颜色信息以及调用fraun_obscuration 计算光强与上面的callback_slider_wavelength函数一样.不同的是这两个回调函数获取的是内外径的当前值.具体代码是:4 结论图6是矩形环夫琅禾费衍射的仿真界面,回调函数的处本文利用Matlab图形用户界面的开发功能对圆环和矩形环的夫琅禾费衍射进行了仿真.仿真界面是交互式的,光强分布图可随入射波长以及衍射屏几何参数的改变而变化,仿真结果与实验观测结果一致,但清晰度更高.本程序可以对不同参数条件下的实验结果进行动态对比,从理方法与圆环的方法相同,由于篇幅的限制,本文不给出具体的代码.图6 矩形环的仿真以上两个模拟在内径为零时,可分别仿真圆孔和矩形孔的夫琅禾费衍射光强分布.结果如图7、图8所示.而将抽象的物理规律直观地展现在学生面前,加深学生对此类光学问题的理解.图7 圆孔的仿真图8 矩形孔的仿真参考文献:[1]Marchand P,Thomas Holland O.Graphics and GUIs withMATLAB[M].third edition.New York:CRC Press,2003.[2]崔祥霞,杨兆华,陈君.基于MATLAB的光学衍射与干涉实验仿真[J].泰山学院学报,2009,31(3):109-113.[3]王惠临,赵俊卿.Matlab在大学物理教学中的应用[J].山东建筑大学学报,2009,24(3):279-281.[4]吕波.基于Matlab的光学衍射仿真[J].东华理工大学学报(自然科学版),2010,33(4):363-368.[5]华晋,尹金花.基于GUI的干涉衍射的实验教学研究[J].大学物理实验,2011,24(1):79-82.[6]Joseph W Goodman.Introduction to Fourier Optics[M].third edition.New York:Roberts&Company Publishers,2004.[7]Roy s Berns.颜色技术原理[M].李小梅,译.北京:化学工业出版社,2002.。
基于MATLAB的简单孔形夫琅禾费衍射实验的计算机模拟徐慧梁;何振江;杨冠玲
【期刊名称】《物理通报》
【年(卷),期】2004(000)003
【摘要】@@ 1引言rn衍射是光波的重要特征之一,夫琅禾费衍射在实际应用和理论上都很重要.这类衍射的分析和计算都比较简单,一般通过数值计算就能得到衍射的光强分布.对简单孔径衍射的模拟计算已经有过研究,但无一例外是采用数值计算的方法,其实我们从图像变换的角度出发同样可以得到相同的结果,利用MATLAB 语言做这项工作将变得非常容易.MATLAB功能强大、简单易学、编程效率高而被广泛地应用在工程计算、数值分析和图像处理等领域,对于光学实验的模拟是非常方便和灵活的.
【总页数】3页(P25-27)
【作者】徐慧梁;何振江;杨冠玲
【作者单位】华南师范大学物理系,广东,广州,510631;华南师范大学物理系,广东,广州,510631;华南师范大学物理系,广东,广州,510631
【正文语种】中文
【中图分类】G4
【相关文献】
1.基于Matlab的夫兰克-赫兹实验的计算机模拟 [J], 王威;鲍文超;鄢伟超;崔秀朋;朱学海
2.基于Mathematica的简单孔径夫琅禾费衍射模拟 [J], 陈波;刘佳伟
3.基于Matlab的傅里叶光学实验的计算机模拟 [J], 张景伟
4.圆孔圆环夫琅禾费衍射实验的Matlab仿真设计 [J], 崔祥霞
5.基于MATLAB的夫琅禾费衍射实验研究 [J], 张志峰;张防震;任玉芬
因版权原因,仅展示原文概要,查看原文内容请购买。
源代码:
N=512;
disp('衍射孔径类型 1.圆孔 2.单缝 3.方孔')
kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型
while kind~=1&kind~=2&kind~=3
disp('超出选择范围,请重新输入衍射孔径类型');
kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型
end
switch(kind)
case 1
r=input('please input 衍射圆孔半径(mm):');% 输入衍射圆孔的半径
I=zeros(N,N);
[m,n]=meshgrid(linspace(-N/16,N/16-1,N));
D=(m.^2+n.^2).^(1/2);
I(find(D<=r))=1;
subplot(1,2,1),imshow(I);
title('生成的衍射圆孔');
case 2
a=input('please input 衍射缝宽:');% 输入衍射单缝的宽度
b=1000;% 单缝的长度
I=zeros(N,N);
[m,n]=meshgrid(linspace(-N/4,N/4,N));
I(-a<m&m<a&-b<n&n<b)=1;
subplot(1,2,1);imshow(I);
title('生成的衍射单缝');
case 3
a=input('please input 方孔边长:');% 输入方孔边长
I=zeros(N,N);
[m,n]=meshgrid(linspace(-N/4,N/4,N));
I(-a/2<m&m<a/2&-a/2<n&n<a/2)=1;
subplot(1,2,1),imshow(I);
title('生成的方孔');
otherwise kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型
end
% 夫琅禾费衍射的实现过程
L=500;
[x,y]=meshgrid(linspace(-L/2,L/2,N));
lamda_1=input('please input 衍射波长(nm):');% 输入衍射波长;
lamda=lamda_1/1e6
k=2*pi/lamda;
z=input('please input 衍射屏距离衍射孔的距离(mm):');% 衍射屏距离衍射孔的距离
h=exp(1j*k*z)*exp((1j*k*(x.^2+y.^2))/(2*z))/(1j*lamda*z);%脉冲相应H =fftshift(fft2(h));%传递函数
B=fftshift(fft2(I));%孔频谱
G=fftshift(ifft2(H.*B));
subplot(1,2,2),imshow(log(1+abs(G)),[]);
title('衍射后的图样');
figure
meshz(x,y,abs(G));
title('夫琅禾费衍射强度分布')
实验输入:衍射孔径类型1.圆孔 2.单缝3.方孔
please input 衍射孔径类型:1
please input 衍射圆孔半径(mm):3
please input 衍射波长(nm):632
lamda =6.3200e-04
please input 衍射屏距离衍射孔的距离(mm):1000000
实验结果:
程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。
当衍射屏和衍射孔的距离相对较小时,此衍射为菲涅耳衍射,当距离相对较大时满足夫琅禾费衍射的条件,两者的程序一样,只是距离Z的大小不一致。
又由于夫琅禾费衍射与傅里叶变换成正比,只差一个系数关系。
所以程序中的衍射既是直接对物光进行傅里叶变换即可。
最新文件仅供参考已改成word文本。
方便更改。