欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 毕业论文 > 计算机毕业论文

用MatlabGUI模拟圆环和矩形环夫琅禾费衍射

时间:2013-03-20  作者:李继军,徐大海,田永红

论文导读::为动态反映圆环和矩形环夫琅禾费衍射光强随波长、衍射屏的几何特征等重要参数的变化,利用Matalab 图形用户界面的设计和开发功能,结合真实的可见光谱,制作了圆环和矩形环夫琅禾费衍射的交互式图形仿真界面。仿真结果图形细致逼真,使该过程的物理规律直观形象,有助于学生理解衍射过程中的物理规律。
论文关键词:物理光学,Matlab,仿真,夫琅禾费衍射
 

衍射是光学教学中一个非常有趣和令人激动的内容。在当前的教学中,教师在黑板上推导出光强度公式后,根据该公式在黑板上画出光强分布曲线,或利用PPT将预先准备好的光强分布图片投影在屏幕上。经验表明并不是所有的学生都能通过这种静态的结果去理解衍射的中的物理规律。随着计算机性能的提高及模拟仿真技术的发展,在课堂上利用计算机软件对光学过程进行仿真已经成为一种可能。

MATLAB软件是当今最优秀的科技应用软件和开发环境之一[1],它以强大的科学计算与可视化功能,简单易用、可开放式、可扩展环境等特点在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。在众多的使用matlab软件模拟光学现象的文章中[ 2 - 5 ],作者只是对单一波长进行模拟,模拟结果为该波长下光强分布的灰度图,无法体现可见光波段波长连续变化时的光学现象。此外没有使用Matlab图形用户界面( Graphical User Interfaces,GUI),无法实现交互式模拟。

Matlab本文利用可见光的光谱图,采用MatlabGUI对圆环和矩形环的夫琅禾费衍射在可见光波段进行仿真职称论文,仿真结果与实验结果一致。GUI中采用交互式滚动条动态的展现各物理量对衍射结果的影响,有利于加深学生对物理规律的理解和认识。

1 圆环衍射的光强公式

如图1所示,衍射屏上有一个内外半径分别为的圆环区域,设该衍射屏的透射率为

Matlab

本文利用单位振幅的平面波入射到衍射屏上,根据标量衍射理论[6],圆环在观察平面上的夫琅禾费衍射光强分布为:

Matlab

式中是入射光波长,是观察平面与衍射屏的距离。根据远场近似的要求,本文中z取50米,观察区域是一个0.2米×0.2米的正方形。是观察平面上观察点到该平面原点的距离,表示一阶贝塞尔函数。

2 矩形环衍射的光强公式

如图2所示,衍射屏上有一个内外边长分别为d和D的矩形环区域,该衍射屏的透射率为

当单位振幅的平面波透射过该衍射屏,在远离该屏的观察平面上产生的夫琅禾费衍射光强分布为:

式中x,y是观察点在观察面中的坐标。

3 Matlab GUI 模拟

3.1 界面的设计

本程序将实现两个不同衍射屏下的仿真,为了编程的方便和界面的简洁,我们使用了matlab的容器控件—面板(Panel),加上初始界面,总共使用了3个面板。当其中一个界面出现时职称论文,另外两个界面是隐藏的。图3所示为程序执行后的初始界面。为实现仿真对象的转换,在界面中使用了2个按钮(PushButton),“Circle with Obsuration”实现圆环的仿真,“Rectangle with Obsuration”实现矩形环的仿真,界面上还有一个标示为“Exit”的按钮用于程序的推出论文提纲格式

3.2 颜色的仿真

我们用imread命令读入图4所示的可见光谱,并将光谱保存在color_spectrum这个变量中,该变量是一个3维数组,前面2维对应着空间的行、列坐标,第3维对应该坐标下像素点的红、绿、蓝颜色值。每个像素点的颜色就是由这三个值混合而成[7]。为仿真不同波长所对应的色彩,我们先将该波长的衍射光强与该波长所对应的红、绿、蓝的颜色值分别相乘,然后再将结果混合起来,最后用imagesc命令即可得到与该波长相对应的颜色的光强分布图。

处理光谱的代码如下:

spectrum= imread('VisibleColorSpectrum.jpg');

color_spectrum= double(squeeze(spectrum(5,:,:)));

3.3 回调的处理

图5为圆环的仿真界面,界面右边自上而下的三个滚动条分别控制入射光波长,圆环外径和内径,因此涉及到三个回调函数。第一个回调函数是对波长改变的响应。代码如下:

functioncallback_slider_wavelength(hObject,eventdata,handles)

% 从滚动条获取当前的波长值

lambda = get(hObject,'Value');

%在滚动条上面的静态文本标签中以两位小数的浮点数显示当前波长值,

set(text_wavelength,'string',['Wavelength:',num2str(lambda,'%3.2f'),'nm'])

%从光谱中取出与当前波长对应的颜色

color= color_spectrum(round((lambda-380)/370*1834)+1,:)/255;

lambda = lambda * 1e-9;

%用自定义的函数fraun_obsuration计算圆环衍射,输出振幅和光强分别保存在A_pattern和 %I_pattern两个变量中。

[A_pattern, I_pattern] = fraun_obsuration(lambda,w1,w2);

% 将光强和颜色信息联系在一起

I_pattern_color(:,:,1)= I_pattern * color(1);

I_pattern_color(:,:,2) = I_pattern * color(2);

I_pattern_color(:,:,3)= I_pattern * color(3);

% Pc是初始化时通过imshow命令产生的图像对象的句柄。CData中保存着该图像的颜色信息

set(Pc,'CData',I_pattern_color);

axis square

end

后面两个回调函数是对外径改变的响应职称论文,颜色信息以及调用fraun_obsuration计算光强与上面的callback_slider_wavelength函数一样。不同的是这两个回调函数获取的是内外径的当前值。具体代码是:

Er = get(hObject,'Value') ;

set(text_External_radius,'string',['ExternalRadius: ',num2str(Er,

'%3.1f'),'mm'])

对应外径的改变。

Ir = get(hObject,'Value') ;

set(text_Internal_radius,'string',['InternalRadius: ',num2str(Ir,

'%3.1f'),'mm']);

对应内径的改变。

图6是矩形环夫琅禾费衍射的仿真界面,回调函数的处理方法与圆环的方法相同,由于篇幅的限制,本文不给出具体的代码。

以上两个模拟在内径为零时,可分别仿真圆孔和矩形孔的夫琅禾费衍射光强分布。结果如图7、图8所示。

4 结论

本文利用MATLAB图形用户界面的开发功能对圆环和矩形环的夫琅禾费衍射进行了仿真。仿真界面是交互式的,光强分布图可随入射波长以及衍射屏的几何参数的改变而变化,仿真结果与实验观测结果[8]一直,但清晰度更高。本程序可以对不同参数条件下的实验结果进行动态对比,从而将抽象的物理规律直观的展现在学生面前,为学生加深对此类光学问题的理解提供了有力的帮助。


参考文献:
[1]P.Marchand , O.Thomas Holland. Graphicsand GUIs with MATLAB ( third edition)
[M]. New York: CRC p ress, 2003.
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:用C#识别图像中的文字_MODI
下一篇论文:用模拟退火算法求解TSP_模拟退火原理
毕业论文分类
行政管理毕业论文 工商管理毕业论文
护理毕业论文 会计毕业论文
会计专业毕业论文 英语专业毕业论文
大学毕业论文 硕士毕业论文
计算机毕业论文 市场营销毕业论文
物流管理毕业论文 法学毕业论文
相关计算机毕业论文
最新计算机毕业论文
读者推荐的计算机毕业论文