李继军,徐大海,田永红
(长江大学 物理科学与技术学院,湖北 荆州 434023)
在当前的光学衍射教学中,教师在黑板上推导出光强度公式后,根据该公式在黑板上画出光强分布曲线,或利用PPT将预先准备好的光强分布图片投影在屏幕上.经验表明,并不是所有的学生都能通过这种静态的结果理解衍射的物理规律.随着计算机性能的提高及模拟仿真技术的发展,在课堂上利用计算机软件对光学过程进行仿真已经成为一种可能.
MATLAB软件是当今最优秀的科技应用软件和开发环境之一[1],它以强大的科学计算与可视化功能、简单易用、可开放式、可扩展环境等特点在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台.已有的使用Matlab软件模拟光学现象的文献中[2-5],只是对单一波长进行模拟,模拟结果为该波长下光强分布的灰度图,无法体现可见光波段波长连续变化时的光学现象,而且没有使用Matlab图形用户界面(Graphical User Interfaces,GUI),无法实现交互式模拟.本文利用可见光的光谱图,采用Matlab GUI对圆环和矩形环的夫琅禾费衍射在可见光波段进行仿真,仿真结果与实验结果一致.GUI中采用交互式滚动条动态的展现各物理量对衍射结果的影响,有利于加深学生对物理规律的理解和认识.
图1 圆环衍射屏
如图1所示,衍射屏上有一个内外半径分别为R1和R2的圆环区域,设该衍射屏的透射率为:
本文模拟将单位振幅的平面波入射到衍射屏上的情况,根据标量衍射理论[6],通过圆环的光在观察平面上的夫琅禾费衍射强度分布为:
式中λ是入射光波长,z是观察平面与衍射屏的距离.根据远场近似的要求,本文中z取50米,观察区域是一个0.2米×0.2米的正方形.r是观察平面上的观察点到该平面坐标原点的距离,J1()表示一阶贝塞尔函数.
如图2所示,衍射屏上有一个内外边长分别为d和D的矩形环区域,该衍射屏的透射率为:
当单位振幅的平面波透射过该衍射屏,在远离该屏的观察平面上产生的夫琅禾费衍射光强分布为:
图2 矩形环衍射屏
式中x,y是观察点在观察面中的坐标.
本程序将实现两个不同衍射屏下的仿真,为了编程的方便和界面的简洁,我们使用了matlab的容器控件——面板(Panel),加上初始界面,总共使用了三个面板.当其中一个界面出现时,另外两个界面是隐藏的.图3所示为程序执行后的初始界面.为实现仿真对象的转换,在界面中使用了两个按钮(Push Button),“Circle with Obscuration”实现圆环的仿真,“Rectangle with Obscuration”实现矩形环的仿真,界面上还有一个标示为“Exit”的按钮用于程序的退出.
我们用imread命令读入图4所示的可见光谱,并将光谱保存在color_spectrum这个变量中,该变量是一个三维数组,前面二维对应着空间的行、列坐标,第三维对应该坐标下像素点的红、绿、蓝颜色值.每个像素点的颜色是由这三个值混合而成[7].为仿真不同波长所对应的色彩,我们先将该波长的衍射光强与该波长所对应的红、绿、蓝的颜色值分别相乘,然后再将结果混合起来,最后用imagesc命令即可得到与该波长相对应颜色的光强分布图.
处理光谱的代码如下:
图5为圆环的仿真界面,界面右边自上而下的三个滚动条分别控制入射光波长,圆环外径和内径,因此涉及到三个回调函数.第一个回调函数是对波长改变的响应.代码如下:
图3 初始界面
图4 可见光谱
图5 圆环的仿真
后面两个回调函数是对外径改变的响应,颜色信息以及调用fraun_obscuration计算光强与上面的callback_slider_wavelength函数一样.不同的是这两个回调函数获取的是内外径的当前值.具体代码是:
图6是矩形环夫琅禾费衍射的仿真界面,回调函数的处
本文利用Matlab图形用户界面的开发功能对圆环和矩形环的夫琅禾费衍射进行了仿真.仿真界面是交互式的,光强分布图可随入射波长以及衍射屏几何参数的改变而变化,仿真结果与实验观测结果一致,但清晰度更高.本程序可以对不同参数条件下的实验结果进行动态对比,从理方法与圆环的方法相同,由于篇幅的限制,本文不给出具体的代码.
图6 矩形环的仿真
以上两个模拟在内径为零时,可分别仿真圆孔和矩形孔的夫琅禾费衍射光强分布.结果如图7、图8所示.而将抽象的物理规律直观地展现在学生面前,加深学生对此类光学问题的理解.
图7 圆孔的仿真
图8 矩形孔的仿真
[1]Marchand P,Thomas Holland O.Graphics and GUIs with MATLAB[M].third edition.New York:CRC Press,2003.
[2]崔祥霞,杨兆华,陈君.基于MATLAB的光学衍射与干涉实验仿真[J].泰山学院学报,2009,31(3):109-113.
[3]王惠临,赵俊卿.Matlab在大学物理教学中的应用[J].山东建筑大学学报,2009,24(3):279-281.
[4]吕波.基于Matlab的光学衍射仿真[J].东华理工大学学报(自然科学版),2010,33(4):363-368.
[5]华晋,尹金花.基于GUI的干涉衍射的实验教学研究[J].大学物理实验,2011,24(1):79-82.
[6]Joseph W Goodman.Introduction to Fourier Optics[M].third edition.New York:Roberts&Company Publishers,2004.
[7]Roy s Berns.颜色技术原理[M].李小梅,译.北京:化学工业出版社,2002.