基于Matlab的菲涅尔衍射仿真

合集下载

基于MATLAB的夫琅和费衍射实验的计算机仿真

基于MATLAB的夫琅和费衍射实验的计算机仿真
学 物 理 实 验 .0 2r)6 —6 2 0 : 46 . 4
式 中 J x是 一 阶 贝塞 尔 函 数 , 拟 时 令 f l h 6 0m, ,) ( 模 = m,= 0 n
a 0O 1 利用 MAT A = .0 m, L B编程 , 程序运行完毕后 , 依次得到 以 下图形 7 。圆孔衍射和矩孔衍射的三维 图形基本相 同, 二维 图
平 面 上 会 聚 点 Q(,) xy 的和 振 动 的 相 对 强 度 为 : I I u) Sl ) ( Q) ds (lP m r


() 1
于学生的理解 。同时通过 多种元 件的夫琅和费衍射 计算机仿
真, 能够动态直观地呈现光学衍射 中各种物 理量之间 的关 系,
有利于大学物理实验中光学部分教学的开展 。因此 , 我们应 当 充分利用计算机软件功 能为教学增添活力 ,为 学生理解复杂
Z agZ i n S uig J n e gh n YagK n L ne g Yag njn h n hf g uY l i g n cu n u iu f n gu e n a F J n Ho
(】潘 柏 根 , 施群 , 志 建 . 于 V +的 夫 琅 和 费 衍 射 仿 真 [] 5 金 刘 基 c+ J.
仪 器 仪表 用 户 ,0 O4: 66 . 2 l()6 —9
[]夏 静 , 6 陆训 毅 , 德 君 . 杨 圆孔 、 方 孔 和 双 矩 孔 夫琅 和 赞 衍 射 的
I tr ̄inN nfr n e n nen o Co ee c o M e s rn Te h lg a d M e h to is a ui g c noo y n c ar nc
Au o a i n Co f r n e o I EE: 0 — 0 . t m to , n e e c f E 9 2 9 5

利用MATLAB语言进行光学衍射现象的仿真

利用MATLAB语言进行光学衍射现象的仿真

利用MATLAB语言进行光学衍射现象的仿真储林华(安庆师范学院物理与电气工程学院安徽安庆246011)指导教师:张杰摘要:光的衍射是光的波动性的一种重要表现,因此对光的衍射现象的研究,不仅具有重要的理论意义,而且在光学仪器研制和成像分析等诸多实际应用方面均有重要价值,但是其衍射光强的计算非常复杂,对实验条件的要求非常高,通常情况下很难得到满意的效果,严重影响了光学的教学。

本文从衍射的相关理论知识出发,首先介绍了惠更斯--菲涅耳原理及其数学表示形式,然后重点讨论了单色光经各种对称光学衍射元件(单缝,双缝,光栅,圆孔)的夫琅和费衍射情况,并分别给出了它们在焦平面上的衍射光强计算公式,最后利用科学计算软件MA TLAB对光的衍射现象进行了仿真,所得到的图样细致逼真,使整个物理过程变得直观形象,且与实验所得到的衍射图样进行了比较,两者吻合得很好,从而为光学的理论分析和实验教学提供了一种新的途径。

关键词:光的衍射,光栅衍射,圆孔衍射,Matlab,计算机仿真0 引言光的衍射现象是光具有波动性的重要特征,因此对衍射现象的研究无论在理论上还是在实践中都有很重要的意义。

对光的衍射现象的研究,始于17世纪,当时著名的荷兰科学家惠更斯提出了光是一种波的假说,并根据波动理论提出了光的传播理论——即惠更斯原理[1],根据这一原理,他解释了光的反射定律和折射定律,给出了折射率的意义,光在两种介质中的速度比。

到了19世纪,法国年轻的科学家菲涅耳,根据叠加原理把惠更斯原理进一步具体化,给出了光在传播过程中光强学计算公式,这就是著名的惠更斯-菲涅耳原理[2]。

但由于在实际应用过程中,障碍物形状的不规则性,导致光强的计算公式几乎无解析解,只能进行一些数值计算。

针对衍射计算中出现的困难,近代的研究人员想到运用科学的计算软件MA TLAB,利用其较强的绘图和图象功能,编写计算程序,使得多种衍射元件(单缝,双缝,光栅,矩孔,圆孔)下的衍射现象得以在计算机中形象地被模拟仿真。

基于Matlab的菲涅尔直边衍射仿真与GUI设计_仲志国

基于Matlab的菲涅尔直边衍射仿真与GUI设计_仲志国

第11卷第12期南阳师范学院学报Vol.11No.122012年12月Journal of Nanyang Normal University Dec.2012收稿日期:2012-08-25基金项目:南阳师范学院教学研究项目作者简介:仲志国(1978-),河南南阳人,讲师,硕士,主要从事光学教学与研究.基于Matlab 的菲涅尔直边衍射仿真与GUI 设计仲志国1,李硕1,李婧2,李根全1,贾慧芳1(1.南阳师范学院物理与电子工程学院,河南南阳473061;2.南阳师范学院数学与统计学院,河南南阳473061)摘要:利用Matlab 软件进行了菲涅尔直边衍射实验的模拟仿真,给出了对应的光强分布曲线和仿真图像.利用Mat-lab 的图形用户界面(GUI )建立动态的实验仿真界面.仿真结果图形细致逼真,使该过程的物理规律直观形象,有助于学生理解菲涅尔直边衍射现象中的物理规律.关键词:菲涅尔直边衍射;Matlab ;GUI 设计中图分类号:O 436.1文献标志码:A文章编号:1671-6132(2012)12-0036-03菲涅尔直边衍射实验是光学衍射部分一个很重要的实验,但受到实验条件的限制,很多高校难以开展该实验[1].随着计算机技术及软件性能的提高,作为克服这种困难的一个重要手段,利用计算机和相关软件进行实验仿真,使这些实验走进课堂.Matlab 软件以其强大的科学计算与可视化功能,简单易用、可开放式、可扩展环境等特点在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具[2].Matlab 语言的图形用户界面(GUI )可以引导用户进行计算和分析,用户可以利用事先设计的用户界面,通过其上的按钮和菜单与计算机直接进行信息交流,选择所需要的功能完成各种计算和分析[3].本文采用Matlab GUI 对菲涅尔直边衍射实验进行仿真和用户界面的实现.1Matlab 菲涅尔直边衍射仿真1.1惠更斯—菲涅尔原理惠更斯—菲涅尔原理是研究传播问题的一种分析方法.惠更斯—菲涅尔原理可以解释光在通过任意形状的障碍物时所产生的衍射现象.如果将波面S 上所有面积元在P 点的作用加起来,即可求得波面S 在P 点所产生的合振动为[4]:E =∫s d E =C ∫K (θ)A (Q )rcos (kr -ωt )d S ,(1)或写成复数形式:E =C∫K (θ)A (Q )r ei (kr -ωt )d S.(2)(2)式称为菲涅尔衍射积分,直接应用(2)式进行菲涅尔衍射的计算是很困难的,可以用振幅矢量叠加法作近似处理.1.2用Matlab 模拟菲涅尔直边衍射根据菲涅尔公式,当用沿Z 方向传播的单色光照射与Z 轴垂直的孔径,任一Z 平面上的衍射场分布为[5]:E (x',y',z )=e i kz i λzze i k 2z [(x'-x )2+(y'-y )2]d x d y .(3)在(3)式中k 是波数,λ是波长.对于直边衍射,(3)式可简化为[6]:E (x ,y )=E1+iF x 2z 槡()λ-F (-[]).(4)其中菲涅尔方程F (x )=∫cos (π2x 2)+i ∫sin (π2x 2),光强I =|E (x ,y )|2.直边衍射的实验现象为:当用一束平行光照射直边屏时,在远处屏幕上的衍射图样在几何影界附近的照明区内出现若干亮暗条纹,然后强度变化趋向均匀,在几何阴影一侧仍有光强的扩展,尔后较快地衰减为零(全黑).借助半波带法便可得到影界处的光强,即等于自由传播光强的四分之一.本文设计思路是通过惠更斯—菲涅尔原理导出衍射原理,从而得到菲涅尔直边衍射函数.用Matlab 编辑程序对菲涅尔直边衍射进行仿真,再通过GUI 实现直边衍射的用户操作界面.设计流程[7]如图1所示.第12期仲志国等:基于Matlab 的菲涅尔直边衍射仿真与GUI设计图1设计流程图实验中采用λ=670nm 的单色光源,直边到衍射场平面的距离为d =1000mm ,编写两个函数的程序[8]用来模拟菲涅尔直边衍射程序.本文在编写程序中使用Matlab 工具箱中的特殊函数,对菲涅尔积分式Fresnel (x )进行直接调用,简化程序编写过程,得到菲涅尔直边衍射光强分布曲线,如图2所示.仿真结果如图3所示.图2菲涅尔直边衍射光强分布曲线2菲涅尔直边衍射GUI 设计Matlab 图形用户界面开发环境(简称GUIDE ),用于创建GUI.使用GUIDE 创建GUI 对象执行效率高,可以进行组件布局,还能生成保存和发布GUI 的对应文件[9].运行GUIDE ,选择按钮、静态文字、组合框、坐标轴等设计模版,使用Align Objects 工具对模版的几何位置进行调整.然后对模版的String 、Tag 等属性进行设置,便于编辑程序时的函数回调[10].GUIDE 初始设计如图4所示.首先,设置启动按钮,对相应的函数进行回调.用户确定启动GUI 进行使用,在Start_pushbutton_Callback 函数中编写程序如下:set (handles.ChangeColor ,’Enable ’,’On ’);%启动Change Color 按钮guidata (hObject ,handles );然后,在lamda_slider_CreateFcn 函数中设置波长lamda 的默认值为670nm ,在可见光范围内变化为390 760nm.波长lamda 范围程序如下:set (hObject ,’Max ’,760);%设置波长的最大值set (hObject ,’Value ’,670);%设置波长的默认值set (hObject ,’Min ’,390);%设置波长的最小值回调lamda_slider_Callback 函数,获取设置波长值,在整数范围内变动,编写程序如下:get (handles.lamda_slider ,’Max ’);get (handles.lamda_slider ,’Value ’);get (handles.lamda _slider ,’Min ’);%读取参数范围Va =get (handles.lamda_slider ,’Value ’)if rem (Va ,1) =0·73·南阳师范学院学报第11卷set (hObject ,’Value ’,round (Va ))end %设置在整数范围内取值.人的眼睛感觉到的不同颜色对应的是在可见光范围内的不同波长,在菲涅尔直边衍射实验中,入射光在可见光范围内取不同波长值,看到的就是不同单色光的菲涅尔直边衍射现象的动态变化.把图像嵌入对应的模板,并通过调节波长来改变单色光的颜色,程序如下:lamda =get (handles.lamda _slider ,’Val-ue ’);%获取初始的默认值axes (handles.axes1);axes (handles.axes2);%在对应的坐标轴内画图将程序嵌入ChangeColor_pushbutton_Callback 函数的相应位置中,即可调节波长来改变光的颜色.最后,回调close_pushbutton_Callback 函数,在使用后点击Close 按钮,关闭图形,程序如下:set (handles.Close ,’Enable ’,’On ’);uiresume%关闭图形窗口.程序完成后,运行程序的GUI 界面,如图5所示.图5GUI 界面3小结使用Matlab 程序中特殊函数功能,实现了菲涅尔直边衍射模拟仿真,可直观地显示衍射现象,避免了在实验室手动操作可能带来的不便和误差.从GUIDE 的初始化过程到GUI 的界面操作实现,简化了程序编辑.GUI 的界面方便了用户的使用和操作,通过对入射光波长的改变可以观察到衍射的不同现象,更加方便地进行对比学习,对实现现代化物理教学提供了一种可行的方法.参考文献[1]石明吉,张定群.大学物理实验教学中存在的问题及应对策略[J ].南阳师范学院学报,2011,10(9):97-101.[2]王竞争,刘显龙,殷文金,等.基于MATLAB 的光的干涉和衍射现象的模拟研究[J ].延边大学学报,2009,3(4):319-322.[3]吴宏锷,王慧.基于MATLAB 的图形动画研究[J ].南阳师范学院学报,2010,9(6):59-61.[4]姚启钧.光学教程[M ].北京:高等教育出版社,2008.[5]梁铨廷.物理光学[M ].北京:机械工业出版社,1987.[6]张广军.激光直边衍射CCD 位移测量方法[J ].实用测试技术,1994(6):10-11.[7]华晋,尹金花.基于GUI 的干涉衍射的实验教学研究[J ].大学物理实验,2011,24(1):79-82.[8]王莉,杨会静,段芳芳.用MATLAB 模拟菲涅尔直边衍射[J ].唐山师范学院学报,2008,30(5):131-132.[9]陈垚光,毛涛涛,王正林,等.精通MATLAB GUI 设计[M ].北京:电子工业出版社,2011.[10]吴迪,刘军,徐朋,等.基于MATLAB GUI 的大学物理交互式演示实验动画设计[J ].大学物理实验,2010,23(1):52-53.Simulation of Fresnel straight edge diffraction based on Matlab and GUI designZHONG Zhi-guo 1,LI Shuo 1,LI Jing 2,LI Gen-quan 1,JIA Hui-fang 1(1.School of Physics and Electronic Engineering ,Nanyang Normal University ,Nanyang 473061,China ;2.School of Mathematics and Statistics ,Nanyang Normal University ,Nanyang 473061,China )Abstract :Fresnel straight edge diffraction experiment was simulated with Matlab software ,the corresponding light intensity distribution curve and simulation image is given.A dynamic experimental interface is created with the graphical user interface (GUI )of Matlab.The result of simulation is the same as experiment.The GUI makes its easy for student to understand the Fresnel straight edge diffraction.Key words :Fresnel straight edge diffraction ;Matlab ;GUI design·83·。

实验7 衍射的Matlab模拟

实验7 衍射的Matlab模拟

实验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。

菲涅耳衍射仿真

菲涅耳衍射仿真
和观察屏之间时,观察
屏上 P 点的光场复振幅,������0 ������ 表示无衍射屏时 P 点的光场复振幅,根据惠更斯菲涅耳原理,������1 ������ 和������2 ������ 可表示成对
1

2
开孔部分的积分,而两个屏
的开孔部分加起来就相当于屏不存在,因此 ������0 ������ = ������1 ������ + ������2 ������ 该式说明,互补屏在衍射某点产生的复振幅之和等于光波自由传播时在该点 产生的光场复振幅。 2 matlab 仿真程序设计 2.1 菲涅耳衍射的实现 在菲涅耳近似下,P点的光场复振幅可表示为 ������ ������, ������ = ������������ ������1 , ������1 ∗ ℎ(������, ������) 其中
总结与展望
利用所学知识基本完成了菲涅耳衍射的仿真。但在完成课程设计的过程中深 深的感受到自身各方面的不足。还需更为努力。对于该仿真,因为使用了卷积, 当采样数过大时,运算速度会变得很慢。该仿真还有更好的实现方式,是基于傅 里叶变换的,可大大降低时间复杂度,无奈能力,精力有限,就不去实现了。
参考文献
【1】 奥本海姆., Oppenheim A, 刘树棠. 信号与系统[M].西安: 西安交通大学出 版社, 1998.
E3 (������)图样
E3 (������)分布图
E3 ������ 与对应正方形衍射屏中央剖面光强分布对比图 可见巴比涅定理成立。
3.4 夫琅禾费衍射
菲涅耳数F ≪ 1时,衍射图样为夫琅禾费衍射。 选取F=0.1,n=400,p=2
F=0.1时圆孔衍射图样
F=0.1时圆孔衍射光强分布图

圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布,为倾斜因子。

根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。

相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。

在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。

二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。

注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。

根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长λ=632.8nm,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图1(r=12mm)图2(r=20mm)图3(r=50mm) 三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。

这里选择矩孔的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6图4(a=b=15mm)图5(a=b=20mm)图 6(a=b=30mm)四、MATLAB 程序%所有长度单位为毫米lamda=632.8e-6; k=2*pi/lamda;z=1000000;%先确定衍射屏N=300; %圆屏采样点数a=15;b=15;[m,n]=meshgrid(linspace(-N/2,N/2-1,N));I=rect(m/(2*a)).*rect(n/(2*b));q=exp(j*k*(m.^2+n.^2)/2/z);subplot(2,2,1); %圆孔图像画在2行2列的第一个位置 imagesc(I) %画衍射屏的形状colormap([0 0 0; 1 1 1]) %颜色以黑白区分axis imagetitle('衍射屏形状')L=300;M=300; %取相同点数用于矩阵运算若为圆孔,方框内替换为以下程序 r=12;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; %孔半径范围内透射系数为1[x,y]=meshgrid(linspace(-L/2,L/2,M));h=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))。

基于matlab的光学衍射仿真

基于matlab的光学衍射仿真

西安工业大学毕业设计(论文)开题报告题目:基于Matlab的光学衍射实验仿真系别光电信息系专业光电信息工程班级XXX姓名王XX学号X070104XX导师XX2010 年11 月27 日课题背景及研究意义衍射是光波的一种重要特征,对光波衍射现象的讨论是以惠更斯- 菲涅尔原理为基础的。

事实证明,在大多数光学问题中,可以采用光场的标量衍射理论来描述和计算。

光场的频率非常高,只能测量在一个比光的周期大得多的时间间隔内的平均值,在计算衍射光波场的光振动和光强分布时则利用菲涅尔- 基尔霍夫衍射积分公式[1,2,3]。

在物理光学的光的衍射教学过程中,光学实验内容比较抽象, 如不借助实验, 学生很难理解理论、实验原理和过程。

通常,学校的教学中,将光学理论教学与实验教学相分离,理论教学中需要实验现象来验证,而光学实验的进行一般要稳定的环境、高精密的仪器, 复杂的实验仪器以及光路的调试, 花费了技术人员相当多的时间,往往很难调试到理想的状态,搭建好的仪器和光路也会受到环境和温度的影响,有时实验结果将偏离理论预测。

为了在物理光学课程教学过程形象生动,需要现代化的教学手段,千方百计地为学生提供观察物理现象的机会,提高学生学习光学课程的兴趣,培养他们的思维水平和创新能力,应该充分利用计算机软件功能为教学增添活力,为学生理解复杂理论和实验做好铺垫,可以用MATLAB软件为平台,对光学实验进行计算机仿真,具有两个方面意义:一方面,利用仿真结果指导实际实验。

前期投资少,且可以减少贵重仪器的损伤等;另一方面,在教学上,将抽象难懂的概念、规律通过实验仿真生动、形象地表现出来,使学生更易于接受,具有明显的教学效果。

还可以鼓励学生自主探索,研究一些更深入的光学问题,这样可以拓宽知识面,提高能力[4,5,6]。

国内外研究情况在用计算机模拟[7]光学实验软件方面,国外的光学衍射模拟试验是在模拟设计和优化光学系统的过程中发展起来的。

在这方面,美国走在最前面,他们最具代表性的是劳伦斯利弗莫尔实验室光传输模拟计算软件Prop92[8,9]及大型总体优化设计软件CHAINOP 和PROPSUITE[10]。

matlab模拟单缝菲涅尔衍射

matlab模拟单缝菲涅尔衍射

matlab模拟单缝菲涅尔衍射3.菲涅尔衍射(2)单缝菲涅尔单缝衍射的相对光强分布公式为:22I(x,y),[C(,),(,)],[S(,),(,)], 2121其中,菲涅尔积分为:,,1122C,(),cos(,t)dt、S(,),sin(,t)dt, ,,2200,,,2/,z(W,y),,,,2/,z(W,y),此外其中W为缝的半宽度,z为接收屏η1,1,距离。

程序如下:clearlam=600e-9; %设置波长为600mm a=0.2e-3; %设置半缝宽为0.2mm z=1e-1; %设置接收屏距离为0.1m N=301; %将屏幕分成301块 ym=1e-3;y=linspace(-ym,ym,N);beta1=-(2/(lam*z))^0.5*(a+y); %求β 1beta2=(2/(lam*z))^0.5*(a-y); %求β2 syms t;cc=cos(0.5*pi*t^2); %C(α)表达式ss=sin(0.5*pi*t^2); %S(α)表达式for i=1:N %由于单缝,从屏幕底到上依次求光强%C(βc2(i)=doubl e(int(cc,t,0,beta2(i))); )的值2c1(i)=double(int(cc,t,0,beta1(i))); %C(β)的值1s2(i)=double(int(ss,t,0,beta2(i))); %C(β)的值2s1(i)=double(int(ss,t,0,beta1(i))); %C(β)的值 1I(i)= ((c2(i)-c1(i)).^2+(s2(i)-s1(i)).^2); %B(i)所在条纹的光强 endN=255;subplot(1,2,1)image(y,y,0.25*N*I); %画出衍射图像 colormap(gray(N));subplot(1,2,2)plot(I,y) %画出光强分布图通过改变程序中的a,可以改变半缝宽度。

MATLAB模拟衍射利用基尔霍夫衍射公式

MATLAB模拟衍射利用基尔霍夫衍射公式

利用菲涅尔—基尔霍夫衍射公式对问题进行处理,通过去不同的z 值观察近场,菲涅尔区,夫琅和费区的衍射条纹。

菲涅尔—基尔霍夫衍射公式:()()()()000exp cos ,cos ,2jk r r A E P ds j r r λ∑+⎡⎤-⎣⎦=⋅⋅⎰⎰n r n r ()()100exp E E P A jkr ==由于单色平面波垂直照射,()()10, cos ,1E P A ==-n r ,由于一般考虑光强的相对值,所以分析时取A=1,()cos cos ,z r θ==n r ,并对方孔进行微元,将方孔每个点在光屏上衍射的复振幅进行叠加,即计算E x ,y = z iλe ikr z r+12r ds ,从而得到光屏上的衍射条纹。

对于方孔编程时采用循环的方式,对于光屏则利用矩阵对光屏整体的复振幅,光强等进行分析,加快运算速度。

实现代码clear;lambda=6.32e-7;%波长k=2*pi/lambda;z=550;%光屏位置a=0.01;b=0.01;%方孔尺寸x1=linspace(-0.005,0.005,199);y1=linspace(-0.005,0.005,199);%将方孔分为许多小的微元x=linspace(-0.2,0.2,299);y=linspace(-0.2,0.2,299);%将光屏分为许多小的微元[X,Y]=meshgrid(x,y);%用二维矩阵描述光屏上点的位置E=zeros(299,299);%用于存放光屏上每个点的复振幅r=zeros(299,299);%用于存放光屏上没一点对应方孔上点的距离for l=1:199for j=1:199 %计算方孔上的每个点在光屏上的复振幅r=sqrt((X-x1(l)).^2+(Y-y1(j)).^2+z*z); %当前方孔上点到光屏上各个点的距离E=E+(-i/lambda)*(exp(i*k*r)).*(z./(2*r.*r)+1./(2*r))*z; %对不同点在光屏上的复振幅进行累加 endendE1=conj(E);I=E1.*E; %求光强% pcolor(y,x,I) %作图% colorbarIx= I(1:299,200);%光屏中心水平方向光强分布plot(x,Ix)夫琅和费区:Z=550m光强分布光屏中心水平方向光强分布Z=1m近场区:Z=0.001m。

基于Matlab的光学衍射实验仿真

基于Matlab的光学衍射实验仿真

基于Matlab的光学衍射实验仿真()摘要通过Matlab软件编程,实现对矩孔夫琅和费衍射的计算机仿真,结果表明:该方法直观正确的展示了衍射这一光学现象,操作性强,仿真度高,取得了较好的仿真效果。

关键词夫琅和费衍射;Matlab;仿真1引言物理光学是高校物理学专业的必修课,其中,光的衍射既是该门课程的重点内容,也是人们研究的热点。

然而由于光学衍射部分公式繁多,规律抽象,学生对相应的光学图像和物理过程的理解有一定的困难,大大影响了教学效果。

当然,在实际中可以通过加强实验教学来改善教学效果,但是光学实验对仪器设备和人员掌握的技术水平要求都较高,同时实验中物理现象容易受外界因素的影响,这给光学教学带来了较大的困难1【-5】。

随着计算机技术的迅速发展,现代化的教育模式走进了课堂,利用计算机对光学现象进行仿真也成为一种可能。

Matlab是一款集数值分析、符号运算、图形处理、系统仿真等功能于一体的科学与工程计算软件,它具有编程效率高、简单易学、人机交互好、可视化功能、拓展性强等优点[6-8],利用Matlab编程仿真光学现象只需改变程序中的参数,就可以生成不同实验条件下的光学图像,使实验效果更为形象逼真。

在课堂教学中,能快速的验证实验理论,使学生更直观的理解理论知识,接受科学事实。

本文以矩孔夫琅和费衍射为例,介绍了Matlab在光学衍射实验仿真中的应用。

2 衍射基本原理衍射是光波在空间或物质中传播的基本方式。

实际上,光波在传播的过程中,只要光波波面受到某种限制,光波会绕过障碍物偏离直线传播而进入几何阴影,并在屏幕上出现光强分布不均匀的现象,称为光的衍射。

根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射。

研究不同孔径在不同实验条件下的光学衍射特性,对现代光学有重要的意义。

如图1所示,衍射规律可用菲涅尔衍射积分表示,其合振幅为[9]:(1)其中,K是孔径平面,E是观察平面,r是衍射孔径平面Q到观察平面P的距离,d是衍射孔径平面O到观察平面P0的距离,cosθ是倾斜因子,k=2π/λ是光波波数,λ是光波波长,x1,y1和x,y分别是孔径平面和观察平面的坐标。

圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

圆孔矩孔的菲涅尔衍射模拟(m a t l a b实现)-工程光学-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布,为倾斜因子。

根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。

相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。

在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。

二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。

注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。

根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长λ=,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图 1(r=12mm)图 2(r=20mm)图 3(r=50mm)三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。

任意孔型菲涅尔衍射matlab仿真

任意孔型菲涅尔衍射matlab仿真

菲涅尔衍射Matlab仿真——《高等物理光学》实验报告学院:物理学院姓名:廖宝鑫学号:20目录1. 菲涅尔衍射衍射原理 ......................................................... 错误!未定义书签。

2.实验想法及步骤 ................................................................. 错误!未定义书签。

实验思路.......................................................................... 错误!未定义书签。

实验步骤.......................................................................... 错误!未定义书签。

3.程序源代码: ..................................................................... 错误!未定义书签。

4.运行结果展示 ..................................................................... 错误!未定义书签。

5.结论 ..................................................................................... 错误!未定义书签。

1. 菲涅尔衍射衍射原理假设一个有限孔径,设孔径屏的直角坐标系为(x0,y0),并且观察平面与孔屏平行,两个平面间的间距为z ,观察平面的坐标系为(x,y ),这时,观察平面上的场可以表示为()()()()0000000,,,,0exp{j2}x y x y U x y z df df dx dy U x y f x x f y y π∞-∞∑=⎡⎤⋅-+-⎣⎦⎰⎰(1)根据近轴近似条件()222112x y f f λ≈-+ (2)同时利用傅里叶变换关系先对,x y f f 进行积分,得到如下的菲涅尔公式()()()()()220000000exp jkz ,,,exp{j }U x y z dx dy U x y x x y y j z zπλλ∑⎡⎤=⋅-+-⎣⎦⎰(3) 令()()()()22exp jkz ,exp{j }h x y x y j z z πλλ⎡⎤=+⎣⎦则式(3)可以写为()()()()()0000000,,,,y ,,y U x y z U x y h x x y dx dy U x y h x ∑=--=*⎰ (4)对(4)做傅里叶变换可以得到()()()0,,,,,x y x y x y A f f z A f f H f f z = (5)式中:()(){}00,,x y A f f FFT U x y =对于单位振幅入射平面波()(){}00,,x y A f f FFT t x y =()(){},,x y H f f FFT h x y =2.实验想法及步骤 实验思路根据以上原理,传递函数(),x y H f f 已知,只需要求得透射孔径的透过率函数()0,t x y ,然后对透过率函数进行傅里叶变换得,并与传递函数相乘得到(),,x y A f f z ,最后做一个逆傅里叶变换得到()(),,=IFFT{,,}x y U x y z A f f z 。

模拟夫琅禾费衍射和菲涅耳衍射实验matlab程序

模拟夫琅禾费衍射和菲涅耳衍射实验matlab程序

模拟夫琅禾费衍射实验程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。

当衍射屏和衍射孔的距离相对较小时,此衍射为菲涅耳衍射,当距离相对较大时满足夫琅禾费衍射的条件,两者的程序一样,只是距离Z的大小不一致。

又由于夫琅禾费衍射与傅里叶变换成正比,只差一个系数关系。

所以程序中的衍射既是直接对物光进行傅里叶变换即可。

Matlab源程序: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的光学衍射实验仿真

基于Matlab的光学衍射实验仿真

基于Matlab的光学衍射实验仿真()摘要通过Matlab软件编程,实现对矩孔夫琅和费衍射的计算机仿真,结果表明:该方法直观正确的展示了衍射这一光学现象,操作性强,仿真度高,取得了较好的仿真效果。

关键词夫琅和费衍射;Matlab;仿真1引言物理光学是高校物理学专业的必修课,其中,光的衍射既是该门课程的重点内容,也是人们研究的热点。

然而由于光学衍射部分公式繁多,规律抽象,学生对相应的光学图像和物理过程的理解有一定的困难,大大影响了教学效果。

当然,在实际中可以通过加强实验教学来改善教学效果,但是光学实验对仪器设备和人员掌握的技术水平要求都较高,同时实验中物理现象容易受外界因素的影响,这给光学教学带来了较大的困难1【-5】。

随着计算机技术的迅速发展,现代化的教育模式走进了课堂,利用计算机对光学现象进行仿真也成为一种可能。

Matlab是一款集数值分析、符号运算、图形处理、系统仿真等功能于一体的科学与工程计算软件,它具有编程效率高、简单易学、人机交互好、可视化功能、拓展性强等优点[6-8],利用Matlab编程仿真光学现象只需改变程序中的参数,就可以生成不同实验条件下的光学图像,使实验效果更为形象逼真。

在课堂教学中,能快速的验证实验理论,使学生更直观的理解理论知识,接受科学事实。

本文以矩孔夫琅和费衍射为例,介绍了Matlab在光学衍射实验仿真中的应用。

2 衍射基本原理衍射是光波在空间或物质中传播的基本方式。

实际上,光波在传播的过程中,只要光波波面受到某种限制,光波会绕过障碍物偏离直线传播而进入几何阴影,并在屏幕上出现光强分布不均匀的现象,称为光的衍射。

根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射。

研究不同孔径在不同实验条件下的光学衍射特性,对现代光学有重要的意义。

如图1所示,衍射规律可用菲涅尔衍射积分表示,其合振幅为[9]:(1)其中,K是孔径平面,E是观察平面,r是衍射孔径平面Q到观察平面P的距离,d是衍射孔径平面O到观察平面P0的距离,cosθ是倾斜因子,k=2π/λ是光波波数,λ是光波波长,x1,y1和x,y分别是孔径平面和观察平面的坐标。

matlab 菲涅耳衍射

matlab 菲涅耳衍射

matlab 菲涅耳衍射英文回答:Fresnel diffraction is a phenomenon that occurs when a wave passes through an aperture or around an obstacle and spreads out. It is a type of wave diffraction that is characterized by the interference of waves that have traveled different distances. This phenomenon is namedafter the French physicist Augustin-Jean Fresnel, who first studied and described it in the early 19th century.In the context of MATLAB, Fresnel diffraction can be simulated and analyzed using various numerical methods. One common approach is to use the Fresnel-Kirchhoff diffraction formula, which calculates the diffracted field as the sum of contributions from different parts of the aperture or obstacle. This formula takes into account the phase and amplitude of the incident wave, as well as the distance between the source and the observation point.To illustrate this, let's consider an example of Fresnel diffraction through a circular aperture. Suppose we have a laser beam passing through a small circular hole in a screen. The light waves passing through the aperture will spread out and form a diffraction pattern on a distant screen. Using MATLAB, we can simulate this diffraction pattern by numerically calculating the field at different points on the screen.First, we need to define the parameters of the system, such as the wavelength of the light, the size of the aperture, and the distance between the aperture and the screen. Then, we can use the Fresnel diffraction formula to calculate the field at each point on the screen. Finally, we can plot the resulting diffraction pattern using MATLAB's plotting functions.By analyzing the diffraction pattern, we can gain insights into the behavior of the wave as it passes through the aperture. For example, we can observe the presence of interference fringes, which are caused by the constructive and destructive interference of the diffracted waves. Wecan also study the effect of changing parameters, such asthe size of the aperture or the distance between the aperture and the screen, on the diffraction pattern.中文回答:菲涅耳衍射是一种波通过孔隙或绕过障碍物时产生的现象,它会呈现出扩散的特点。

圆孔菲涅尔衍射 matlab

圆孔菲涅尔衍射 matlab

题目:圆孔菲涅尔衍射及其在matlab中的应用一、圆孔菲涅尔衍射简介在物理学中,菲涅尔衍射是一种由光波经过边缘或孔隙时发生的衍射现象。

而圆孔菲涅尔衍射是指当光波穿过圆孔时发生的衍射现象。

这一现象的研究不仅有助于我们理解光的传播规律,还具有广泛的应用价值。

下面我们将就圆孔菲涅尔衍射进行更深入的探讨。

1. 圆孔菲涅尔衍射原理圆孔菲涅尔衍射的原理可以简单概括为:当平行光垂直照射到孔径远小于波长的圆孔上时,光波将会在圆孔边缘发生衍射现象。

这一现象受到衍射衍射影响,使得出射光波的强度和相位发生变化,最终形成特定的衍射图样。

2. 圆孔菲涅尔衍射特点圆孔菲涅尔衍射的特点主要包括:- 衍射角度的变化会导致衍射图样的变化,这为我们定量研究光波的传播提供了重要依据。

- 圆孔菲涅尔衍射图样中会出现一系列光强和暗条纹,这种干涉现象在实际应用中具有重要意义。

3. 圆孔菲涅尔衍射的应用圆孔菲涅尔衍射在实际生活中有着广泛的应用,比如在天文望远镜、显微镜和光学仪器中的设计与制造中都有相关技术的应用。

而在数字图像处理、光栅制造以及激光技术等领域,圆孔菲涅尔衍射同样也有重要作用。

二、Matlab中的圆孔菲涅尔衍射模拟Matlab作为一款功能强大的科学计算软件,其在光学领域的应用也是非常广泛的。

关于圆孔菲涅尔衍射的模拟,我们可以借助Matlab中的光学工具箱进行实现。

1. 光学工具箱介绍Matlab中的光学工具箱提供了丰富的光学计算函数和模型,用户可以利用这些工具进行光学系统的设计、分析和优化。

在Matlab中进行圆孔菲涅尔衍射的模拟,可以很方便地实现对光波传播规律的研究。

2. 圆孔菲涅尔衍射模拟方法在Matlab中进行圆孔菲涅尔衍射的模拟可以分为以下几个步骤:- 定义圆孔的参数,比如孔径大小和光波波长等。

- 利用光学工具箱提供的函数进行光波传播的数值模拟。

- 通过对模拟结果的分析,可以得到圆孔菲涅尔衍射图样,从而深入理解菲涅尔衍射的规律。

基于Matlab GUI光的衍射实验仿真

基于Matlab GUI光的衍射实验仿真

1 2 2
λ ( f x + f 2y )

(1)
(2)
同时利用傅里叶变换关系先对 fxꎬfy 进行积
分ꎬ得到如下的菲涅尔公式:
U( xꎬyꎬz) =
{ λzπ [ ( x - x )
exp j
令 h( xꎬy) =

exp( jkz)
dx 0 dy 0 U( x 0 ꎬy 0 )
jλz



+ ( y - y0 ) 2 ]
操作便捷、设计灵活等特点ꎬ从而达到较好的实验演示教学目的ꎮ


词: Matlab GUIꎻ光的衍射ꎻ仿真实验Biblioteka 中图分类号: O 4 ̄39
文献标志码: A
菲涅尔衍射是大学物理重点学习内容ꎬ但光
的衍射实验现象对实验设备及环境要求苛刻ꎬ通
常不能达到较好的实验结果ꎮ 近年来ꎬ不断有人
在光的衍射仿真方面上做了多种尝试ꎬ吕波、徐志
要: 利用 Matlab 仿真软件的 GUI 图形用户界面可视化工具和 FFT 傅里叶变换工具ꎬ对圆孔、方

形孔、多边形孔、圆盘四种不同的孔形进行菲涅尔光的衍射实验仿真ꎮ 通过用户界面对光学参数进行数
据交互ꎬ能形象直观地得到四种不同孔径光的衍射图纹、光强三维分布、光强二维分布图像ꎮ 应用于物
理课堂教学中能将抽象难于实现的衍射实验现象直观呈现ꎬ同时ꎬ有助于学生对衍射原理的理解ꎬ具有
内容为圆孔、方形、多边形、圆盘ꎬ则系统在 popup ̄
menu_CreateFcn 函数中自动生成如下代码:
set( hObjectꎬ‘ String’ ꎬ{ ‘ 圆孔’ ꎬ‘ 方形’ ꎬ‘ 多
边形’ ‘ 圆盘’ ꎬ''} ) ꎻ在可编辑文本框中设置光学
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京航空航天大学高等光学期末报告题目:基于Matlab的单缝菲涅尔衍射实验仿真学院专业姓名学号2014 年12 月30 日基于Matlab的菲涅尔衍射仿真摘要光学试验中衍射实验是非常重要的实验. 光的衍射是指光在传播过程中遇到障碍物时能够绕过障碍物的边缘前进的现象, 光的衍射现象为光的波动说提供了有力的证据. 衍射系统一般有光源、衍射屏和接受屏组成, 按照它们相互距离的大小可将衍射分为两大类, 一类是衍射屏与光源和接受屏的距离都是无穷远时的衍射, 称为夫琅禾费衍射, 一类是衍射屏与光源或接受屏的距离为有限远时的衍射称为菲涅尔衍射。

本文用Matlab软件主要针对单缝菲涅尔衍射现象建立了数学模型,对衍射光强分布进行了编程运算,对衍射实验进行了仿真。

关键字:Matlab;单缝菲涅尔衍射;仿真;光学实验AbstractOptical diffraction experiment is a very important experiment. is the diffraction of light propagation of light in the obstacles encountered in the process to bypass the obstacles when the forward edge of the phenomenon of light diffraction phenomenon of the wave theory of light provides a strong Evidence. diffraction systems generally have light, diffraction screen and accept the screen composition, size according to their distance from each other diffraction can be divided into two categories, one is the diffraction screen and the light source and the receiving screen is infinity when the distance between the diffraction Known as Fraunhofer diffraction, one is diffraction screen and the light source or accept a limited away from the screen when the diffraction is called Fresnel diffraction.In this paper, Matlab software on a typical phenomenon of a mathematical model of single slit Fresnel diffraction, the diffraction intensity distribution of the programming operation, the diffraction experiment is simulated.Key word: matlab;single slit Fresnel diffraction; simulation; optical experiment1.菲涅尔衍射的基本原理 1.1菲涅尔衍射的实验原理光在传播的过程中经过障碍物,如不透明物体的边缘、小孔、狭缝等时,一部分光会传播到几何阴影中去,产生衍射现象。

衍射主要有两种:一种是菲涅尔衍射[1,2],单缝距光源和接收屏均为有限远,或是其中之一为有限远,另一种是夫琅和费衍射[3,4],单缝距光源和接收屏均为无限或相当于无限远。

这里主要介绍单缝衍射。

它是光学实验中比较重要的实验之一。

图1点光源照明平面屏1.2菲涅尔衍射的计算菲涅尓—基尔霍夫衍射公式为:()()()()0121012100121cos ,cos ,2jk r r n r n r AeU P ds j r r λ+-=∑⎰⎰(1)1.3单缝菲涅尓衍射公式当矩形孔一边的长度为2W ζ→∞,而另一边为有限值时,矩形孔就变成一个长狭缝,这时对应的))1212,;,W y W y ηηααββ=-∞=+∞=+=-()()()()()(){}2121,12jkze U x y j C C j S S jββββ=+-+-⎡⎤⎡⎤⎣⎦⎣⎦ (2)令021βββ=-,则有210βββ=+,而))212W y W y W ηηηββ-=---=(3) 观察平面上的光强分布为()()()()(){}221011011,2I x y C C S S ββββββ=+-++-⎡⎤⎡⎤⎣⎦⎣⎦ (4) α、β比较的相对大小。

2W ζ是缝宽。

z 是指衍射屏与接收屏之间的距离。

λ是指入射光的波长。

而()()()()101101C C S S ββββββ++、、、是菲涅尓的一个积分。

根据菲涅尓积分()()220011cos sin 22C t dt S t dt αααπαπ⎛⎫⎛⎫== ⎪ ⎪⎝⎭⎝⎭⎰⎰、 (5)可以求出。

图2一平面波垂直入射至一个宽度为2W η的长狭缝上,2. 单缝菲涅尔衍射的计算机作图利用Matlab 可以仿真模拟出单缝菲涅而衍射的光强分布图。

根据以上公式我们看出只要在Matlab 中运算出(5)式,即可求出(4)式。

取波长632.8nm λ=,衍射屏与接收屏间的距离1dm z =,半缝宽0.2W mm η=。

利用Matlab 仿真单缝菲涅尓衍射的光强分布的运行代码为:clear alllam=6.328e-7; a=0.2e-3; z=1e-1; N=201; M=91;ym=0.5e-3;y=linspace(-ym,ym,N);beta1=-(2/(lam*z))^0.5*(a+y); beta2=(2/(lam*z))^0.5*(a-y); for i=1:Nt=1/(M-1)*beta2(i);p=linspace(0,beta2(i),M); alfa=pi/2*p.^2;c2(i)=t*(sum(cos(alfa))-0.5*cos(alfa(1))-0.5*cos(alfa(M))); endfor i=1:Nt=1/(M-1)*beta1(i);p=linspace(0,beta1(i),M); alfa=pi/2*p.^2;c1(i)=t*(sum(cos(alfa))-0.5*cos(alfa(1))-0.5*cos(alfa(M))); endfor i=1:Nt=1/(M-1)*beta2(i);p=linspace(0,beta2(i),M); alfa=pi/2*p.^2;s2(i)=t*(sum(sin(alfa))-0.5*sin(alfa(1))-0.5*sin(alfa(M))); endfor i=1:Nt=1/(M-1)*beta1(i);p=linspace(0,beta1(i),M); alfa=pi/2*p.^2;s1(i)=t*(sum(sin(alfa))-0.5*sin(alfa(1))-0.5*sin(alfa(M))); endfor i=1:NB=0.25*((c2-c1).^2+(s2-s1).^2); end N=255;subplot(1,2,1) Br=(B/max(B))*N; colormap(gray(N));image(y,y,Br)subplot(1,2,2)plot(B,y)结果与讨论现在改变缝宽,让a分别为0.2mm,0.37mm, 0.6mm,z为1dm时得出的图像如下:图3(1)半缝宽为0.2mm的光强分布图3(2)半缝宽为0.37mm的光强分布图3(3)半缝宽为0.6mm的光强分布当缝宽很小时,主最大位于y=0处,中央亮条纹宽度较大,衍射的相对光强较弱,亮纹间距较大。

在集合阴影区的光强也出现振荡,但幅度远小于主最大。

随着缝宽的逐渐增加,亮条纹间距缩小。

缝宽增加到一定程度时,原来照明中心的主最大开始分裂,随着缝宽的进一步增加时,主最大光强趋于稳定,亮纹间距进一步缩小,照明区中间区域光强出现振荡,而几何阴影区光强振荡大为减弱。

当缝宽很大时,主最大位于照明区两侧靠近几何阴影的边界处。

在两个主最大之间光强是振荡的且相对光强接近1;从两个主最大向外侧延伸,直至进入几何阴影区,光强单调减小最终趋于零。

下面我们让取缝宽a=0.3mm,让距离z分别为0.3dm,1dm,6dm得出的图像如下:图4(1)距离为0.30dm的光强分布图4(2)距离为1dm的光强分布图4(3)距离为8dm的光强分布改变衍射屏与接收屏之间的距离,增加距离的大小,我们可以看出亮条纹间距增加,中央亮条纹变宽震荡减小。

主最大慢慢向中央靠拢,直到出现一个主最大,在y=0处。

边缘逐渐模糊起来。

随着距离的改变,菲涅尓衍射光强分布的大小和范围都发生了变化。

我们知道菲涅尓衍射与夫琅和费衍射的区别就是光源与接受屏间得距离。

当我们把距离增大到某一个值的时候菲涅尓衍射就转化为夫朗和费衍射,如图4(3)所示。

3.结束语本文以单缝菲涅尔衍射为例,介绍了利用Matlab设计向导制作仿真实验的方法,从中可以看到,将单缝菲涅尔衍射仿真实验或是其它仿真实验引入教学,可以使学生直观的了解衍射的特性,加深对衍射的理解,使教学与实验有机的结合起来,有助于改善教学的薄弱环节,并可以作为实验内容的补充。

参考文献:[1]潘毅,李训谱,牛孔贞.菲涅尓单缝衍射动态演示实验[J].大学物理,2005,24(11):5254.[2]季家镕.高等光学教程[M].北京:科学出版社,2007:207220.[3]赵凯华,钟锡华.光学[M].北京:人民教育出版社,1984:187.[4]母国光,战元龄.光学[M].北京:人民教育出版社,1978:194297.。

相关文档
最新文档