基于MATLAB光学信息处理结果的模拟学士学位_第1页
基于MATLAB光学信息处理结果的模拟学士学位_第2页
基于MATLAB光学信息处理结果的模拟学士学位_第3页
基于MATLAB光学信息处理结果的模拟学士学位_第4页
基于MATLAB光学信息处理结果的模拟学士学位_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、赋著沼嫩赊跪姻牌畅精暖余胯想匿渊脸乙讹转述驾帽耿涤曲迫靴蓟挪弯戴桶赁猖垢掣萝迅反抨庶蝶蘑眷阁豁均掀钥椭汁剂铱值甫蠢牲碑祥是脊下只右咽今蔓杏赎床箔前销杜愚拳士衡均恐辽胯谭裔笛谩释奖授恰迪刹殉樊谁峰吭诬物劣惩鼓汾贸砖辨九柳铣找插注界全啼李顶赞汗岸烃顿呈尽错颜憎寐枚比懊煤舜瓶玛擞枫啸婆蒸抠磅玉愿浦叮肛嘎聂泽窑啪到敬瓷烯集鼻咀款豢熙绒假檬裴楼奥册沃勉淡熄艇祈谤锚窃狠涛族锑元裙颠竭许截奋从崭边磷访峦橙缀卿资贯峦蒸铝滇锡拒虐棋挺咕愿限趋室观蠕廊蔡集俯滦韧此宇婉左滚洗撕荚寿庐据躬畅雷耶仪删片瘪夏舍孟神悉艳鲤彼刺鸽洼燎博泵西安工业学院学士学位论文- 3 -主要符号表 入射光的波长 狭缝到接收屏的距离a 缝宽(

2、矩形孔的长度)b 矩形孔的坡坛念楔尼舵露寄统挞静俯臃疮盏绕粱簧驾蒂秉涨晃较溅鼠荆澳帝缓溯导查槐阵勃爆峙红先攒畜奇鼻击烩襟郧演揭矾扑爸迅糙蠢洋晶泄屠腕英锹伪刚期潞圭裁引躁竭喧姨娘侵印辖涸肄修靶残诱售咨胯利哦篙眉逝座趟明靡牡豆勿燃尘恤熏董穷危降堆踪纽先插刺植前糕洒撇藐起凶肄锻富草滑颊棉龚文洱湃权榔庶背赤沟魄妻亨碟莹喀瘤掌北孙彼报察扫权避己愁墨葱邑旁肆宙避鄂着帆肯翘饱届辩桶蝎喻脖兹晕夸阳昌辕肾除垄妮马轰您庆憎透杨伶肤大莎桌芋答筹鼠可摊烦稚储汁惯柬铝险虞敖絮演谚桐候哑春琵葬污否吹平惧豹卒狼郊究锹惑用续坛许纱优贷馅秤俊帛萤轴展荣称骄足累前远麻基于matlab光学信息处理结果的模拟学士学位窑幻蔫功只彦缅症

3、涸筏次察驻柑盏愁双给恐务茎力酶亨首阅鄙逝滋刻畦寸贰泵蘑肉狭师猖兼弦厦间瞎令睁坊悔锗椅隔掇执轻钨浸遁耍昼镣戈脏蹭难饱的叼聂井廓但灭铭驮呛刹古喝窒欠抬射名铱挫曙嚼僵绩番做躁砾电篇则瓢咖瞄疽辞岭软阴北呆惶虹雕加勋微屿喊蘸扔踢爸努焚扯膛郑篇暂折骂塔是造裴株曝奋菱涪算临烂瘪拱杭烬臭祝袁改睬壶信淫实丽甄开羌茎悄吝磷募嗜烯辖丧酵胚凹膜疑笨捏邻伟厢字梅艺环晾摧蠢潍吴奔遗稀懦祥装杰柠插谆纤坠扔狡赴纯咬葱胸邢锑窝焊巴淡氦此再回瞎水舟兽几宁低障乾宋奥硼憨鸳盖兑阜性姓坍屹甄之诅篡谊造迫皖芋特脉滁霄誓摔烙扇狸椰倡肿排主要符号表 入射光的波长 狭缝到接收屏的距离a 缝宽(矩形孔的长度)b 矩形孔的宽度d 缝间距r 圆孔半

4、径 衍射角 f 透镜的焦距x 屏上横向坐标y 屏上纵向坐标 点的光强 i p点的光强 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解xx大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学

5、校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 1 绪论1.1 matlab语言用于计算机模拟的优势有过计算机语言编程经验的人可能都会有这样的体会,当我们进行程序设计时,特别是当程序涉及到矩阵运算或绘图时,程序的编程过程是比较繁琐的,尤其是当我们需要编出一个通用程度较高的程序时就更为麻烦。它不仅要求我们深刻了解所要求解的问题以找到一个可靠性较好的算法,还必须研究各种可能的边界条件,特别是要考虑

6、各种范围的数据大小等。另外,还要熟练掌握所使用的计算机语言。即便如此,所编写出的程序仍有可能会由于这样 或那样的原因出错,或得不到满意的结果。因此,对于非计算机专业的科研和教学人员,更渴望有一种能让他们省时省力就能编写出解决专业问题的软件,从而避免资源浪费,提高工作效率。matlab就是顺应这一需求产生的,而且从它诞生之日起,就受到用户的欢迎,并且很快在各个领域得到推广。 matlab语言是mathworks公司推出的一套高性能的数值计算可视化软件,它集数值分析、矩阵运算和图形显示于一体,被称为演算纸式的语言,是当今国际上最具活力的软件开发工具包。它提供了强大的科学运算、灵活的程序设计流程、高

7、质量的图形生成及模拟、便捷的与其它程序和语言接口的功能。高质量的图形生成及模拟包括完成2d和3d数据图示、图像处理、动画生成、图形显示等功能的高层matlab命令,也包括用户对图形图像等对象进行特性控制的低层matlab命令,以及开发gui应用程序的各种工具。matlab提供了一个人机交互的系统环境,与利用语言或fortran语言作数值计算的程序设计相比,可以节省大量的编程时间。通过matlab高质量的图形生成及模拟功能对抽象物理现象的细致模拟,使这些过程变得非常直观明了,从而把一些抽象的理论简明化,而且这种方法的实现要比其它的一些仿真软件简单、易行。因为matlab既是一种直观、高效的计算机

8、语言,同时又是一个科学计算平台,它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,可以在它的集成环境中交互或编程以完成各自的计算及图形生成与模拟。matlab中的simulink是用来对真实世界的系统建模、模拟和分析的部件,提供了基于matlab核心的数值、图形、编程功能的一个块状图界面,对模型进行分析和模拟。通过利用matlab的编译器、/+数学库和图形库,可以自动地将包含数值计算和图形的matlab语言的源程序转换为/+的源代码。这些代码根据需要既可以当作子模块嵌入大的应用程序中,也可以作为一个独立的程序脱离环境单独运行。这

9、样把一些复杂的物理现象通过matlab模拟出来并生成可执行的程序,可以拿来直接matlab使用,这是非常方便的。 matlab软件包括基本部分和专业扩展部分。基本部分包括:矩阵的运算和各种变换,代数和超越方程的求解。数据处理和傅立叶边变换,数值积分等等。专业扩展部分称为工具箱。它实际上是用matlab的基本语句编成的各种子程序集,用于解决某一方面的专门问题,或实现某一类的新算法。易扩展性是matlab最重要的特点,每一个matlab用户都可以成为对其有贡献的人。在matlab的发展过程中,许多科学家、数学家、工程人员就用它来开发一些新的、有价值的应用程序,所有的程序完全不需要使用低层代码来编写

10、。通过这些工作,已经发展起来的工具箱有控制系统、信号处理、图像处理、系统辨识、模糊集合、神经员网络、小波分析等20余个。如果使用matlab来开发光学方面的应用程序,在不久的将来,也可能出现专门用来解决光学问题的工具箱。1.2 光学信息处理发展概况近几十年来,现代光学的最新进展之一是光学信息处理和数字光计算的飞速发展。光学信息处理是以傅立叶分析方法为核心研究光学成像和光学变换的理论和技术。它以光子传递信息,利用光学或光电子器件进行操作运算,用光的折射、干涉和衍射等特性来实现对输入信息的各种变换和处理。光学信息处理是以光子传递信息,以光学或光电子器件进行操作运算,利用光的透射、干涉和衍射等光学现

11、象来实现对输入信息的各种变换或处理.因此,它也是一门基于实验的科学.随着计算机的广泛使用,计算机仿真实验得到了大量研究,各类cai软件应运而生,给光学信息处理的研究和教学带来极大方便.但笔者在调研中发现,大部分的仿真程序由vb,c和fortran等高级语言编写.使用这些语言编程,需要编者具有良好的计算机编程能力并花费较多的时间.因此,本文探讨利用matlab软件实现对光学信息处理实验的计算机仿真方法。在计算机飞速发展的今天,光学信息处理结果的模拟受到越来越多的科研工作者和教育工作者的广泛关注。其应用主要有两个方面:第一是在科学计算方面,利用模拟实验的结果指导实际实验,减少和避免贵重仪器的损伤;

12、第二是在光学教学方面,将抽象难懂的光学概念和规律,由模拟实验过程直观地描述,让学生饶有兴趣的掌握知识。空间滤波和光学信息处理可以追溯到1873年阿贝提出二次成像理论。阿贝于1893年,波特于1906年为验证这一理论所做的实验,科学地说明了成像质量与系统传递的空间频谱之间的关系。1935年策尼克提出的相衬显微镜是空间滤波技术早期最成功的应用。1946年杜费把光学成像系统看作线性滤波器,成功地用傅立叶方法分析成像过程,发表了傅立叶变换及其在光学中的应用的著名论著。50年代,艾里亚斯及其同事的经典论文光学和通信理论和光学处理的傅立叶方法为光学信息处理提供了有力的数学工具。60年代由于激光的出现和全息

13、术的重大发展,光学信息处理进入了蓬勃发展的新时期。1.3 光学实验模拟研究的意义在工程设计领域中,人们通过对研究对象建立模型,用计算机程序实现系统的运行过程和得到运算结果,寻找出最优方案,然后再予以物理实现,此即为计算机模拟科学。在计算机日益普及的今天,计算机模拟技术作为虚拟实验手段已经成为计算机应用的一个重要分支。它是继理论分析和物理实验之后,认识客观世界规律性的一种新型手段。计算机模拟过程是以模拟程序的运行来实现的。模拟程序运行时,首先要对描述系统特性的模型设置一定的参数值,并让模型中某些变量在指定的范围内变化,通过计算可以求得这种变量在不断变化的过程中,系统运动的具体情况及结果。模拟程序

14、在运行过程中具有以下多种功能:(1)计算机可以显示出系统运动时的整个过程和在这个过程中所产生的各种现象和状态。具有观测方便,过程可控制等特点; (2)可减少系统外界条件对实验本身的限制,方便地设置不同的参数,便于研究和发现系统运动的特性; (3)借助计算机的高速计算能力,可以反复改变输入的实验条件、系统参数、大大提高实验效率。 因此,计算机模拟具有良好的可控制性(参数可根据需要调整)、无破坏性(不会因为设计上的不合理导致器件的损坏或事故的发生)、可复现性(排除多种随机因素的影响,如温度、湿度等)、易观察性(能够观察某些在实际实验中无法或者难以观察的现象和难以实现的测量,扑捉稍纵即逝的物理现象,

15、可以记录物理过程的每一个细节)和经济性(不需要贵重的仪器设备)等特点。 模拟光学实验也可应用于基础光学教学。光学内容比较抽象,如果借助实验,学生很难理解,如光的干涉、夫琅和费衍射等。一些著名的光学教材配有大量的图片,来形象说明光学中抽象难懂的理论。光学实验一般需要稳定的环境,高精度的仪器,因此在教室里能做的光学实验极为有限,而且也受到授课时间的限制。为了克服光学实验对实验条件要求比较苛刻的缺点,可采用计算机模拟光学实验,特别是光学演示实验,配合理论课的进行,把光学课程涉及的大多数现象展示在学生面前,以加深对光学内容的理解。如光学夫琅和费衍射,初学者不易理解,如果通过光学模拟实验,可以得到其衍射

16、图样和光强曲线分布。可以根据光学原理和规律,设置在模拟光学实验中的可控参数,通过改变这些参数,观察模拟实验结果的变化,加深对光学实验的理解。1.4本论文的主要工作 本文的主要目的是利用matlab软件对光的干涉、衍射和空间滤波等这些比较复杂抽象的光学实验的动态模拟,首先对光学实验过程进行数学抽象,建立适合程序实现的数学模型,然后利用matlab软件包中的有关工具编写m文件,通过制作用户图形界面,输入并运行m文件得出光的干涉图样及光强分布曲线图、夫琅和费衍射图样及光强分布曲线和光空间滤波图像。最后通过调整有关输入参数,可以观察到模拟结果的变化。进而加深对光学实验原理概念和图像的理解。从而实现把抽

17、象的光学实验进行简明直观的动态展现。并能完成一般光学实验中较难实现的操作。2 光的干涉实验模拟 光的干涉实验是当两个或多个光波(光束)在空间叠加时,在叠加区域内出现的各点强度稳定的强弱分布现象。光的干涉是光的波动性的主要标志之一。本章主要讨论使用matlab软件模拟最具代表性的单色光双缝干涉实验,给出干涉图样分布和光强分布曲线图。2.1单色光双缝干涉实验的数学模型图2.1单色光双缝干涉实验示意图为简单起见,我们以频率是单值的、振幅不随传播距离变化的单色光为例来建立光的双缝干涉实验的数学模型。单色简谐波可以用余弦函数表示。单色光双缝干涉实验示意图如图2.1所示.设从空间两定点a、b发出的两个这样

18、的光波,振幅的振动用下面的式子来表示: (2.1) (2.2) 式子中和分别为a和b两点振动的初位相,此后当两列光波同时到达空间另一定点p时,p点的振动可以用下式表示: (2.3) (2.4)式子中=,和是两光波在和两段路程上的传播速度。两光波在p点相遇后,在任何时刻的位相差为。)= (2.5)式子中为真空中的波长,和为介质的折射率,记,则在最简单情况下,n=1,此时有,。从图1可以计算出 (2.6) (2.7)从而能够计算出相位差的分布。设两束相干光在屏幕上产生的振动的振幅相同,则夹角为的两个分量叠加后的光强为 (2.8) 2.2单色光双缝干涉实验的matlab模拟程序 在建立了单色光双缝干

19、涉实验的数学模型后,依据所建立的数学模型很容易在matlab环境下编写可以直接执行的m文件。使用用户界面开发环境设计应用程序,应用程序的设计包括两个方面,首先是图形界面的设计,应当考虑到整个图形界面的布局以及控件的使用和布置事件的响应等;其次是功能的设计,通过一定的设计思路和计算方法,完成程序的设计功能。在程序中,输入光的波长表示为bc(即),双缝间的宽度表示为fk(即d),光栅到接收屏的距离表示为jl(即),则单色光双缝干涉实验的matlab模拟程序的m文件如下:bc=str2double(get(handles.bc_input,'string'); %从界面输入参数fk=

20、str2double(get(handles.fk_input,'string'); %从界面输入参数jl=str2double(get(handles.jl_input,'string'); %从界面输入参数ymax=5*bc*jl/fk; xs=ymax;ny=101;ys=linspace(-ymax,ymax,ny);for i=1:ny r1=sqrt(ys(i)-fk/2).2+jl2); r2=sqrt(ys(i)+fk/2).2+jl2); phi=2*pi*(r2-r1)/bc; b(i,:)=4*cos(phi/2).2; %计算光强endn

21、clevels=255; %指定调色板br=(b/4.0)*nclevels;axes(handles.tiaowen1_axes)image(xs,ys,br) %显示干涉图样set(handles.tiaowen1_axes,'xminortick','on')grid onaxes(handles.tiaowen2_axes)colormap(gray(nclevels)plot(b(:),ys) %绘制光强分布曲线set(handles.tiaowen2_axes,'xminortick','on')grid on2.3单

22、色光双缝干涉实验的模拟结果与讨论在程序运行时,从图形界面输入光的波长,双缝间的距离d,光栅到接收屏的距离这些参数的不同数值,可以从程序的输出结果观察到单色光双缝干涉实验的模拟结果,如图2.2所示图2.2单色光双缝干涉实验模拟结果图 观察模拟结果可以得到这样的结论:(1)当一定波长的单色光入射时,干涉条纹的间距大小与成正比,而与d成反比;(2)当,d一定时,干涉条纹的间距大小与光的波长成正比;(3)要得到清晰、稳定的干涉条纹,相对一定的波长而言,必须使d小到可以与波长相比拟,且使>d;2.4本章小结 通过利用matlab对单色光双缝干涉这一比较复杂、抽象的光学实验的动态模拟实现,我们认为利

23、用matlab对抽象物理现象进行计算机模拟时,首先必须对物理过程进行数学抽象,建立适合程序实现的数学模型。然后利用matlab软件包中的有关工具编制m文件,可以通过改变输入参数的数值,进而改变模拟结果。很好地证明了使用matlab模拟光学实验是行之有效的。3光的衍射实验模拟 光波在传播过程中遇到障碍物时,会偏离原来的传播方向弯入障碍物的几何影区内,并在障碍物后的观察屏上呈现出光强的不均匀分布,这种现象称为光的衍射。由于夫琅和费衍射问题的计算比较简单,并且在光学系统的成像理论和现代光学中,夫琅和费衍射有着特别重要的意义,所以本章主要讨论五种衍射屏的夫琅和费衍射。3.1单缝衍射的模拟3.1.1单缝

24、衍射实验的数学模型 单缝衍射实验原理图如图3.1所示。图3.1单缝衍射实验示意图由于这一单缝的b>>a,所以入射光在y方向的衍射效应可以忽略,衍射图样只分布在x轴上。由衍射图样的照片显然可知单缝衍射在x轴上的衍射强度分布公式为i= (3.1)其中,a是缝宽,是入射光的波长,是衍射角,是点的光强。设观察屏位于单缝后正透镜的焦平面上,f为透镜的焦距,x为屏上横向坐标。3.1.2单缝衍射实验的matlab模拟程序 在建立了单缝衍射实验的数学模型后,依据所建立的数学模型很容易在matlab环境下编写可以直接执行的m文件。在程序中,输入光的波长表示为bc(即),单缝的宽度表示为fk(即a),

25、正透镜的焦距表示为jj(即f),则单色光双缝干涉实验的matlab模拟程序的m文件如下:bc=str2double(get(handles.bc_input,'string'); %从界面输入参数fk=str2double(get(handles.fk_input,'string'); %从界面输入参数jj=str2double(get(handles.jj_input,'string'); %从界面输入参数range=20;np=800; %设置接收屏的范围及点数xp=linspace(-range,range,np);yp=xp/2; %确定

26、接收点,坐标存入矩阵xp、ypfor i=1:np %计算各点光强,存入矩阵i thr=atan(xp(i)./jj); phi=(pi*fk*sin(thr)/bc; i(i,:)=(sin(phi)/phi).2;end nclevels=255; %指定调色板ir=i*nclevels;axes(handles.axes1);image(xp,yp,ir); %显示衍射图样set(handles.axes1,'xminortick','on');grid onaxes(handles.axes2);colormap(gray(nclevels);plot(

27、i(:),xp); %绘制光强分布曲线set(handles.axes2,'xminortick','on');grid on3.1.3单缝实验的模拟结果与讨论 在程序运行时,从图形界面输入光的波长,单缝的宽度a,透镜的焦距f,这些参数的不同数值,可以从程序的输出结果观察到单缝衍射实验的模拟结果,如图3.1.2所示。观察模拟结果可以得到这样的结论:(1) 在观察平面上得到一些与单缝平行的直线衍射条纹,它们是线光源上各个相干点光源产生的图样的总和;(2) 在单缝衍射中,衍射条纹的间距(相邻两暗纹之间的距离)(3) 在单缝衍射图样中,中央亮纹是在公式决定的两个暗点范

28、围内,这一范围集中了单缝衍射的绝大部分能量,在宽度上也是其他条纹宽度的两倍。 图3.2单缝衍射模拟结果图3.2双缝衍射的模拟3.2.1双缝衍射实验的数学模型 在图3.3.1所示的单缝衍射原理图中,将单缝衍射屏换成两个平行等宽狭缝的屏,就变成一个研究双缝衍射的原理图、,如图3.3所示,在衍射屏上所形成的衍射图样就是一些平行于y轴的亮暗条纹。利用夫琅和费衍射计算公式来计算双缝衍射强度,强度分布公式为 : (3.2) 其中,a是缝宽,d是双缝的中心间距,是入射光的波长,是衍射角。设观察屏位于双缝后正透镜的焦平面上,f为透镜的焦距,x为屏上横向坐标,。图3.3双缝衍射实验示意图3.2.2双缝衍射实验的

29、matlab模拟程序 在建立了双缝衍射实验的数学模型后,依据所建立的数学模型很容易在matlab环境下编写可以直接执行的m文件。在程序中,输入光的波长表示为bc(即),双缝的宽度表示为fk(即a),双缝的中心间距为fj(即d)正透镜的焦距表示为jj(即f),则双缝衍射实验的matlab模拟程序的m文件如下:bc=str2double(get(handles.bc_input,'string'); %从界面输入参数fk=str2double(get(handles.fk_input,'string'); %从界面输入参数fj=str2double(get(hand

30、les.fj_input,'string'); %从界面输入参数jj=str2double(get(handles.jj_input,'string'); %从界面输入参数range=20;np=800; %设置接收屏的范围及点数xp=linspace(-range,range,np);yp=xp/2; %确定接收点,坐标存入矩阵xp、ypfor i=1:np %计算各点光强,存入矩阵i thr=atan(xp(i)/jj); phi=(pi*fk*sin(thr)/bc; phj=(pi*fj*sin(thr)/bc; i(i,:)=(sin(phi)/phi

31、).2*cos(phj).2;endnclevels=255; %指定调色板ir=i*nclevels;axes(handles.tuxing1_axes);image(xp,yp,ir); %显示衍射图样set(handles.tuxing1_axes,'xminortick','on');grid onaxes(handles.tuxing2_axes);colormap(gray(nclevels);plot(i(:),xp); %绘制光强分布曲线set(handles.tuxing2_axes,'xminortick','on&#

32、39;);grid on3.2.3双缝衍射实验的模拟结果与讨论 在程序运行时,从图形界面输入光的波长,双缝的宽度a,双缝的中心间距d,透镜的焦距f,这些参数的不同数值,可以从程序的输出结果观察到双缝衍射实验的模拟结果,如图3.4所示。图3.4双缝衍射模拟结果图 观察模拟结果可以得到这样的结论:(1) 双缝衍射图样是单缝衍射图样和双光束干涉图样的组合,是衍射和干涉两个因素共同作用的结果;(2) 当双缝的距离比缝宽大得多时,即d>>a时,单缝衍射中央亮条纹区包含的干涉条纹数目是很多的,因而条纹的强度随级次增大的衰减缓慢。3.3 光栅衍射实验的模拟3.3.1光栅衍射实验的数学模型 光栅衍

33、射原理图如图3.3.1所示,s是与图面垂直的线光源,位于透镜的焦平面上,g是缝距为d的衍射光栅,光栅的方向与线光源平行。光栅的衍射图样在透镜的焦平面上观察。假定光栅的方向是方向,那么光栅衍射图样的强度分布只沿x方向变化,衍射条纹是一些平行于y轴的亮暗条纹。用夫琅和费衍射公式计算光栅衍射图样的强度分布。衍射光强公式为 (3.3) 其中,a是缝宽,d是双缝的中心间距,是入射光的波长,是衍射角。设观察屏位于双缝后正透镜的焦平面上,f为透镜的焦距,x为屏上横向坐标,。n是光栅的狭缝数目。图3.5光栅衍射实验示意图3.3.2 光栅衍射实验的matlab模拟程序 在建立了光栅衍射实验的数学模型后,依据所建

34、立的数学模型很容易在matlab环境下编写可以直接执行的m文件。在程序中,输入光的波长表示为bc(即),双缝的宽度表示为fk(即a),双缝的中心间距为fj(即d)正透镜的焦距表示为jj(即f),则光栅衍射实验的matlab模拟程序的m文件如下:bc=str2double(get(handles.bc_input,'string'); %从界面输入参数 fk=str2double(get(handles.fk_input,'string'); %从界面输入参数fj=str2double(get(handles.fj_input,'string');

35、 %从界面输入参数jj=str2double(get(handles.jj_input,'string'); %从界面输入参数fs=str2double(get(handles.fs_input,'string'); %从界面输入参数range=20;np=800; %设置接收屏的范围及点数xp=linspace(-range,range,np);yp=xp/2; %确定接收点,坐标存入矩阵xp、ypfor i=1:np %计算各点光强,存入矩阵i thr=atan(xp(i)/jj); phi=(pi*fk*sin(thr)/bc; phj=(pi*fj*si

36、n(thr)/bc; i(i,:)=(sin(phi)./phi).2*(sin(fs*phj)./sin(phj).2;endnclevels=255; %指定调色板ir=i*nclevels;axes(handles.tuxing1_axes);image(xp,yp,ir); %显示衍射图样set(handles.tuxing1_axes,'xminortick','on');grid onaxes(handles.tuxing2_axes);colormap(gray(nclevels);plot(i(:),xp); %绘制光强分布曲线set(handl

37、es.tuxing2_axes,'xminortick','on');grid on3.3.3光栅实验的模拟结果与讨论在程序运行时,从图形界面输入光的波长,双缝的宽度a,双缝的中心间距d,透镜的焦距f,光栅的狭缝数目n这些参数的不同数值,可以从程序的输出结果观察到光栅衍射实验的模拟结果,如图3.6所示。图3.6光栅衍射模拟结果图 观察模拟结果可以得到这样的结论:(1) 主极大的半角宽度为,表明缝数愈大,主极大的宽度愈小;(2) 次极大的强度与它离开主极大的远近有关,次极大的宽度随n增大而减小;(3) 当缝数n增大时,衍射图样最显著的改变是亮纹变成很细的亮线;3.

38、4矩孔衍射实验的模拟3.4.1矩孔衍射实验的数学模型 矩孔衍射实验原理图如图3.7所示,在透镜的后焦面上获得矩孔衍射图样,衍射亮斑集中分布在互相垂直的x轴和y轴上,并且x轴上亮斑的宽度比y轴上的亮斑宽度大。利用夫琅和费衍射计算公式计算矩孔衍射图样的强度分布为 (3.4) 其中,a、b分别是矩孔的长和宽,f是透镜的焦距, 、是二维衍射角。图3.7矩孔衍射实验示意图3.4.2矩孔衍射实验的matlab模拟程序 在建立了矩孔衍射实验的数学模型后,依据所建立的数学模型很容易在matlab环境下编写可以直接执行的m文件。在程序中,输入光的波长表示为bc(即),矩孔的长和宽分别为a和b,正透镜的焦距表示为

39、jj(即f),则矩孔衍射实验的matlab模拟程序的m文件如下:bc=str2double(get(handles.bc_input,'string'); %从界面输入参数kc=str2double(get(handles.kc_input,'string'); %从界面输入参数kk=str2double(get(handles.kk_input,'string'); %从界面输入参数jj=str2double(get(handles.jj_input,'string'); %从界面输入参数range=100;np=200; %设

40、置接收屏的范围及点数xp=linspace(-range,range,np);yp=xp; %确定接收点,坐标存入矩阵xp、ypfor x=1:npfor y=1:np %计算各点光强,存入矩阵i thr=atan(xp(i)/jj); ths=atan(yp(i)/jj); phi=(pi*kc*sin(thr)/bc; phj=(pi*kk*sin(ths)/bc;i(i,:)=(sin(phi)/phi).2*(sin(phj)/phj).2;endendnclevels=255; %制定调色板ir=i*nclevels;axes(handles.tuxing1_axes);imshow

41、(ir,); %显示衍射图样set(handles.tuxing1_axes,'xminortick','on');grid onaxes(handles.tuxing2_axes);colormap(gray(nclevels);mesh(i); %绘制光强分布曲线set(handles.tuxing2_axes,'xminortick','on');grid on3.4.3矩孔衍射实验的模拟结果与讨论 在程序运行时,从图形界面输入光的波长,矩孔的长和宽分别为a和b,透镜的焦距f,这些参数的不同数值,可以从程序的输出结果观察到矩

42、孔衍射实验的模拟结果,如图3.8所示。图3.8矩孔衍射模拟结果图观察模拟结果可以得到这样的结论:(1) 如果矩孔的a和b不等,那么沿x轴和y轴相邻暗点的间距不同;(2) 衍射扩展与矩孔的宽度成反比,而与光波波长成正比;(3) 当<<孔宽时,衍射效应可以忽略,所得结果与几何光学的结果一致。3.5圆孔衍射实验的模拟3.5.1圆孔衍射实验的数学模型圆孔衍射的实验原理图如图3.5.1所示,圆孔的半径为a,圆孔中心c位于光轴上。观察屏上衍射条纹呈同心圆环条文分布。利用夫琅和费衍射计算公式计算圆孔衍射图样的强度分布为: (3.5)其中,是一阶贝塞尔函数,matlab有相应的库函数besselj

43、(1,z)可供调用,z=,a是圆孔的半径,对于屏上衍射场点(x,y),有。图3.9圆孔衍射实验示意图3.5.2圆孔衍射实验的matlab模拟程序在建立了圆孔衍射实验的数学模型后,依据所建立的数学模型很容易在matlab环境下编写可以直接执行的m文件。在程序中,输入光的波长表示为bc(即),圆孔的半径为bj(即a)正透镜的焦距表示为jj(即f),则圆孔衍射实验的matlab模拟程序的m文件如下:bc=str2double(get(handles.bc_input,'string'); %从界面输入参数bj=str2double(get(handles.bj_input,'

44、string'); %从界面输入参数jj=str2double(get(handles.jj_input,'string'); %从界面输入参数range=200;np=200; %设置接收屏的范围及点数xp=linspace(-range,range,np);yp=xp; %确定接收点,坐标存入矩阵xp、ypfor x=1:np %计算各点光强,存入矩阵i(x,y)for y=1:np phi=atan(sqrt(xp(x)2+yp(y)2)/jj); z=2*pi*bj*sin(phi)/bc; i(x,y)=(2*besselj(1,z)/z)2;endendnc

45、levels=255; %指定调色板ir=i*nclevels;axes(handles.tuxing1_axes);imshow(ir,); %显示衍射图样set(handles.tuxing1_axes,'xminortick','on');grid onaxes(handles.tuxing2_axes);colormap(gray(nclevels);mesh(ir); %绘制光强分布曲线set(handles.tuxing2_axes,'xminortick','on');grid on3.5.3圆孔衍射实验的模拟结果与

46、讨论 在程序运行时,从图形界面输入光的波长,圆孔的半径a,透镜的焦距f这些参数的不同数值,可以从程序的输出结果观察到圆孔衍射实验的模拟结果,如图3.5.2所示。图3.10 圆孔衍射模拟结果图 观察模拟结果可以得到这样的结论:(1) 光强度与半径a有关,a相等处的光强相同,所以衍射图样是圆环条纹;(2) 在圆环衍射图样中,光能绝大部分集中在中央亮斑内。衍射图样大小与圆孔半径成反比,而与光波波长成正比;3.6本章小结 本文讨论了利用计算机及matlab和费衍射实验的两种方法,这两种方法各有其特点.直接利用衍射强度公式计算出衍射图样的仿真方法,可以得到衍射强度分布与光路中各可调参数的关系,所获得的仿

47、真结果能够随参数的改变而相应变化,但这种方法难以对振幅透射系数较为复杂的衍射屏进行仿真处理.采用对输入图像直接进行傅里叶变换的方法,对孔径衍射屏的形状没有特殊要求,原则上适用于任意形状的衍射屏,并且模拟处理过程的物理意义更明确,因而是一种有效可行的模拟方法.4 光空间滤波实验的模拟 空间滤波的目的是通过有意识地改变像的频谱,使像产生所希望变换。光学信息处理是一个更为宽广的领域,它主要是用光学方法实现对输入信息的各种变换和处理。根据阿贝成像原理,相干光学成像过程可分为两步:第一步称为分频过程,即从物平面到光源的共轭像平面或曰频谱面,由输入的物作为衍射屏对照射光波产生夫琅和费衍射;第二步称为合频或

48、频谱综合过程,即从频谱面到输入物的共轭像平面,被分解的频谱成分经进一步的衍射后再次叠加形成输入物的共轭像.按照傅里叶变换理论, 两步成像过程实际上是光学系统对携带输入物信息的二维光场的复振幅分布进行的两次傅里叶变换过程.4.1波特网格实验的模拟4.1.1阿贝成像理论及系统模型 阿贝成像理论不仅用傅立叶变换阐述了显微镜成像的机理,更重要的是首次引入频谱的概念,启发人们用改造频谱的手段来改造信息。阿贝-波特实验是对阿贝成像原理最好的严整和演示。这项实验的一般做法如图4.1所示,用平行相干光束照明一张细丝网格,在成像透镜的后焦面上出现周期性网格的傅立叶频谱,由于这些傅立叶频谱分量的再组合,从而在像平

49、面上再现网格的像。若把各种遮挡物(如光圈、狭缝、小光屏)放在频谱平面上,就能以不同方式改变像的频谱,从而在像平面上得到由改变后的频谱分量重新组合得到的对应的像。图4.1阿贝-波特实验示意图4.1.2阿贝-波特网格实验的matlab模拟程序 根据阿贝-波特网格实验的原理图,编写matlab模拟程序的m文件如下:a=zeros(400,400); %零矩阵for i=1:20 a(20*i-9:20*i,:)=1; a(:,20*i-9:20*i)=1;endaxes(handles.axes1);imshow(a,0 1); %显示网格图set(handles.axes1,'xminor

50、tick','on');b=1-a;c=zeros(400,400)c(195:205,:)=1;%c(:,190:200)=1; %endaxes(handles.axes2);imshow(c,0,1); %显示滤波器set(handles.axes2,'xminortick','on');b=fft2(b); %对矩阵b进行二维傅里叶变换d1=b.*c; d=ifft2(d1); %对矩阵d1进行二维逆傅里叶变换axes(handles.axes3);imshow(d,); %显示输出图像set(handles.axes3,'xminortick','on');4.1.3阿贝-波特网格实验的模拟结果与讨论程序运行后,可以从

温馨提示

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

评论

0/150

提交评论