球面波干涉报告书_第1页
球面波干涉报告书_第2页
球面波干涉报告书_第3页
球面波干涉报告书_第4页
球面波干涉报告书_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、0 / 17 文档可自由编辑打印目录1 概述 .12 理论分析 .13 MATLAB 程序的编写 .23.1 点光源为单色光.23.2 点光源为复色光 .54 干涉现象的分析 .84.1 单色光情况下的变化.84.2 复色光情况下的变化.95 心得体会 .96 参考文献 .107 附录程序 .101 / 17 文档可自由编辑打印球面波干涉的计算机模拟1 概述 MATLAB 是矩阵实验室(Matrix Laboratory)的简称,是美国 MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 MATLAB 和 Simu

2、link 两大部分。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如 C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完成相同的事情简捷得多,并且 MATLAB 也吸收了像 Maple 等软件的优点,使 MATLAB 成为一个强大的

3、数学软件。在新的版本中也加入了对 C,FORTRAN,C+,JAVA 的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB 函数库中方便自己以后调用,此外许多的 MATLAB 爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。2 理论分析两列球面光波的干涉是光波干涉的最简单,也是最重要的例子。设在均匀媒质中有两个同频率简谐振动的相干点光源 S1,S2 位于同一平面内,光波叠加后将产生干涉条纹,仿真中,可以在不同的观察平面上观察干涉条纹。如图 1 所示,a 平面与点光源 S1,S2的连线垂直,b 平面与点光源 S1,S2 的连线平行。由此可将两列波干涉按照观察平面选取

4、的不同分成两个方向进行讨论,下面我们只对 a 平面的观察屏进行讨论。2 / 17 文档可自由编辑打印图1 点光源与干涉图位置示意图两个点光源与观察平面垂直时,即在平面 a 处观察干涉条纹。这种情况下,假设两点光源间距为 d,观察平面取样点数为 ny,把直角坐标系的坐标原点取在平面的中心,点光源连线设为 x 轴,平面 a 平行于 y-z 轴,且平面 a 与 y-z 轴距离为 D,则点光源 S1 的位置在(-d/2,0,0) ,点光源 S2 的位置在(d/2,0,0) ,要计算点光源 S1 和点光源 S2 到观察平面任意点 P 处的相位差,然后利用公式 20202201010110expexptL

5、kjdEtLkjdEPI 102002121cos2kPIPIPIPI (2-5)来计算观察平面各个点处的光强分布并显示出来。3 MATLAB 程序的编写3.1 点光源为单色光点光源为单色光时,只需要设置光源振幅 E=1,然后利用如下程序将干涉强度曲线求出来。D=0.05;d=1/100;Lambda=500/1000000000;E=1;ymax=0.00055;ny=161;y=linspace(-ymax,ymax,ny);z=y;3 / 17 文档可自由编辑打印i=(ny-1)/2;for j=1:ny l1=sqrt(y(j)2+(D-d/2)2+z(j)2); l2=sqrt(y(

6、j)2+(D+d/2)2+z(j)2); phi=2*pi*(l2-l1)/Lambda; I(j)=(E/l1)2+(E/l2)2+2*E2/l1/l2*cos(phi);end M=max(I);figure(1);plot(y,I,b);axis(-ymax,ymax,0,M);title(单色光强度曲线);xlabel(x);ylabel(强度);运行此程序,结果如图 2。4 / 17 文档可自由编辑打印图 2 单色光干涉强度曲线图单色光二维干涉条纹用如下程序编写出来:for i=1:nyfor j=1:ny l1=sqrt(y(i)2+(D-d/2)2+z(j)2);l2=sqrt(

7、y(i)2+(D+d/2)2+z(j)2);phi=2*pi*(l2-l1)/Lambda;I(i,j)=(E/l1)2+(E/l2)2+2*E2/l1/l2*cos(phi);endendnclevels=255;br=I.*255/max(max(I);figure(2);image(y,z,br);xlabel(y(m);ylabel(z(m);title(单色光二维干涉条纹);axis(-ymax,ymax,-ymax,ymax);colormap(pink(nclevels);运行上述程序,结果如图 3。5 / 17 文档可自由编辑打印图 3 单色光二维干涉条纹图3.2 点光源为复色

8、光点光源为复色光时,其与单色光干涉的唯一区别也就是光源的波长不再是单一的而是有一定的带宽,因此,仿真模拟时,可以先定义一个中心波长,然后以此按一定比例展开,形成有一定带宽的波带,这个比例可以表示为 width.此时,这个波带中的波长就可以表示为:NI=11; %确定从波带中选择的波长个数。dL=linspace(-width,width,NI);%用数组来确存储这个比例宽度内的比例值。Lambda1=Lambda*(1+dL); %根据这些比例值来选择波带内的波长。然后再把这个波带每一波长光在任意一点的干涉光强累加起来,就为该点的光强值。然而,这只是实现了复色光干涉时光强在观察屏上的简单叠加,

9、由于在 MATLAB 中其颜色显示与波长没有简单的对应关系,实现其对应的彩色显示非常复杂,而本实验主要研究的是干涉中的光强变化,因此就没过多地追求其颜色变化。复色光干涉强度曲线程序:6 / 17 文档可自由编辑打印for j=1:ny l1=sqrt(y(j)2+(D-d/2)2+z(j)2); l2=sqrt(y(j)2+(D+d/2)2+z(j)2); NI=11; dL=linspace(-width,width,NI); Lambda1=Lambda*(1+dL); phi=2*pi*(l2-l1)./Lambda1; g(j)=sum(E/l1)2+(E/l2)2+2*E2/l1/l

10、2.*cos(phi)/NI;endM=max(g);figure(4);plot(y,g,b);axis(-ymax,ymax,0,M);title(复色光强度曲线);xlabel(x);ylabel(强度);运行此程序,结果如图 4。7 / 17 文档可自由编辑打印图 4 复色光强度曲线图复色光二维干涉条纹用如下程序编写出来:for i=1:nyfor j=1:ny l1=sqrt(y(i)2+(D-d/2)2+z(j)2); l2=sqrt(y(i)2+(D+d/2)2+z(j)2); NI=11; dL=linspace(-width,width,NI); Lambda1=Lambda

11、*(1+dL); phi=2*pi*(l2-l1)./Lambda1; c(i,j)=sum(E/l1)2+(E/l2)2+2*E2/l1/l2.*cos(phi)/NI;endendnclevels=255;br=c.*255/max(max(c);8 / 17 文档可自由编辑打印figure(3);image(y,z,br);xlabel(y(m);ylabel(z(m);title(复色光二维干涉条纹);axis(-ymax,ymax,-ymax,ymax);colormap(pink(nclevels);运行此程序,结果如图 5。图 5 复色光干涉条纹图4 干涉现象的分析4.1 单色光

12、情况下的变化由实验程序图分析得出,在 a 观察平面处,光强分布是一组位于 S1S2 连线上的同心圆环状条纹。且当观察屏距原点距离 D 愈大,条纹越稀疏;当屏距 D 确定时,观察屏上条纹是一组内疏外密的同心圆环条纹。这与理论研究时完全一致的。9 / 17 文档可自由编辑打印4.2 复色光情况下的变化由实验程序图分析得出,随着光程差的增大,因波长不同,各单色条纹图样之间的相对位移不断增大,它们按照强度叠加的结果,使合成的干涉条纹的对比度下降。从而使得干涉强度峰值逐步减小。5 心得体会通过上述讨论分析可知 ,利用MATLAB 软件对平面光栅衍射实验进行仿真模拟 , 不受实验仪器和场所的限制 , 为大

13、学物理的理论分析和实验仿真教学提供了教改的平台。在光学教学中 , 可以通过改变实验参数就能得到不同实验条件下的衍射强度分布和衍射谱线 ;对于帮助学生理解光学原理具有积极的作用 , 进一步提高大学物理教学现代化的水平 ; 同时:对衍射光栅作为各种光谱仪器的核心元件的制作和研究具有一定的指导意义 。结合前面工作的经验与总结,可以进一步开展以下几方面的工作。1) 应用仿真手段分析光偏振现象的方法。光偏振是波动光学的主要内容之一,对其进行仿真分析是完善光学实验仿真软件的必须工作。另外这方面工作的仿真有助于分析光在晶体中的传播,对光波导的制作等问题进行实验指导。2) 考虑到 MATLAB 在编程效率、可

14、读性、可移植性和可扩充性上的优点,可以利用 MATLAB 设计一功能强大、性能稳定的高质量程序界面,在该界面下,MATLAB 函数可以不受其他条件(动态链接库)的限制,仿真软件也可实现更多的功能,如三维图像的旋转,图像的动画播放等。3) 由于 MATLAB 使用行解释方式执行代码,这样大大限制了代码执行速度。可考虑利用 MATLAB 与其他高几语言的接口程序,把 MATLAB 的强大功能融入各种应用程序中,从而大大提高程序的执行速度。6 参考文献1 谢敬辉,赵达尊,阎吉祥物理光学教程M北京:北京理工大学出版社,20052 Max Born,Emil WolfPrinciples of Opti

15、cs(7th edition)MCombridge University Press,19993 钟锡华现代光学基础M北京:北京大学出版社,200810 / 17 文档可自由编辑打印4 母国光,战元令光学M北京:人民教育出版社,20085 叶玉堂,饶建珍,肖峻光学教程M北京:清华大学出版社,20056 曲伟娟基于 Matlab 的光学实验仿真J西安:西北工业大学学报,20047 符运良MATLAB 在光学教学中的应用J海口:华南热带农业大学学报,20047 附录程序gui_Singleton = 1;gui_State = struct(gui_Name, m, .gui_Singleton,

16、 gui_Singleton, .gui_OpeningFcn, untitled_OpeningFcn, .gui_OutputFcn, untitled_OutputFcn, .gui_LayoutFcn, , .gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State,

17、 varargin:);end% End initialization code - DO NOT EDIT% - Executes just before untitled is made visible.function untitled_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.11 / 17 文档可自由编辑打印% hObject handle to figure% eventdata reserved - to be defined

18、 in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to untitled (see VARARGIN)% Choose default command line output for untitledhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes untitled

19、wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = untitled_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata r

20、eserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)D

21、=str2double(get(handles.edit_D,string);12 / 17 文档可自由编辑打印d=str2double(get(handles.edit_d,string)/100;Lambda=str2double(get(handles.edit_Lambda,string)/1000000000;E=1;ymax=0.00055;ny=161;y=linspace(-ymax,ymax,ny);z=y;i=(ny-1)/2;for i=1:nyfor j=1:ny l1=sqrt(y(i)2+(D-d/2)2+z(j)2);l2=sqrt(y(i)2+(D+d/2)2+

22、z(j)2);phi=2*pi*(l2-l1)/Lambda;I(i,j)=(E/l1)2+(E/l2)2+2*E2/l1/l2*cos(phi);endendnclevels=255;br=I.*255/max(max(I);figure(2);image(y,z,br);xlabel(y(m);ylabel(z(m);title(单色光二维干涉条纹);axis(-ymax,ymax,-ymax,ymax);colormap(pink(nclevels);% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to b

23、e defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)13 / 17 文档可自由编辑打印% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)D=str2double(get(handles.edit_D,string);d=str2double(get(handles.edit_d,string)/10

24、0;Lambda=str2double(get(handles.edit_Lambda,string)/1000000000;E=1;ymax=0.00055;ny=161;y=linspace(-ymax,ymax,ny);z=y;i=(ny-1)/2;for j=1:ny l1=sqrt(y(j)2+(D-d/2)2+z(j)2); l2=sqrt(y(j)2+(D+d/2)2+z(j)2); phi=2*pi*(l2-l1)/Lambda; I(j)=(E/l1)2+(E/l2)2+2*E2/l1/l2*cos(phi);end M=max(I);figure(1);plot(y,I,b

25、);axis(-ymax,ymax,0,M);title(单色光强度曲线);xlabel(x);ylabel(强度);% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)14 / 17 文档可自由编辑打印% - Executes on button press in pushbutton4.function pus

26、hbutton4_Callback(hObject, eventdata, handles)D=str2double(get(handles.edit_D,string);d=str2double(get(handles.edit_d,string)/100;Lambda=str2double(get(handles.edit_Lambda,string)/1000000000;width=str2double(get(handles.edit_width,string)/100;x=str2double(get(handles.edit_x,string)/1000;k1=2*pi/(Lam

27、bda*(1+width/100);k2=2*pi/(Lambda*(1-width/100);dk=k2-k1;delta=d*x/D;Pa=dk*delta/2;E=1;ymax=0.0007;ny=161;y=linspace(-ymax,ymax,ny);z=y;for j=1:ny l1=sqrt(y(j)2+(D-d/2)2+z(j)2); l2=sqrt(y(j)2+(D+d/2)2+z(j)2); NI=11; dL=linspace(-width,width,NI); Lambda1=Lambda*(1+dL); phi=2*pi*(l2-l1)./Lambda1; g(j)=sum(E/l1)2+(E/l2)2+2*E2/l1/l2.*cos(phi)/NI;end15 / 17 文档可自由编辑打印M=max(g);figure(4);plot(y,g,b);axis(-ymax,ymax,0,M);title(复色光强度曲线);xlabel(x);ylabel(强度);% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles struct

温馨提示

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

评论

0/150

提交评论