天天看点

matlab光学原理仿真应用衍射,基于Matlab的光学衍射实验仿真

科技信息 2011 年 第 29 期SCIENCE & TECHNOLOGY INFORMATION 0 引言 物理光学是高校物理学专业的必修课,其中,光的衍射既是该门课程的重点内容,也是人们研究的热点。 然而由于光学衍射部分公式繁多,规律抽象,学生对相应的光学图像和物理过程的理解有一定的困难,大大影响了教学效果。 当然,在实际中可以通过加强实验教学来改善教学效果,但是光学实验对仪器设备和人员掌握的技术水平要求都较高,同时实验中物理现象容易受外界因素的影响,这给光学教学带来了较大的困难[1-5]。 随着计算机技术的迅速发展, 现代化的教育模式走进了课堂,利用计算机对光学现象进行仿真也成为一种可能。 Matlab 是一款集数值分析、符号运算、图形处理、系统仿真等功能于一体的科学与工程计算软件,它具有编程效率高、简单易学、人机交互好、可视化功能、拓展性强等优点[6-8],利用 Matlab 编程仿真光学现象只需改变程序中的参数,就可以生成不同实验条件下的光学图像, 使实验效果更为形象逼真。在课堂教学中,能快速的验证实验理论,使学生更直观的理解理论知识,接受科学事实。 本文以矩孔夫琅和费衍射为例,介绍了 Matlab 在光学衍射实验仿真中的应用。 1 衍射基本原理 衍射是光波在空间或物质中传播的基本方式。 实际上,光波在传播的过程中,只要光波波面受到某种限制,光波会绕过障碍物偏离直线传播而进入几何阴影, 并在屏幕上出现光强分布不均匀的现象,称为光的衍射。 根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射。 研究不同孔径在不同实验条件下的光学衍射特性,对现代光学有重要的意义。 图 1 光的衍射原理图 如图 1 所示,衍射规律可用菲涅尔衍射积分表示,其合振幅为[9]: E(x,y)= 1 jλ ∑蓦E(x1 ,y1 ) e jkr r cosθdx1dy1 (1) 其中,K 是孔径平面,E 是观察平面,r 是衍射孔径平面 Q 到观察平面 P 的距离,d 是衍射孔径平面 O 到观察平面 P0 的距离,cosθ 是倾斜因子,k=2π/λ 是光波波数,λ 是光波波长,x1 ,y1 和 x,y 分别是孔径平面和观察平面的坐标。 由图(1)中可得 r= d 2 +(x-x1 ) 2 +(y-y1 ) 2 姨 =d 1+ (x-x0 ) 2 +(y-y0 ) 2 2d 22 2 (2) 根据 r 的不同取值,产生两种不同的衍射,即菲涅尔衍射和夫琅和费衍射。 当障碍物到光源和考察点的距离都是无限的情况,式(1)的合振幅分布可进一步表示为: E(x,y)= exp(jkd) jλd exp j k 2d (x 2 +y 22 2) ∑ 蓦E(x1 ,y1 )exp -jk xx0+yy0 d ∑ ∑dx1dy1 (3) 由此衍射积分得到的合振幅分布称为夫琅和费衍射。 2 仿真过程及结果 基于上述原理分析, 假设矩孔夫琅和费衍射透镜焦距 f=1000 mm,光波长 λ=500nm,矩形的孔径宽 a=1mm,长 b=2mm,根据公式(3),通过 Matlab 编程,则得到相应的仿真结果。矩孔夫琅和费衍射仿真程序如下: focallength=1000; lambda=500; a=1.0;b=2.0; resolution=64; center=(resolution)/2; A=zeros(resolution,resolution); for i=1:1:resolution for j=1:1:resolution if abs(i-cent