基于MATLAB光学信息处理结果的模拟

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

西安工业学院学士学位论文-1-主要符号表入射光的波长0r狭缝到接收屏的距离a缝宽(矩形孔的长度)b矩形孔的宽度d缝间距r圆孔半径衍射角f透镜的焦距x屏上横向坐标y屏上纵向坐标0I0P点的光强IP点的光强西安工业学院学士学位论文-2-1绪论1.1MATLAB语言用于计算机模拟的优势有过计算机语言编程经验的人可能都会有这样的体会,当我们进行程序设计时,特别是当程序涉及到矩阵运算或绘图时,程序的编程过程是比较繁琐的,尤其是当我们需要编出一个通用程度较高的程序时就更为麻烦。它不仅要求我们深刻了解所要求解的问题以找到一个可靠性较好的算法,还必须研究各种可能的边界条件,特别是要考虑各种范围的数据大小等。另外,还要熟练掌握所使用的计算机语言。即便如此,所编写出的程序仍有可能会由于这样或那样的原因出错,或得不到满意的结果。因此,对于非计算机专业的科研和教学人员,更渴望有一种能让他们省时省力就能编写出解决专业问题的软件,从而避免资源浪费,提高工作效率。MATLAB就是顺应这一需求产生的,而且从它诞生之日起,就受到用户的欢迎,并且很快在各个领域得到推广。MATLAB语言是Mathworks公司推出的一套高性能的数值计算可视化软件,它集数值分析、矩阵运算和图形显示于一体,被称为演算纸式的语言,是当今国际上最具活力的软件开发工具包。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形生成及模拟、便捷的与其它程序和语言接口的功能。高质量的图形生成及模拟包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。MATLAB提供了一个人机交互的系统环境,与利用C语言或FORTRAN语言作数值计算的程序设计相比,可以节省大量的编程时间。通过MATLAB高质量的图形生成及模拟功能对抽象物理现象的细致模拟,使这些过程变得非常直观明了,从而把一些抽象的理论简明化,而且这种方法的实现要比其它的一些仿真软件简单、易行。因为MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台,它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,可以在它的集成环境中交互或编程以完成各自的计算及图形生成与模拟。MATLAB中的Simulink是用来对真实世界的系统建模、模拟和分析的部件,提供了基于MATLAB核心的数值、图形、编程功能的一个块状图界面,对模型进行分析和模拟。通过利用MATLAB的编译器、C/C++数学库和图形库,可以自动地将包含数值计算和图形的MATLAB语言的源程序转换为C/C++的源代码。这些代码根据需要既可以当作子模块嵌入大的应用程序中,也可以作为一个独立的程序脱离环境单独运行。这样把一些复杂的物理现象通过MATLAB模拟出来并生成可执行的程序,可以拿来直接MATLAB使用,这是非常方便的。MATLAB软件包括基本部分和专业扩展部分。基本部分包括:矩阵的运算和各种变换,代数和超越方程的求解。数据处理和傅立叶边变换,数值积分等等。专业扩展部分称为工具箱。它实际上是用MATLAB的基本语句编成的各种子程序集,用于解决某一方面的专门问题,或实现某一类的新算法。易扩展性是MATLAB最重要的特点,每一个MATLAB用户都可以成为对其有贡献的人。在MATLAB的发展过程中,许多科学家、数学家、工程人员就用它来开发一些新的、有价值的应用程序,所有的程序完全不需要使用低层代码来编写。通过这些工作,已经发展西安工业学院学士学位论文-3-起来的工具箱有控制系统、信号处理、图像处理、系统辨识、模糊集合、神经员网络、小波分析等20余个。如果使用MATLAB来开发光学方面的应用程序,在不久的将来,也可能出现专门用来解决光学问题的工具箱。1.2光学信息处理发展概况近几十年来,现代光学的最新进展之一是光学信息处理和数字光计算的飞速发展。光学信息处理是以傅立叶分析方法为核心研究光学成像和光学变换的理论和技术。它以光子传递信息,利用光学或光电子器件进行操作运算,用光的折射、干涉和衍射等特性来实现对输入信息的各种变换和处理。光学信息处理是以光子传递信息,以光学或光电子器件进行操作运算,利用光的透射、干涉和衍射等光学现象来实现对输入信息的各种变换或处理.因此,它也是一门基于实验的科学.随着计算机的广泛使用,计算机仿真实验得到了大量研究,各类CAI软件应运而生,给光学信息处理的研究和教学带来极大方便.但笔者在调研中发现,大部分的仿真程序由VB,C和Fortran等高级语言编写.使用这些语言编程,需要编者具有良好的计算机编程能力并花费较多的时间.因此,本文探讨利用Matlab软件实现对光学信息处理实验的计算机仿真方法。在计算机飞速发展的今天,光学信息处理结果的模拟受到越来越多的科研工作者和教育工作者的广泛关注。其应用主要有两个方面:第一是在科学计算方面,利用模拟实验的结果指导实际实验,减少和避免贵重仪器的损伤;第二是在光学教学方面,将抽象难懂的光学概念和规律,由模拟实验过程直观地描述,让学生饶有兴趣的掌握知识。空间滤波和光学信息处理可以追溯到1873年阿贝提出二次成像理论。阿贝于1893年,波特于1906年为验证这一理论所做的实验,科学地说明了成像质量与系统传递的空间频谱之间的关系。1935年策尼克提出的相衬显微镜是空间滤波技术早期最成功的应用。1946年杜费把光学成像系统看作线性滤波器,成功地用傅立叶方法分析成像过程,发表了《傅立叶变换及其在光学中的应用》的著名论著。50年代,艾里亚斯及其同事的经典论文《光学和通信理论》和《光学处理的傅立叶方法》为光学信息处理提供了有力的数学工具。60年代由于激光的出现和全息术的重大发展,光学信息处理进入了蓬勃发展的新时期。1.3光学实验模拟研究的意义在工程设计领域中,人们通过对研究对象建立模型,用计算机程序实现系统的运行过程和得到运算结果,寻找出最优方案,然后再予以物理实现,此即为计算机模拟科学。在计算机日益普及的今天,计算机模拟技术作为虚拟实验手段已经成为计算机应用的一个重要分支。它是继理论分析和物理实验之后,认识客观世界规律性的一种新型手段。计算机模拟过程是以模拟程序的运行来实现的。模拟程序运行时,首先要对描述系统特性的模型设置一定的参数值,并让模型中某些变量在指定的范围内变化,通过计算可以求得这种变量在不断变化的过程中,系统运动的具体情况及结果。模拟程序在运行过程中具有以下多种功能:(1)计算机可以显示出系统运动时的整个过程和在这个过程中所产生的各种现象和状态。具有观测方便,过程可控制等特点;(2)可减少系统外界条件对实验本身的限制,方便地设置不同的参数,便于研究和发现系统运动的特性;(3)借助计算机的高速计算能力,可以反复改变输入的实验条件、系统参数、西安工业学院学士学位论文-4-大大提高实验效率。因此,计算机模拟具有良好的可控制性(参数可根据需要调整)、无破坏性(不会因为设计上的不合理导致器件的损坏或事故的发生)、可复现性(排除多种随机因素的影响,如温度、湿度等)、易观察性(能够观察某些在实际实验中无法或者难以观察的现象和难以实现的测量,扑捉稍纵即逝的物理现象,可以记录物理过程的每一个细节)和经济性(不需要贵重的仪器设备)等特点。模拟光学实验也可应用于基础光学教学。光学内容比较抽象,如果借助实验,学生很难理解,如光的干涉、夫琅和费衍射等。一些著名的光学教材配有大量的图片,来形象说明光学中抽象难懂的理论。光学实验一般需要稳定的环境,高精度的仪器,因此在教室里能做的光学实验极为有限,而且也受到授课时间的限制。为了克服光学实验对实验条件要求比较苛刻的缺点,可采用计算机模拟光学实验,特别是光学演示实验,配合理论课的进行,把光学课程涉及的大多数现象展示在学生面前,以加深对光学内容的理解。如光学夫琅和费衍射,初学者不易理解,如果通过光学模拟实验,可以得到其衍射图样和光强曲线分布。可以根据光学原理和规律,设置在模拟光学实验中的可控参数,通过改变这些参数,观察模拟实验结果的变化,加深对光学实验的理解。1.4本论文的主要工作本文的主要目的是利用MATLAB软件对光的干涉、衍射和空间滤波等这些比较复杂抽象的光学实验的动态模拟,首先对光学实验过程进行数学抽象,建立适合程序实现的数学模型,然后利用MATLAB软件包中的有关工具编写m文件,通过制作用户图形界面,输入并运行m文件得出光的干涉图样及光强分布曲线图、夫琅和费衍射图样及光强分布曲线和光空间滤波图像。最后通过调整有关输入参数,可以观察到模拟结果的变化。进而加深对光学实验原理概念和图像的理解。从而实现把抽象的光学实验进行简明直观的动态展现。并能完成一般光学实验中较难实现的操作。2光的干涉实验模拟光的干涉实验是当两个或多个光波(光束)在空间叠加时,在叠加区域内出现的各点强度稳定的强弱分布现象。光的干涉是光的波动性的主要标志之一。本章主要讨论使用MATLAB软件模拟最具代表性的单色光双缝干涉实验,给出干涉图样分布和光强分布曲线图。2.1单色光双缝干涉实验的数学模型图2.1单色光双缝干涉实验示意图西安工业学院学士学位论文-5-为简单起见,我们以频率是单值的、振幅不随传播距离变化的单色光为例来建立光的双缝干涉实验的数学模型。单色简谐波可以用余弦函数表示。单色光双缝干涉实验示意图如图2.1所示.设从空间两定点A、B发出的两个这样的光波,振幅的振动用下面的式子来表示:010101cos()At(2.1)020202cos()At(2.2)式子中01和02分别为A和B两点振动的初位相,此后当两列光波同时到达空间另一定点p时,p点的振动可以用下式表示:11111cos[(/)]Atrv(2.3)22222cos[(/)]Atrv(2.4)式子中1r=1sp,22rsp,1v和2v是两光波在1r和2r两段路程上的传播速度。两光波在p点相遇后,在任何时刻的位相差为3P。22110102(//)(rvrv)=221101022/()()nrnr(2.5)式子中为真空中的波长,1n和2n为介质的折射率,记2211()nrnr,则在最简单情况下0102,n=1,此时有(2/),21(2/)()rr。从图1可以计算出221/210[()]2dryr(2.6)221/220[()]2dryr(2.7)从而能够计算出相位差的分布。设两束相干光在屏幕上产生的振动的振幅相同,则夹角为的两个分量叠加后的光强为204cos(/2)II(2.8)2.2单色光双缝干涉实验的MATLAB模拟程序在建立了单色光双缝干涉实验的数学模型后,依据所建立的数学模型很容易在MATLAB环境下编写可以直接执行的m文件。使用用户界面开发环境设计应用程序,应用程序的设计包括两个方面,首先是图形界面的设计,应当考虑到整个图形界面的布局以及控件的使用和布置事件的响应等;其次是功能的设计,通过一定的设计思路和计算方法,完成程序的设计功能。在程序中,输入光的波长表示为bc(即),双缝间的宽度表示为fk(即d),光栅到接收屏的距离表示为jl(即西安工业学院学士学位论文-6-0r),则单色光双缝干涉实验的MATLAB模拟程序的m文件如下:bc=str2double(get(handles.bc_input,'String'));%从界面输入参数fk=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);fori=1:Nyr1=sqrt((ys(i)-fk/2).^2+jl^2

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功