基于MATLAB的光学实验仿真_第1页
基于MATLAB的光学实验仿真_第2页
基于MATLAB的光学实验仿真_第3页
基于MATLAB的光学实验仿真_第4页
基于MATLAB的光学实验仿真_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文题目基于MATLAB的光学实验仿真学院物理科学与技术学院专业物理学(师范)年级学号姓名指导教师成绩2014年月日TOC\o"1-3"\h\u目录13040摘要 212621关键词 25974Abstract 316846引言 327869第一章绪论 5275731.1MATLAB的简介 5124961.2MATLAB用于仿真的优越性 660251.3光学实验仿真研究的意义 842081.4光学实验仿真的国内外研究状况 928918第二章光的干涉实验仿真 10139252.1两束相干光叠加的强度和干涉条纹仿真 1058942.1.1建模 1018512.1.2MATLAB程序 12228172.1.3运行结果及结论 13249802.2劈尖等厚干涉条纹仿真 1482962.2.1建模 14286182.2.2MATLAB程序 15270512.2.3运行结果及结论 16248572.3等倾干涉 17197242.3.1建模 17200152.3.2MATLAB程序 1822352.3.3运行结果及结论 19144432.4牛顿环 19327252.4.1建模 1922672.4.2MATLAB程序 21266002.4.3运行结果及结论 2121649第三章光的衍射实验仿真 23185843.1夫琅禾费单缝衍射 23307643.1.1建模 23228873.1.2MATLAB程序 23279043.1.3运行结果及结论 24140283.2夫琅禾费光栅衍射 2631513.2.1建模 26289283.2.2MATLAB程序 26228903.2.3运行结果及结论 27291073.3夫琅禾费圆孔衍射 29262963.4夫琅禾费矩孔衍射 3031192第四章MATLABGUI设计在光学中的应用 3226574.1等倾干涉 3222974第五章总结 413246参考文献 4225848致谢 43基于MATLAB的光学实验仿真杨云标西南大学物理科学与技术学院,重庆400715摘要:光学实验是物理教学和物理实验中重要组成部分,对于光学实验的研究,做传统的光学实验,对实验仪器和实验环境要求非常的高,但是得到的实验结论却并不一定理想。所以,引进了一种数学软件MATLAB,它是一种集符号运算、数值运算、图形可视化等多种功能于一体的科技应用软件。而利用MATLAB仿真出来的结果和理论吻合,图像清晰逼真,不受实验仪器的影响,可以极大地促进光学实验的课堂教学效果。本文主要介绍用MATLAB软件对典型的干涉和衍射现象建立了数学模型,对干涉和衍射光强分布进行了编程运算,对实验进行了仿真,而且展示了仿真的结果。最后创建了交互式GUI界面,用户可以通过改变输入参数模拟不同条件下的干涉和衍射条纹。关键词:MATLAB;光学实验仿真;干涉;衍射;GUI界面OpticalExperimentSimulationsWithMATLABYangYunbiaoSchoolofPhysicalScienceandTechnology,SouthwestUniversity,Chongqing400715,ChinaAbstract:Opticalexperimentisanimportantpartofphysicsteachingandphysicsexperiments,forthestudyofopticsexperiment,opticaltraditionalexperiment,theexperimentalapparatusandtheenvironmentalrequirementsareveryhigh,buttheresultsarenotalwaysideal.Therefore,theintroductionofamathematicalsoftwareMATLAB,itisscientificandtechnologicalapplicationsinoneofavarietyofsetofsymboliccomputation,numericalcomputation,visualizationandotherfunctions.AnastomosisusingMATLABsimulationresultsandtheory,clearandvividimages,notaffectedbytheexperimentalinstrument,cangreatlypromotetheopticalexperimentalteaching.ThispapermainlyintroducesthemathematicalmodelofinterferenceanddiffractionphenomenatypicalisestablishedwithMATLABsoftware,theinterferenceanddiffractionlightintensitydistributionoftheprogram,theexperimentalsimulation,butalsoshowthesimulationresults.Finally,tocreateinteractiveGUIinterface,theusercanchangetheinputparametersimulationunderdifferentconditionsofinterferenceanddiffractionpatterns.Keyword:MATLAB;Opticalexperimentsimulations;Interference;Diffraction;TheGUIinterface引言而近年来,用计算机仿真模拟实现各种光学现象成为研究的热点。由于在做光学实验过程中,需要稳定的环境、精密的仪器,而且其概念难懂,所用的仪器又非常的贵重,这有时使得实验变得非常的困难。但随着计算机仿真技术的发展,利用仿真虚拟技术展示客观物理现象,在现代光学研究中发挥着越来越重要的作用。在数字全息、数字干涉测量、衍射光学元件的设计制备等研究领域,都涉及到在计算机中对光学衍射过程进行数值计算或模拟的工作,所以选择能够准确、快速地模拟光学实验过程的算法有重要的实际意义。利用仿真实验的结果指导实际实验,减少和避免贵重仪器的损伤;通过仿真实验过程将抽象难懂的光学概念和规律直观地展现在学生面前,提升教学效果;突破实验仪器对教学和实验内容扩展和延伸的限制。而MATLAB就是一套高性能的科学计算与可视化软件,从而广泛应用于物理教学中。MATLAB是当今最优秀的科技应用软件之一,它以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。MATLAB具有其他高级语言难以比拟的一些优点,如编写简单、编程效率高、易学易懂等。例如:利用MATLAB程序画出函数y=sinx,y=cosx的图像MATLAB程序如下:图1subplot(1,2,1)

fplot('cos',[-pi,pi])

gridon

boxoff

set(gca,'xgrid','off')

text(0,0,'y=cosx')

subplot(1,2,2)

fplot('sin',[-pi,pi])

gridon

boxoff

set(gca,'xgrid','off')

text(0,0,'y=sinx')图1因此MATLAB语言也被通俗地称为演算纸式科学算法语言。在控制、通信、信号处理及科学计算等领域中,MATLAB都被广泛地应用,已被认为能够有效提高工作效率、改善设计手段的工具软件,掌握MATLAB好比掌握了开启这些专业领域大门的钥匙。本文主要分为四章,第一章主要介绍MTALAB软件和它在光学实验仿真应用的意义;第二章主要介绍MATLAB在光学干涉实验仿真,包括双缝干涉、牛顿环、薄膜等倾干涉等实验仿真图像;第三章主要介绍MATLAB在光学衍射实验中的仿真,包括夫琅禾费单缝衍射、光栅衍射、夫琅禾费圆孔、矩孔衍射等;第四章主要介绍MATLABGUI设计在光学中的应用第一章绪论1.1MATLAB的简介MATLAB是一种科学计算机软件,它是由美国Mathworks公司于1984年正式推出的,主要适用于矩阵运算及控制和信息处理领域的分析设计。MATLAB还包括了ToolBox(工具箱)的各类问题的求解工具,可用来求解特定学科的问题。它使用方便,输入简捷,运算高效,内容丰富,并且很容易由用户自行扩展,因此,当前已成为美国和其他国家大学教学和研究中最常用的软件之一。随着科技的发展,MATLAB软件版本也不断的升级,内容不断扩充,功能更加强大。特别是在系统的仿真和实时运行等方面,有很多的新进展,更加扩大它的应用前景。MATLAB是“矩阵实验室”(MATrixLABoratoy)的缩写,他是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求。与其他计算机语言相比,其特点是简洁和智能化,适应科学研究人员的思维方式和书写习惯,从而使得编程和调试效果大大提高。它用解释方式工作,输入程序能够立即得到结果,人机交互式性能好,深得科技研究人员的喜爱。1.2MATLAB用于仿真的优越性随着仿真技术的发展,在欧美高等院校,MATLAB已成为应用于线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具:在研究单位、工业部门,MATLAB也被广泛用于研究和解决各种工程问题。因为MATLAB用于解决这些问题具有很大的优越性,它具有其他软件不具备的特点。它的特点可概括如下:编程效率高,MATLAB是一种面向科学与工程的高级语言,允许数字形式的语言编程,与BASIC、Fortran和C语言相比较的话,它更接近书写计算公式的思维方式。所以使得MATLAB编程效率高、智能化、编程简洁和易学易懂。用户使用方便MATLAB语言是一种解释执行的语言(在没被专门的工具编译之前),它灵活、方便,其调试程序手段丰富,调试速度快,需要学习时间少。MATLAB能够把编辑、编译、链接和执行融为一体,而且它能在同一画面上进行灵活操作,可以对输入程序中的书写错误、语法错误以至语义错误立即作出反应,便于编程者马上改正。这些都可以大大减轻了编程和调试的工作量,使用户方便。(3)扩充能力强,交互性好高版本的的MATLAB语言有丰富的库函数,在进行复杂的数序运算时可以直接调用,而且MATLAB的库函数同用户文件在形成上一样,所以用户文件也可作为MATLAB的库函数来调用。因而,用户可以根据自己的需要方便地建立和扩充新的库函数,以便提高MATLAB的使用效率和扩充它的功能。另外,为了充分利用FORTRAN、C等语言的资源,包括用户已编好的FORTRAN、C语言程序,通过建立Me调文件的形式,混合编程,方便地调用有关的FORTRAN、C语言的子程序,还可以在C语言和FORTRAN语言中方便地使用MATLAB的数值计算功能。这样良好的交互性使程序员可以使用以前编写过的程序,减少重复性工作,也使现在编写的程序具有重复利用的价值。(4)移植性和开放性很好MATLAB是用C语言编写的,而C语言的可移植性很好。于是MATLAB可以很方便地移植到能运行C语言的操作平台上。MATLAB合适的工作平台有:Windows系列、UNIX、Linux、VMS6.1和PowerMac。除了内部函数外,MATLAB所有的核心文件和工具箱文件都是公开的,都是可读可写的源文件,用户可以通过对源文件的修改和自己编程构成新的工具箱。(5)语句简单,内涵丰富MATLAB语言中最基本最重要的成分是函数,其一般形式为[a,b,c,...]=fun(d,e,f,...),即一个函数由函数名,输入变量d,e,f,...和输出变量a,b,c,...组成,同一函数名F,不同数目的输入变量(包括无输入变量)及不同数目的输出变量,代表着不同的含义(有点像面向对象中的多态性)。这不仅使MATLAB的库函数功能更丰富,而且大大减少了需要的磁盘空间看,使得MATLAB编写的M文件简单、短小而高效。(6)高效方便的矩阵和数组运算MATLAB语言像BASIC、FORTRAN和C语言一样规定了矩阵的算术运算符、关系运算符、罗技运算符、条件运算符,而且这些运算符大部分可以毫无改变地照搬到数组间的运算,有些如算术运算符只要增加“.”就可用于数组间的运算。另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其他高级语言所不能比拟的。在此基础上,高版本的MATLAB一定能名副其实地称为“万能演算纸”式的科学算法语言。(7)方便的绘图功能MATLAB的绘图是十分方便的,它有一系列绘图函数(命令),例如线性坐标、对数坐标、半对数坐标及极坐标,均只需调用不同的绘图函数(命令),在图上标出图题、XY轴标注,格(栅)绘制也只需调用相应的命令,简单易行。另外,在调用绘图函数时调整自变量可绘出不变颜色的点、线、复线或多重线。这种为科学研究着想的设计是通用的编程语言所不能及的。由于MATLAB具有如此之多的特点,所以当前在全世界有超过40万工程师和科学家使用它来分析和解决问题,也大量用于仿真。1.3光学实验仿真研究的意义在工程设计领域中,人们通过对研究对象建立模型,用计算机程序实现系统的运行过程和得到运算结果,寻找出最优方案,然后再予以物理实现,此即为计算机仿真科学。在计算机同益普及的今天,计算机仿真技术作为虚拟实验手段已经成为计算机应用的一个重要分支。它是继理论分析和物理实验之后,认识客观世界规律性的一种新型手段。计算机仿真过程是以仿真程序的运行来实现的。仿真程序运行时,首先要对描述系统特性的模型设置一定的参数值,并让模型中的某些变量在指定的范围内变化,通过计算可以求得这种变量在不断变化的过程中,系统运动的具体情况及结果。仿真程序在运行过程中具有以下多种功能:(1)计算机可以显示出系统运动时的整个过程和在这个过程中所产生的各种现象和状态。具有观测方便,过程可控制等优点;(2)可减少系统外界条件对实验本身的限制,方便地设置不同的系统参数,便于研究和发现系统运动的特性;(3)借助计算机的高速运算能力,可以反复改变输入的实验条件、系统参数,大大提高实验效率。因此.计算机仿真具有良好的可控制性(参数可根据需要调整)、无破坏性(不会因为设计上的不合理导致器件的损坏或事故的发生)、可复现性(排除多种随机因素的影响,如温度、湿度等)、易观察性(能够观察某些在实际实验当中无法或者难以观察的现象和难以实现的测量捕捉稍纵即逝的物理现象,可以记录物理过程的每一个细节)和经济性(不需要贵重的仪器设备)等特点。在光学仪器设计和优化过程中,计算机的数值仿真已经成为不可缺少的手段。通过仿真计算,可以大幅度节省实验所耗费的人力物力,特别是在一些重复实验工作强度较大且对实验器材、实验环境等要求较苛刻的情况下.如在大型激光仪器的建造过程中,结合基准实验的仿真计算结果可为大型激光器的设计和优化提供依据。仿真光学实验也可应用于基础光学教学。光学内容比较抽象,如不借助实验,学生很难理解,如光的干涉、菲涅耳衍射、夫琅禾费衍射等。国外著名的光学教材配有大量的图片(包括计算和实验获得的图片),来形象地说明光学中抽象难懂的理论。光学实验~般需要稳定的环境.高精密的仪器,因此在教室里能做的光学实验极为有限,而且也受到授课时间的限制。为了克服光学实验对实验条件要求比较苛刻的缺点,可采用计算机仿真光学实验,特别是光学演示实验,配合理论课的进行.把光学课程涉及的大多数现象展示在学生面前,以加深对光学内容的理解。如利用计算机仿真联合变换相关实验,可以得到清晰的相关峰,而在实验中液晶光阀的分辨率较低,很难得到清晰的相关峰:又如光学菲涅耳衍射与夫琅禾费衍射,初学者不易理解,如果通过光学仿真实验,可以计算出它们之间的演化规律,清楚地说明二者之间的联系与区别。学生们可以根据对光学原理和规律的理解,自己设置在仿真光学实验中的可控参数,探索和发现光学世界的奥秘,调动学习的积极性。1.4光学实验仿真的国内外研究状况在科学计算方面,国外的光学实验仿真是在模拟设计和优化光学系统的过程中发展起来的。在这方面,美国走在最前面,其中最具代表性的是劳伦斯利弗莫尔实验室光传输模拟计算软件Prop92及大型总体优化设计软件CHAINOP和PROPSUI法上有独到之处,主要体现在其快速傅里叶变换的计算效率很高:软件采用特殊方法能够处理小于计算分辨率的灰尘点的衍射过程以及截止频率小于计算网格分辨最小频率的滤波过程等。另外,该软件图形显示界面友好,运行稳定。我国用于科学研究的光学实验计算机数值仿真软件虽开发较晚,但也己经取得了显著成绩。特别是年,神光一川原型装置TIL分系统集成实验的启动为高功率固体激光驱动器的计算机数值模拟的研究创造了条件。目前己基本完成的SG99光传输可靠,模拟计算软件的开发,推出的标准版本基本能稳定运行,对SG99主要计算模块的验证结果表明SG99对能流放大、线性传输、非线性传输的计算是合理可靠的,其中线性传输的计算模块的计算精度与国外同类软件Fresnel相当;目前该软件已经应用于神光一Ⅲ主机可行性论证的工作中。在光学教学方面,国外己有相关的配有光盘演示光学实验的教材,该教材主要针对高年级学生和研究生使用。其中不仅详尽的介绍了几何光学、物理光学、光学成像技术及图像处理技术,而且利用现在普遍使用的软件工具MATLB对它们进行了系统的仿真。也有针对理科和工科低年级学生使用的光学教材,该教材使用Matchcad绘制各种逼真的光学仪器,创造出仿真的光学实验室,学生可利用其进行探索和发现性学习,充分调动学生的积极性。还有网络版光学教材,该教材采用进行光学仿真计算,结合LiveGraPhic3DJaval.1的动画制作功能在网络上实时演示各种光学实验的结果图。我国光学教材在利用计算机仿真方面相对落后,至今没有同类教材出现。在2003年北京举行的网络教育软件展上,有关光学实验的网络教学软件都偏重于理论分析方面,对计算机应用于光学实验的仿真方面未给与充分重视。光的干涉实验仿真2.1两束相干光叠加的强度和干涉条纹仿真2.1.1建模两束频率相同的单色光在空间某点相遇时,讨论光强和干涉条纹的分布规律以及干涉条纹的可见度。根据波的叠加理论,两束同频率单色光在空间某一点光矢量的大小为E1=E10cos(ωt+φ10),E2=E20cos(ωt+φ20),(7.1.1)其中,E10和E20分别是两个光矢量的振幅,φ10和φ20分别是初相。如果两个光矢量的方向相同,合成的光矢量为E=E0cos(ωt+φ0),(7.1.2)其中,振幅和初相分别为,(7.1.3a)。(7.1.3b)在一定时间内观察到的平均光强I与光矢量的平方的平均值成正比,(7.1.4)其中a是比例系数。对于普通光源,两光波之间的相位差φ20–φ10是随机变化的,平均值为零,因此。(7.1.5)这就是光的非相干叠加,总光强等于两束光各自照射时的光强之和。如果两束光的相位差恒定,则合成光强为,(7.1.6a)其中Δφ=φ20–φ10,第三项是干涉项。这就是光的相干叠加。如果I1=I2,则合成光强为。(7.1.6b)[讨论]①当Δφ=2kπ时(k=0,±1,±2,…),满足这样条件的空间各点的光强最大,(7.1.7a)或IM=4I1。(7.1.7b)这种干涉是光的相长干涉。②当Δφ=(2k+1)π时(k=0,±1,±2,…),满足这样条件的空间各点,合光强最小,(7.1.8a)或Im=0。(7.1.8b)这种干涉是光的相消干涉。[算法]当两个光源的强度相等时,相对光强为。2.1.2MATLAB程序%两束相干光的干涉强度和干涉条纹clear%清除变量n=3;%条纹的最高阶数dphi=0.005;%相差的增量phi=(-1:dphi:1)*n*2*pi;%相差向量i=4*cos(phi/2).^2;%干涉的相对强度fs=16;%字体大小figure%创建图形窗口subplot(2,1,1)%取子图plot(phi,i)%画曲线gridon%加网格set(gca,'xtick',(-n:n)*2*pi)%改水平刻度axis([-n*2*pi,n*2*pi,0,4])%曲线范围title('光的干涉强度分布','fontsize',fs)%标题xlabel('相差\Delta\it\phi','fontsize',fs)%x标签ylabel('相对强度\itI/I\rm_1','fontsize',fs)%y标签subplot(2,1,2)%取子图r=linspace(0,1,64)';%红色的范围g=zeros(size(r));%不取绿色b=zeros(size(r));%不取蓝色colormap([rgb]);%形成色图image(i*16)%画红色条纹(乘以16放大强度,最大为64)axisoff%隐轴title('光的干涉条纹','fontsize',fs)%标题2.1.3运行结果及结论运行结果如图2.1所示,两个相干光强度相同,发生干涉后最小相对光强为0,最大相对光强为4。光强曲线最大的地方对应明条纹的中央,相差为2π的整数倍;光强曲线为零的地方对应暗条纹中央,相差为π的奇数倍。 图图2.12.2劈尖等厚干涉条纹仿真2.2.1建模n1n2nen1n2neabθΔedh图2.2设劈尖厚度为e,b光比a光多传播了2e的几何路程,多传播的光程为2ne,a光是从光疏媒质入射到光密媒质的表面发生反射的,因而有半波损失。b光是从光密媒质入射到光疏媒质的表面发生反射的,因而没有半波损失;故两束光的光程差为δ=2ne+λ/2。图2.2明纹形成条件为δ=2ne+λ/2=kλ,(k=1,2,3,…)暗纹形成条件为δ=2ne+λ/2=(2k+1)λ/2,(k=0,1,2,…)当k=0时,e=0,可知:劈尖的尖端是暗纹。同一条纹的劈尖厚度是相同的,因此这种干涉称为等厚干涉,干涉级次k越大,对应的厚度e也越大,相邻明纹或暗纹之间的厚度差为Δe=λ/2n,由于劈尖的角度很小,尖角为:一条完整的明条纹介于两条暗纹(中心)之间,完整明纹的最高级次k=10,劈尖的高度为:干涉光的强度可表示为:干涉条纹由光的强度决定。2.2.2MATLAB程序若取劈尖的折射率为n=1.4,放在空气之中。用真空中波长分别为λ=780nm的红光,λ=525nm的绿光,λ=470nm蓝光垂直照射劈尖。则编程为:%劈尖的等厚干涉条纹clear%清除变量lambda=[780,525,470]*1e-9;%波长n=1.4;%劈尖的折射率k=10;%明纹最高级次dx=0.002;%明纹之间的距离xm=k*dx;%劈尖的长度x=linspace(0,xm,1000);%劈尖的长度向量theta=lambda(1)/2/n/dx;%劈尖的夹角e=x*tan(theta);%劈尖的厚度向量i1=cos(pi*(2*n*e/lambda(1)+1/2)).^2;%红色反射光的相对光强M=zeros(1,length(x),3);%1行若干列3页全零矩阵M(:,:,1)=i1;%矩阵的红色页赋值figure%开创图形窗口subplot(4,1,1)%选子图image(M)%画红色干涉条纹axisoff%隐轴tit=['(\ith\rm=',num2str(e(end)*1000),'mm'];%厚度文本tit=[tit,',\it\theta\rm=',num2str(theta*180/pi),'\circ)'];%角度文本fs=15;%字体大小title(['劈尖的等厚干涉红色条纹',tit],'FontSize',fs)%标题i2=cos(pi*(2*n*e/lambda(2)+1/2)).^2;%绿色反射光的相对光强M=zeros(1,length(x),3);%1行若干列3页全零矩阵M(:,:,2)=i2;%矩阵的绿色页赋值subplot(4,1,2)%选子图image(M)%画绿色干涉条纹axisoff%隐轴title('劈尖的等厚干涉绿色条纹','FontSize',fs)%标题i3=cos(pi*(2*n*e/lambda(3)+1/2)).^2;%蓝色反射光的相对光强M=zeros(1,length(x),3);%1行若干列3页全零矩阵M(:,:,3)=i3;%矩阵的蓝色页赋值subplot(4,1,3)%选子图image(M)%画蓝色干涉条纹axisoff%隐轴title('劈尖的等厚干涉蓝色条纹','FontSize',fs)%标题M(:,:,2)=i2;%矩阵的绿色页赋值M(:,:,1)=i1;%矩阵的红色页赋值subplot(4,1,4)%选子图image(M)%画彩色干涉条纹axisoff%隐轴title('劈尖的等厚干涉彩色条纹','FontSize',fs)%标题2.2.3运行结果及结论运行结果如右图2.3所示,红光、绿光、蓝光的干涉条纹都是均匀分布的。干涉图样的最左边是尖劈的尖端,尖端出现暗条纹;对于红光图样共有10条明条纹。劈尖的角度为0.0079,最大厚度为2.7微米。图2.3由波长大小关系可以得知,红光波长大于绿光;绿光波长大于蓝光,所以对于绿光同样出现了15条明条纹,蓝光出现了17条明条纹。由此可得:对于同一个劈尖,波长越小,出现的明条纹越多。图2.3若三种光混合后垂直照射到劈尖,就可以产生了彩色干涉条纹。由于左边是三种光的暗纹,当劈尖的厚度增加时,三种光叠加在一起,形成白色条纹。但是红光的条纹最宽,所以在蓝光和绿光的暗条纹处出现红光的条纹。这样,三种光的条纹错位叠加,就形成彩色条纹(如图2.3彩色条纹图样)。2.3等倾干涉2.3.1建模n1扩展光源上的一点S发出的一束光照射到薄膜表面上,经薄膜的上、下表面反射与折射后,在透镜的后焦平面P点相遇有相同的光程差,也就是说,只要是入射角相同的光就形成同一条纹,故这些倾斜度不同的光束经薄膜反射所形成的干涉图样是一些明暗相间的同心圆环,这种干涉称其为等倾干涉。n1n1图2.4考虑到只要薄膜处在同意介质中,光在薄膜上、下表面反射时物理性质必然相反,因此俩束反射光在P点相遇时必然有光程差则光程差为:n1图2.4这就是俩束反射光在P点相遇使得光程差。若P点的光程差为:(j=0,1,2,3...),则P点形成的是亮条纹(干涉相长);若P点的光程差为:(j=0,1,2...),则在P点形成的是暗条纹(干涉相消)。由光学干涉理论可知,等倾干涉的光强分布可表示为:,式中的d(mm)表示薄膜厚度,f(mm)为透视焦距,,是光学的波长。2.3.2MATLAB程序xmax=1.0;ymax=1.0;%设定y方向和x方向的范围Lambda=500e-006;%设定波长,以Lambda表示波长h=input('输入平板厚度h=');%设置平行平板的厚度n=input('输入折射率n=');%设置平行平板的折射率,以n表示f=50;%透镜焦距是50mmN=500;%N是采样点数x=linspace(-xmax,xmax,N);%X方向采样的范围从-ymax到ymax,采样数组命名为xy=linspace(-ymax,ymax,N);%Y方向采样的范围从-ymax到ymax,采样数组命名为yfori=1:N%对屏幕上的全部点进行循环计算,则要进行N*N次计算forj=1:Nr(i,j)=sqrt(x(i)*x(i)+y(j)*y(j));%平面上一点到中心的距离u(i,j)=r(i,j)/f;%角半径t(i,j)=asin(n*sin(atan(u(i,j))));%折射角phi(i,j)=2*n*h*cos(t(i,j))+Lambda/2;%计算光程差B(i,j)=4*cos(pi*phi(i,j)/Lambda).^2;%建立一个二维数组每一个点对应一个光强end%结束循环end%结束循环Nclevels=255;%确定使用的灰度等级为255级Br=B/2.5*Nclevels;%定标:使最大光强(4.0)对应于最大灰度级(白色)image(x,y,Br);%做出函数Br的图像colormap(gray(Nclevels));%用灰度级颜色图设置色图和明暗2.3.3运行结果及结论n=1.1,h=1.5mmn=1.1,h=2.2mmn=1.1,h=0.5mmn=1.1,h=1.5mmn=1.1,h=2.2mmn=1.1,h=0.5mm(a)不同薄膜厚度的干涉仿真(a)不同薄膜厚度的干涉仿真n=1.9,h=2mmn=1.5,h=2mmn=1.1,h=2mmn=1.9,h=2mmn=1.5,h=2mmn=1.1,h=2mm(b)不同折射率的平板干涉仿真(b)不同折射率的平板干涉仿真图2.5图2.5观察图2.5(a)所示,当平行板的折射率一定时,薄膜的厚度h越大,相邻的亮条纹之间的距离越小,条纹越密,视野内的条纹变多,越不易辨认。观察2.5(b)所示,当薄膜厚度一定时,随着折射率的增加,亮条纹之间的距离变小,条纹越密,视野内的条纹越多,越不易辨认。2.4牛顿环2.4.1建模如右图2.6所示,B为底下的平面玻璃,A为平凸透镜,,其与平面玻璃的接触点为O,在O点的四周则是平面玻璃与凸透镜所夹的空气气隙。当平行单色光垂直入射于凸透镜的平表面时,在空气气隙的上下两表面所引起的反射光线形成相干光。光线在气隙上下表面反射(一是在光疏媒质面上反射,一是在光密媒质面上反射)。就会在空气中形成等厚干涉条纹,这些条纹是一组以O为圆心的同心圆环,称为牛顿环。图2.6OeR图2.6OeRrλabA则形成明条纹的条件是:AB,(j=0,1,2,3...)B形成暗条纹的条件是:,(j=0,1,2,3...)则第j级明条纹的半径为:,(j=0,1,2,3...)第j级暗条纹的半径为:,(j=0,1,2,3...) 其中j=0时的暗环半径为零,表示中其中j=0时的暗环半径为零,表示中央是暗斑。干涉级次j越大,对应的厚度d也越大,明环和暗环距离中心越远。相邻明环或暗环之间的厚度差为:Δd=λ/2,故相邻明环或暗环的厚度差相同。当平行光垂直照射时,光强可表示为:由于≈2Rd,则光强可以表示为:,若取为长度单位,取I0为光强单位,则相对光强为:其中。2.4.2MATLAB程序clear%清除变量rm=6;%最大半径(相对坐标)r=-rm:0.01:rm;%横坐标或纵坐标向量[X,Y]=meshgrid(r);%横坐标和纵坐标矩阵R=sqrt(X.^2+Y.^2);%求各点到圆心的距离I=cos(pi*(R.^2+1/2)).^2;%反射光的相对光强I(R>rm)=nan;%最大半径外的光强改为非数(将方形图改为圆形图,四角为黑色)c=linspace(0,1,64)';%颜色范围figure%开创图形窗口colormap([cc*0c*0])%形成红色色图image(I*64)%画图像xmax=1.0;ymax=1.0;%设定y方向和x方向的范围title('牛顿环(反射光)','fontsize',15)%标题【说明】如果将光强指令改写成I=cos(pi*R.^2).^2;标题指令改为title('牛顿环(透射光)','fontsize',15);则可以得到透射光的牛顿环图像。2.4.3运行结果及结论(b)(a)图2.7(b)(a)图2.7如图2.7(a)所示,当平凸透镜与平板玻璃接触时,牛顿环中央是暗斑,随着半径的增加,条纹间距越来越小,分布越来越密;是因为相邻明环或暗环的厚度差相同,从里到外空气厚度迅速增加的缘故。当平凸透镜向上移动时,干涉条纹向中心移动,当距离为λ/4时,中心变为明斑(如图2.7b);当距离为λ/2时,中心又变为暗斑。第三章光的衍射实验仿真光波传播过程中遇到障碍物或某种限制时,波就不是沿直线传播,它可以到达沿直线传播所不能达到的区域,这种现象称为波的衍射现象(或绕射现象)(原因是波阵面受到了限制而产生的)。衍射是光波在空间传播过程中的一种基本属性,任何光波在光学系统中的传播过程中,实际上都是在相应光学元件调制下的衍射过程。根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射研究各种形状的衍射屏在不同实验条件下的衍射特性,无论对于经典的物理光学还是现代光学都具有重要意义。3.1夫琅禾费单缝衍射3.1.1建模O夫琅禾费单缝衍射的实验原理如图3.1所示,一束平行光照射到很窄的单缝上,穿过单缝后经过透镜的焦平面上放置的接收屏上将形成明暗相间的衍射图样。O图3.1由图3.1可知,当衍射角为的衍射光经透镜汇聚于屏上P点时,由常规积分法,求得P点的光强为:图3.1式中,为单缝衍射零级处的衍射光强,b为单缝的宽度。设0到P的距离为x,透视镜的焦距为f,则。3.1.2MATLAB程序%单缝夫琅禾费衍射强度曲线和条纹clear%清除变量lambda=input('波长l=');%波长f=input('f=');%透视焦距b=input('b=');%单缝间距x=linspace(-2,2,1000)%向量fori=1:1000u=(pi*b/lambda)*((x(i)/sqrt(x(i)^2+f^2)));%中间变量I(i)=(sin(u)/u)^2;%光强end%结束NCLevels=255;%确定使用的灰度等级为255级Ir=NCLevels*I;%使最大光强对应最大的灰色强度figure;%开创窗口图形colormap(gray);%灰色subplot(2,1,1),image(x,I,Ir);%绘图title('单缝衍射图像');%标题subplot(2,1,2),plot(x,I(:)/max(I));%画图title('单缝衍射强度图像');%标题3.1.3运行结果及结论若波长分别取=450nm,560nm,750nm;单缝宽度分别取b=0.1mm,0.3mm,0.5mm,透视焦距f=70mm,120mm,200mm。则仿真的图像为:=750nm,b=0.1mmf=70mm=560nm,b=0.1mmf=70mm=750nm,b=0.1mmf=70mm=560nm,b=0.1mmf=70mm=450nm,b=0.1mmf=70mm(a)不同波长的衍射仿真图像(a)不同波长的衍射仿真图像,b=0.5mmf=70mm,b=0.3mmf=70mm,b=0.1mmf=70mm,b=0.5mmf=70mm,b=0.3mmf=70mm,b=0.1mmf=70mm((b)不同单缝缝宽的衍射仿真图像,b=0.1mm,b=0.1mm,b=0.1mmf=70mmf=120mmf=200mm,b=0.1mm,b=0.1mm,b=0.1mmf=70mmf=120mmf=200mm(c)不同透视焦距的衍射仿真图像(c)不同透视焦距的衍射仿真图像图3.2如图3.2所示,可以看出夫琅禾费单缝衍射的特点是在中央有一条特别亮的条纹,俩侧排列着一些强度较小的亮条纹。相邻的亮条纹之间有一条暗条纹。若以相邻的暗条纹之间的间隔作为亮条纹的宽度,则两侧的亮条纹是等宽的,而中央亮条纹的宽度为其他亮条纹的俩倍,仿真和理论一致。如图3.2(a)图所示,若保持单缝宽度b和透视焦距f不变,则波长越大,条纹间距越大,即波长与条纹间距成正比。如图3.2(b)所示,若保持波长和透视焦距f不变,则单缝宽度越大,条纹变得越来越窄,越来越密集。若单缝间距很大,则各个明条纹都聚集在中央明条纹附近而分辨不清,只能观察到中央一条亮条纹,呈现出光的直线传播原理,衍射现象几乎忽略。如图3.2(c)所示,若保持缝宽b和波长不变,则条纹间距与透视焦距f成正比。3.2夫琅禾费光栅衍射3.2.1建模图3.3任何具有空间周期性的衍射屏都可以叫做光栅衍射。它的实验原理如图3.3所示,S为与纸面垂直的线光源,它位于透镜的焦平面上,屏幕放在透镜的焦平面上。设各缝的宽度都等于a,相邻俩缝间不透明部分的宽度为b,则a+b=d称为光栅常量,它反映了光栅空间的周期性。当衍射角为的衍射光经透镜汇聚于屏上P点时,由常规积分法可求得P点的光强为:图3.3式中的为单缝衍射零级处的衍射光强,其中,设P到的距离为,的透镜焦距为,则。3.2.2MATLAB程序%光栅衍射的强度曲线和条纹clear%清除变量lambda=input('波长l=');d=input('光栅常数d=');f=100%波长,光栅常数,焦距N=input('缝数N=');%透视焦距a=input('a=');%单缝间距x=linspace(-10,10,1000)%向量fori=1:1000u=(pi*a/lambda)*((x(i)/sqrt(x(i)^2+f^2)));%中间变量I(i)=((sin(u)/u)^2)*((sin(d*u*N/a)/sin(d*u/a))^2);%光强end%结束NCLevels=255;%确定使用的灰度等级为255级Ir=NCLevels*I;%使最大光强对应最大的灰色强度figure(3);%开创窗口图形colormap(gray(NCLevels));%灰色subplot(2,1,1),image(x,I,Ir);%绘图title('光栅衍射图像');%标题subplot(2,1,2),plot(x,I(:)/max(I));%画图title('光栅衍射强度图像');%标题3.2.3运行结果及结论若取波长=700nm,缝宽=0.008mm,光栅常量=0.03mm,=100mm,缝数N=6,则仿真图像为:图3.4图3.4从上图3.4可以看出:(1)光栅衍射与单缝衍射比较,光栅衍射的仿真图像中出现了一系列的强度最大值和最小值。其中那些较强的亮线叫做主最大,较弱的亮线叫做次最大。(2)在相邻主最大之间有N-1条暗纹和N-2个次最大。如右图所示,当N=6(N不能太大)时,在相邻主最大之间有5条暗纹,4个次最大。此外,可以根据前面单缝衍射仿真的例子,在主程序中保持,,,,中四个量不变,改变其中一个量,由输出的仿真图像可以看出改变的这个参量对光栅衍射的影响。光栅的方程为:(=0,1,2,3...),整数称为谱线的级数。因此,对于一定的波长来说,各级谱线之间的距离由光栅常量来决定的。而各级谱线的强度分布,它将会随着缝宽和光栅常量的比值而改变。当的比值为整数时,即使满足光栅方程,某些级数的谱线会消失,这种现象称成谱线的缺级。如当时级数,,、...的谱线都消失,当时,级数,,、...的谱线级数都消失。若把以上MATLAB编程中输入,,,,N=6,即,则输出的仿真图像如下:图3.5由图3.5可以看出,当光栅常数与缝宽比值时,级数为,,、...的谱线都消失了,这表明了仿真的结果与理论相符合。3.3夫琅禾费圆孔衍射图3.6如果在观察单缝衍射的装置中,用小圆孔代替狭缝,如右图3.6所示,圆孔直径为D,那么在透镜的焦平面上可以得到衍射图像,这样的衍射称为圆孔衍射。根据光学的理论可以得到的光强为:图3.6式中是一阶贝塞尔函数,。则可以推出中央最大值的为:。若取波长,圆孔半径R=3mm,通过MATLAB仿真得到的图像为:图3.7图3.7从上图3.7衍射后的图样可以看出,衍射图样是一组同心的明暗相同的圆环,中央有一个很大光强的明斑,称为爱里斑。在爱里斑旁的其他明环的强度迅速降低,仿真和理论相符合。3.4夫琅禾费矩孔衍射图3.8在夫琅禾费衍射装置中,若衍射孔径是矩形孔,如图3.8在透镜的后焦面上便可获得矩孔的夫琅禾费衍射图样。若波长为光正入射到宽度为a(x轴的方向),高度为b(y轴方向)的矩孔上,衍射光波的方向用二维衍射角和来表示而且光的强度分布均匀。则夫琅禾费矩孔衍射的光强分布为:图3.8其中,若取,,则仿真出来的图像为:图3.9矩孔衍射的特点是在哪个方向受到的限制越大,这个方向的衍射角越大,衍射越明显,反之则哪个方向受到限制越小,衍射角越小,衍射越不明显。第四章MATLABGUI设计在光学中的应用GUI是GraphicalUserInterface的简称,即图形用户界面,是由窗口、光标、按键、菜单、文字说明等对象构成的一个用户界面。用户可以用鼠标或键盘来激活这些图形对象,使计算机产生某种动作或变化,如实现绘图、计算等功能。GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非常专业用户的使用人们从此不再需记硬背大量的命令,取而代之的是可以通过窗口、菜单、快捷方式来方便地进行操作。而嵌入式GUI具有几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。GUI界面设计主要包括以下几个步骤:第一步构思草图,编排控件的布局。打开MATLAB程序,在FILE菜单中选择NEWGUI,打开GUI设计界面模板,界面模板左边的各个控件可以直接用鼠标拖到编辑框。第二步绘制控件属性。如设置各个控件的标识(Tag),字体等。第三步各个控件代码的设计。关键是OpeningFcn(初始界面函数)和控件的CallBack(回调函数)代码的设计。初始界面函数即设定各参数的初始值,可根据实际情况设定。回调函数是核心,是对界面控件触发时的事件响应函数。第四步加载算法核心程序到回调函数中,调试并完善,然后运行程序。本章简单的介绍用MATLABGUI对几种典型的干涉和衍射现象在可见光波段进行仿真,GUI可以通过交互式动态模拟仿真,展现出各物理参量对干涉和衍射结果的影响,有利于学生对干涉和衍射现象的进一步了解。4.1等倾干涉在第二章的2.3中已经介绍了等倾干涉,可知等倾干涉的光强分布可表示为:,式中的d(mm)表示薄膜厚度,f(mm)为透视焦距,,是入射光的波长。如下是GUI对等倾干涉的动态模拟仿真。首先构思其草图形成框架,在布局编辑器中布置控件,使用几何位置排列工具对控件的位置进行调整。(1)建立一个坐标轴对象(Axes),用来显示仿真结果;(2)建立俩个按钮(PushButton),分别绘制等倾干涉(light)和结束程序(close);(3)建立俩个可编辑文本框(EditText),用来输入波长lambda、薄膜厚度d的值;(4)建立四个静态文标签(StaticText),用来输入波长、厚度及各自单位。界面设计如图4.1所示,保存图片为dengqingganshe.fig。图4.1其次,设置控件的String和Tag属性。控件的标识Tag是对个控件的识别,每个控件创建时都会自动的生成一个标识,在设计程序过程中,我们为了方便记忆、编辑和维护,重新设置各个控件的标识。设置第一个按钮的Tag标识为light_pushbutton,用来绘制等倾干涉的仿真。设置第二个按钮的Tag标识为close_pushbutton,用来结束程序。设置第一个编辑文本框Tag标识为lambda_edit,用来输入波长lambda大小。设置第二个编辑文本框Tag标识为d_edit,用来输入薄膜厚度d。添加菜单(MenuEditor),用来绘制等倾干涉图像和关闭程序,如图4.2所示。图4.2建立一级菜单file,在其下设置俩个子菜单light和close,菜单项light的Tag标识设置成light_menu,菜单项close的Tag标识设置成close_menu.编写绘制等倾干涉的代码,打开dengqingganshe.m文件按Editor,系统会自动生成M文件程序代码。在程序初始化的时候设置波长lambda,薄膜厚度d的默认值,代码如下:functiondengqingganshen_OpeningFcn(hObject,eventdata,handles,varargin)set(handles.lambda_edit,'string',0.0005);%设置波长的默认值set(handles.d_edit,'string',0.5);%设置厚度的默认值handles.output=hObject;%选择默认的命令行输出调用light_pushbutton_callback函数,绘制等倾干涉仿真图,代码如下:functionlight_pushbutton_Callback(hObject,eventdata,handles)Lambda=str2num(get(handles.lambda_edit,'string'));%获得波长d=str2num(get(handles.d_edit,'string'));%获得厚度xmax=1.0;ymax=1.0;%x,y的范围n=1.5;%折射率f=50;%透镜焦距是50mmN=700;%N是采样点数x=linspace(-xmax,xmax,N);%X方向采样的范围从-ymax到ymax,采样数组命名为xy=linspace(-ymax,ymax,N);%Y方向采样的范围从-ymax到ymax,采样数组命名为yfori=1:N%对屏幕上的全部点进行循环计算,则要进行N*N次计算forj=1:Nr(i,j)=sqrt(x(i)*x(i)+y(j)*y(j));%平面上一点到中心的距离u(i,j)=r(i,j)/f;%角半径t(i,j)=asin(n*sin(atan(u(i,j))));%折射角phi(i,j)=2*n*d*cos(t(i,j))+Lambda/2;%计算光程差B(i,j)=4*cos(pi*phi(i,j)/Lambda).^2;%建立一个二维数组每一个点对应一个光强end%结束循环end%结束循环Nclevels=255;%确定使用的灰度等级为255级Br=B/2.5*Nclevels;%定标:使最大光强(4.0)对应于最大灰度级(白色)axes(handles.axes1)image(x,y,Br);%做出函数Br的图像colormap(gray(Nclevels));%用灰度级颜色图设置色图和明暗按钮close_pushbutton调用close函数关闭图形结束程序,代码如下:functionclose_pushbutton_Callback(hObject,eventdata,handles)close%关闭图形结束菜单项light_menu调用light_pushbutton_callback函数绘制等倾干涉图案,其代码为:functionlight_menu_Callback(hObject,eventdata,handles)light_pushbutton_Callback(hObject,eventdata,handles)菜单项close_menu调用close关闭图形结束程序,代码如下:functionclose_menu_Callback(hObject,eventdata,handles)close%关闭图形结束运行程序后,采用了默认值波长Lambda=500nm,薄膜厚度d=0.5mm,单击按钮“light”可以得到图4.3所示:图4.3图4.3改变入射波长Lambda的值,厚度不变,则分别取波长Lambda=600nm,740nm,运行程序,单击“light”按钮可得图4.4所示:(a)图4.4(b)图4.4(b)通过改变波长输入,就可以得到不同波长的等倾干涉图样仿真图,从图4.3和图4.4我们可以看出,随着参数入射波长的增加,相邻亮条纹的间距变得越来越大,在相同的视野内看到的亮条纹数越来越少。若改变参数薄膜厚度d的值,波长不变,分别取,运行程序,单击“light”按钮,可以得到图4.5所示:(a)(a)图4.5(b)图4.5(b)通过改变参数薄膜厚度d的数值,可以得到不同的厚度的仿真图样,从图4.3和图4.5可以看出:其他条件一定时,薄膜的厚度越厚,相邻亮条纹之间的间距越来越小,条纹越密集,越不能辨认。4.2夫琅禾费单缝衍射在第三章3.1中我们已经知道单缝衍射的光强为:,其中s),f为透视焦距。我们可以根据以上所讲的GUI交互界面的方法来模拟单缝衍射,这样就可以直接改变参数来观察单缝衍射,更加直观的体现其性质。调用light_pushbutton_callback函数,输入以下程序,代码如下:functionlight_pushbutton_Callback(hObject,eventdata,handle)lambda=str2num(get(handles.lambda_edit,'String'));%获取波长b=str2num(get(handles.b_edit,'String'));%获取缝宽f=70;%透视焦距x=linspace(-2,2,1000)%向量fori=1:1000%对屏幕上的全部点进行循环计算,则要进行N*N次计算u=(pi*b/lambda)*((x(i)/sqrt(x(i)^2+f^2)));%中间变量I(i)=(sin(u)/u)^2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论