球面波干涉报告书

上传人:wu****ei 文档编号:157482326 上传时间:2022-09-29 格式:DOC 页数:17 大小:227.52KB
返回 下载 相关 举报
球面波干涉报告书_第1页
第1页 / 共17页
球面波干涉报告书_第2页
第2页 / 共17页
球面波干涉报告书_第3页
第3页 / 共17页
点击查看更多>>
资源描述
目录1 概述12 理论分析13 MATLAB程序的编写23.1 点光源为单色光23.2 点光源为复色光54 干涉现象的分析84.1 单色光情况下的变化84.2 复色光情况下的变化95 心得体会96 参考文献107 附录程序10球面波干涉的计算机模拟1 概述 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。2 理论分析两列球面光波的干涉是光波干涉的最简单,也是最重要的例子。设在均匀媒质中有两个同频率简谐振动的相干点光源S1,S2位于同一平面内,光波叠加后将产生干涉条纹,仿真中,可以在不同的观察平面上观察干涉条纹。如图1所示,a平面与点光源S1,S2的连线垂直,b平面与点光源S1,S2的连线平行。由此可将两列波干涉按照观察平面选取的不同分成两个方向进行讨论,下面我们只对a平面的观察屏进行讨论。图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处的相位差,然后利用公式 (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;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);axis(-ymax,ymax,0,M);title(单色光强度曲线);xlabel(x);ylabel(强度);运行此程序,结果如图2。图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+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。图3 单色光二维干涉条纹图3.2 点光源为复色光点光源为复色光时,其与单色光干涉的唯一区别也就是光源的波长不再是单一的而是有一定的带宽,因此,仿真模拟时,可以先定义一个中心波长,然后以此按一定比例展开,形成有一定带宽的波带,这个比例可以表示为width.此时,这个波带中的波长就可以表示为:NI=11; %确定从波带中选择的波长个数。dL=linspace(-width,width,NI);%用数组来确存储这个比例宽度内的比例值。Lambda1=Lambda*(1+dL); %根据这些比例值来选择波带内的波长。然后再把这个波带每一波长光在任意一点的干涉光强累加起来,就为该点的光强值。然而,这只是实现了复色光干涉时光强在观察屏上的简单叠加,由于在MATLAB中其颜色显示与波长没有简单的对应关系,实现其对应的彩色显示非常复杂,而本实验主要研究的是干涉中的光强变化,因此就没过多地追求其颜色变化。复色光干涉强度曲线程序: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;endM=max(g);figure(4);plot(y,g,b);axis(-ymax,ymax,0,M);title(复色光强度曲线);xlabel(x);ylabel(强度);运行此程序,结果如图4。图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*(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);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 单色光情况下的变化由实验程序图分析得出,在a观察平面处,光强分布是一组位于S1S2连线上的同心圆环状条纹。且当观察屏距原点距离D愈大,条纹越稀疏;当屏距D确定时,观察屏上条纹是一组内疏外密的同心圆环条纹。这与理论研究时完全一致的。4.2 复色光情况下的变化由实验程序图分析得出,随着光程差的增大,因波长不同,各单色条纹图样之间的相对位移不断增大,它们按照强度叠加的结果,使合成的干涉条纹的对比度下降。从而使得干涉强度峰值逐步减小。5 心得体会通过上述讨论分析可知,利用MATLAB 软件对平面光栅衍射实验进行仿真模拟, 不受实验仪器和场所的限制, 为大学物理的理论分析和实验仿真教学提供了教改的平台。在光学教学中, 可以通过改变实验参数就能得到不同实验条件下的衍射强度分布和衍射谱线;对于帮助学生理解光学原理具有积极的作用, 进一步提高大学物理教学现代化的水平; 同时:对衍射光栅作为各种光谱仪器的核心元件的制作和研究具有一定的指导意义。结合前面工作的经验与总结,可以进一步开展以下几方面的工作。1) 应用仿真手段分析光偏振现象的方法。光偏振是波动光学的主要内容之一,对其进行仿真分析是完善光学实验仿真软件的必须工作。另外这方面工作的仿真有助于分析光在晶体中的传播,对光波导的制作等问题进行实验指导。2) 考虑到MATLAB在编程效率、可读性、可移植性和可扩充性上的优点,可以利用MATLAB设计一功能强大、性能稳定的高质量程序界面,在该界面下,MATLAB函数可以不受其他条件(动态链接库)的限制,仿真软件也可实现更多的功能,如三维图像的旋转,图像的动画播放等。3) 由于MATLAB使用行解释方式执行代码,这样大大限制了代码执行速度。可考虑利用MATLAB与其他高几语言的接口程序,把MATLAB的强大功能融入各种应用程序中,从而大大提高程序的执行速度。6 参考文献1 谢敬辉,赵达尊,阎吉祥物理光学教程M北京:北京理工大学出版社,20052 Max Born,Emil WolfPrinciples of Optics(7th edition)MCombridge University Press,19993 钟锡华现代光学基础M北京:北京大学出版社,20084 母国光,战元令光学M北京:人民教育出版社,20085 叶玉堂,饶建珍,肖峻光学教程M北京:清华大学出版社,20056 曲伟娟基于Matlab的光学实验仿真J西安:西北工业大学学报,20047 符运良MATLAB在光学教学中的应用J海口:华南热带农业大学学报,20047 附录程序gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, .gui_Singleton, 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, 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.% hObject handle to figure% eventdata reserved - to be defined 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 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 reserved - 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=str2double(get(handles.edit_D,string);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+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 be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% - 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)/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 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);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)% - Executes on button press in pushbutton4.function pushbutton4_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/(Lambda*(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;endM=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 structure with handles and user data (see GUIDATA)% - Executes on button press in pushbutton5.function pushbutton5_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/(Lambda*(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 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*(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);figure(3);image(y,z,br);xlabel(y(m);ylabel(z(m);title(复色光二维干涉条纹);axis(-ymax,ymax,-ymax,ymax);colormap(pink(nclevels);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!