圆孔衍射实验仿真设计
- 格式:doc
- 大小:3.15 MB
- 文档页数:9
大学物理创新性试验实验项目:单缝﹑双缝﹑多缝衍射现象仿真实验专业班级:材料成型及控制工程0903班姓名:曹惠敏学号:090201097目录1光的衍射2衍射分类3实验现象4仿真模拟5实验总结光的衍射光在传播路径中,遇到不透明或透明的障碍物,绕过障碍物,产生偏离直线传播的现象称为光的衍射。
光的衍射现象是光的波动性的重要表现之一.波动在传播过程中,只要其波面受到某种限制,如振幅或相位的突变等,就必然伴随着衍射的发生. 然而,只有当这种限制的空间几何线度与波长大小可以比拟时,其衍射现象才能显著地表现出来.所有光学系统,特别是成像光学系统,一般都将光波限制在一个特定的空间域内,这使得光波的传播过程实际上就是一种衍射过程.因此,研究各种形状的衍射屏在不同实验条件下的衍射特性,对于深刻理解衍射的实质,研究光波在不同光学系统中的传播规律分析复杂图像的空间频谱分布以及改进光学滤波器设计等具有非常重要的意义.随着计算机技术的飞速发展, 计算机仿真已深入各种领域。
光的干涉与衍射既是光学的主要内容 , 也是人们研究与仿真的热点。
由于光波波长较短,与此相应的复杂形状衍射屏的制作较困难,并且实验过程中对光学系统及环境条件的要求较高.因而在实际的实验操作和观察上存在诸多不便. 计算机仿真以其良好的可控性、无破坏、易观察及低成本等优点,为数字化模拟现代光学实验提供了一种极好的手段. 本次实验利用MATLAB软件实现对任意形状衍射屏的夫琅禾费衍射实验的计算机仿真。
衍射分类⒈菲涅尔衍射菲涅尔衍射:入射光与衍射光不都是平行光的衍射。
惠更斯提出,媒质上波阵面上的各点,都可以看成是发射子波的波源,其后任意时刻这些子波的包迹,就是该时刻新的波阵面。
菲涅尔充实了惠更斯原理,他提出波前上每个面元都可视为子波的波源,在空间某点P的振动是所有这些子波在该点产生的相干振动的叠加,称为惠更斯-菲涅尔原理。
惠更斯-菲涅尔原理能定性地描述衍射现象中光的传播问题,成为我们解释光的各类衍射现象的理论依据。
利用MATLAB语言进行光学衍射现象的仿真储林华(安庆师范学院物理与电气工程学院安徽安庆246011)指导教师:张杰摘要:光的衍射是光的波动性的一种重要表现,因此对光的衍射现象的研究,不仅具有重要的理论意义,而且在光学仪器研制和成像分析等诸多实际应用方面均有重要价值,但是其衍射光强的计算非常复杂,对实验条件的要求非常高,通常情况下很难得到满意的效果,严重影响了光学的教学。
本文从衍射的相关理论知识出发,首先介绍了惠更斯--菲涅耳原理及其数学表示形式,然后重点讨论了单色光经各种对称光学衍射元件(单缝,双缝,光栅,圆孔)的夫琅和费衍射情况,并分别给出了它们在焦平面上的衍射光强计算公式,最后利用科学计算软件MA TLAB对光的衍射现象进行了仿真,所得到的图样细致逼真,使整个物理过程变得直观形象,且与实验所得到的衍射图样进行了比较,两者吻合得很好,从而为光学的理论分析和实验教学提供了一种新的途径。
关键词:光的衍射,光栅衍射,圆孔衍射,Matlab,计算机仿真0 引言光的衍射现象是光具有波动性的重要特征,因此对衍射现象的研究无论在理论上还是在实践中都有很重要的意义。
对光的衍射现象的研究,始于17世纪,当时著名的荷兰科学家惠更斯提出了光是一种波的假说,并根据波动理论提出了光的传播理论——即惠更斯原理[1],根据这一原理,他解释了光的反射定律和折射定律,给出了折射率的意义,光在两种介质中的速度比。
到了19世纪,法国年轻的科学家菲涅耳,根据叠加原理把惠更斯原理进一步具体化,给出了光在传播过程中光强学计算公式,这就是著名的惠更斯-菲涅耳原理[2]。
但由于在实际应用过程中,障碍物形状的不规则性,导致光强的计算公式几乎无解析解,只能进行一些数值计算。
针对衍射计算中出现的困难,近代的研究人员想到运用科学的计算软件MA TLAB,利用其较强的绘图和图象功能,编写计算程序,使得多种衍射元件(单缝,双缝,光栅,矩孔,圆孔)下的衍射现象得以在计算机中形象地被模拟仿真。
工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。
相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。
二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长λ=632.8nm,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图1(r=12mm)图2(r=20mm)图3(r=50mm) 三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
这里选择矩孔的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6图4(a=b=15mm)图5(a=b=20mm)图 6(a=b=30mm)四、MATLAB 程序%所有长度单位为毫米lamda=632.8e-6; k=2*pi/lamda;z=1000000;%先确定衍射屏N=300; %圆屏采样点数a=15;b=15;[m,n]=meshgrid(linspace(-N/2,N/2-1,N));I=rect(m/(2*a)).*rect(n/(2*b));q=exp(j*k*(m.^2+n.^2)/2/z);subplot(2,2,1); %圆孔图像画在2行2列的第一个位置 imagesc(I) %画衍射屏的形状colormap([0 0 0; 1 1 1]) %颜色以黑白区分axis imagetitle('衍射屏形状')L=300;M=300; %取相同点数用于矩阵运算若为圆孔,方框内替换为以下程序 r=12;a=1;b=1; I=zeros(N,N); [m,n]=meshgrid(linspace(-N/2,N/2-1,N)); D=((m-a).^2+(n-b).^2).^(1/2); i=find(D<=r); I(i)=1; %孔半径范围内透射系数为1[x,y]=meshgrid(linspace(-L/2,L/2,M));h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z);%接收屏H =fftshift(fft2(h));B=fftshift(fft2(I)); %圆孔频谱G=H.*B; %公式中为卷积,空间域中相卷相当于频域中相乘U= fftshift(ifft2(G)); %求逆变换,得到复振幅分布矩阵Br=(U/max(U)); %归一化subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)% figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U)); %画三维图形subplot(2,2,4);plot(abs(Br))。
总第272期2012年第6期计算机与数字工程Computer &Digital EngineeringVol.40No.6151利用Matlab GUI模拟圆孔衍射*李芳菊 王菊霞(渭南师范学院物理与电气工程学院 渭南 714000)摘 要 在惠更斯-菲涅尔原理的基础上,建立了衍射仿真实验的数学模型,分析了圆孔的夫琅禾费衍射图样及其强度分布,并实现了对圆孔衍射的仿真。
关键词 Matlab GUI;夫琅禾费衍射;圆孔衍射中图分类号 O436.1Simulation of Aperture Diffraction Based on MATLAB GUILI Fangju WANG Juxia(School of Physics and Electrical Engineering,Weinan Teachers University,Weinan 714000)Abstract Based on the basic theory of the Fraunhofer diffraction,the mathematical model of diffraction experiment simulation was es-tablished,and the aperture diffraction of Fraunhofer diffraction were analyzed.Finally,the simulation of aperture diffraction was successfullycompleted.Key Words MATLAB GUI,Fraunhofer diffraction,aperture diffractionClass Number O436.11 引言Matlab语言是由墨西哥大学计算机系任主任的CleveMoler教授开发的一种专门作矩阵运算的数学软件[1~2]。
圆孔矩孔的菲涅尔衍射模拟(m a t l a b实现)-工程光学-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。
相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。
二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长λ=,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图 1(r=12mm)图 2(r=20mm)图 3(r=50mm)三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
菲涅尔衍射Matlab仿真——《高等物理光学》实验报告学院:物理学院姓名:***学号:***************目录1.菲涅尔衍射衍射原理 (3)2.实验想法及步骤 (3)2.1实验思路 (3)2.2实验步骤 (4)3.程序源代码: (4)4.运行结果展示 (5)5.结论 (7)1. 菲涅尔衍射衍射原理假设一个有限孔径,设孔径屏的直角坐标系为(x0,y0),并且观察平面与孔屏平行,两个平面间的间距为z ,观察平面的坐标系为(x,y ),这时,观察平面上的场可以表示为()()()()0000000,,,,0exp{j2}x y x y U x y z df df dx dy U x y f x x f y y π∞-∞∑=⎡⎤⋅-+-⎣⎦⎰⎰(1)根据近轴近似条件()222112x y f f λ≈-+ (2)同时利用傅里叶变换关系先对,x y f f 进行积分,得到如下的菲涅尔公式()()()()()220000000exp jkz ,,,exp{j }U x y z dx dy U x y x x y y j z z πλλ∑⎡⎤=⋅-+-⎣⎦⎰(3) 令()()()()22exp jkz ,exp{j }h x y x y j z z πλλ⎡⎤=+⎣⎦则式(3)可以写为()()()()()0000000,,,,y ,,y U x y z U x y h x x y dx dy U x y h x ∑=--=*⎰ (4)对(4)做傅里叶变换可以得到()()()0,,,,,x y x y x y A f f z A f f H f f z = (5)式中:()(){}00,,x y A f f FFT U x y =对于单位振幅入射平面波()(){}00,,x y A f f FFT t x y =()(){},,x y H f f FFT h x y =2.实验想法及步骤 2.1实验思路根据以上原理,传递函数(),x y H f f 已知,只需要求得透射孔径的透过率函数()0,t x y ,然后对透过率函数进行傅里叶变换得,并与传递函数相乘得到(),,x y A f f z ,最后做一个逆傅里叶变换得到()(),,=IFFT{,,}x y U x y z A f f z 。
MATLAB圆孔夫朗和费衍射圆孔夫朗和费衍射是物理光学领域中的两种重要现象,它们对光的传播和衍射提供了重要的理论基础。
在这篇文章中,我们将主要讨论MATLAB在模拟和分析圆孔夫朗和费衍射中的应用,介绍其原理和具体操作步骤。
一、圆孔夫朗衍射原理1. 圆孔夫朗衍射是指当平行光垂直照射到一个有圆孔的屏上时,圆孔后面的光屏上会出现明暗相间的环形条纹。
这种现象是由于光线经过圆孔后,会发生衍射和干涉的结果。
2. 根据夫朗和衍射的衍射公式,我们可以得到圆孔夫朗衍射的衍射角和衍射级数,进而求解出衍射光场的振幅和相位分布。
3. 圆孔夫朗衍射实际上是一种光学探测技术,可以用于测量光波的波长、频率和振幅等参数。
二、MATLAB模拟圆孔夫朗衍射1. 在MATLAB中,我们可以通过编写代码来模拟圆孔夫朗衍射的过程。
我们需要定义圆孔的参数,如半径、光波长等。
2. 我们可以利用波动方程和衍射公式来计算出衍射光场的振幅和相位分布。
3. 接下来,我们可以将计算得到的衍射光场显示出来,观察明暗条纹的分布情况。
4. 在模拟过程中,我们还可以改变圆孔的参数,观察不同条件下的衍射效果,从而更加深入地理解圆孔夫朗衍射的特性。
三、圆孔费衍射原理1. 圆孔费衍射是指当平行光垂直照射到一个有圆孔的屏上时,圆孔后面的光屏上会出现明暗相间的夫朗和环形条纹,其特点是中央明纹亮度大大减少而周围暗纹宽度减小。
2. 这种现象是由于光线经过圆孔后的扩散和衍射效应,导致光的传播方向发生变化,最终在屏上形成特殊的图案。
3. 圆孔费衍射可以用于光学成像、激光加工等领域,对于光学设备的设计和优化具有重要意义。
四、MATLAB模拟圆孔费衍射1. 在MATLAB中,我们同样可以通过编写代码来模拟圆孔费衍射的过程。
需要定义圆孔的参数,并计算出衍射光场的振幅和相位分布。
2. 利用MATLAB提供的图形绘制功能,我们可以将计算得到的衍射图案显示出来,观察中央明纹亮度减少和周围暗纹宽度变窄的现象。
实验十五 夫琅和费圆孔衍射实验目的1、了解圆孔的夫琅和费衍射现象。
2、掌握用衍射测圆孔的直径的方法。
实验装置(图15-1) 1:钠灯2:小孔(φ1mm ) 3:衍射孔(φ0.2-0.5mm ) 4:三维调节干版架 (SZ-18)7:测微目镜8:光源二维调节架 (SZ-19) 9:三维平移底座(SZ-01) 10:二维平移底座(SZ-02)衍射图样为图15-3:图15-3经理论推导的衍射的光强分布为:210))(2(mm J I I =λθπ=/sin 2a m ,是一阶贝塞耳函数。
)(1m J 圆孔衍射的第一暗纹的条件:aλ=θ61.0sin 则中央零级亮纹斑(爱里斑)的角半径:a /61.0λ≈θΔ线半径:f a l′⋅λ=/61.02爱里斑的直径:λ′=af e 22.1实验中,已知波长,透镜焦距οA 5893=λf ′,圆孔半径a ,用测微目镜测出爱里斑的直径,从而验证公式λ′=af e 22.1实验内容1、调整光路,调节衍射条纹。
2、用测微目镜则出爱里斑的直径。
3、验证公式λ′=a f e 22.14、改变圆孔的半径a ,进一步测量和验证。
实验步骤1)参照图15-1沿平台米尺安排各器件,调节共轴,获得衍射图样。
2)在黑暗环境用测微目镜测量艾里斑的直径e ,据已知波长(λ=589.3nm )、衍射小孔半径a 和物镜焦距f’,可验证公式λaf e '22.1=实验注意事项1、圆孔不能太大。
2、观察在焦平面上观察。
3、测圆斑的直径时圆心要选准并两边相切。
4、测量时要避免回程误差。
实验讨论思考题1、请证明圆孔的夫琅和费衍射的光强分布为:210))(2(mm J I I = 2、当圆孔直径增大或减小时,衍射条纹如何变化? 3、当入射光的波长改变时,衍射条纹如何变化? 4、如果透镜L 不放,衍射结果如何?实验十六 菲涅耳单缝衍射观察和分析实验目的1、了解菲涅耳衍射的条件及观察。
2、了解菲涅耳衍射和夫琅和费衍射的转化。
题目:圆孔菲涅尔衍射及其在matlab中的应用一、圆孔菲涅尔衍射简介在物理学中,菲涅尔衍射是一种由光波经过边缘或孔隙时发生的衍射现象。
而圆孔菲涅尔衍射是指当光波穿过圆孔时发生的衍射现象。
这一现象的研究不仅有助于我们理解光的传播规律,还具有广泛的应用价值。
下面我们将就圆孔菲涅尔衍射进行更深入的探讨。
1. 圆孔菲涅尔衍射原理圆孔菲涅尔衍射的原理可以简单概括为:当平行光垂直照射到孔径远小于波长的圆孔上时,光波将会在圆孔边缘发生衍射现象。
这一现象受到衍射衍射影响,使得出射光波的强度和相位发生变化,最终形成特定的衍射图样。
2. 圆孔菲涅尔衍射特点圆孔菲涅尔衍射的特点主要包括:- 衍射角度的变化会导致衍射图样的变化,这为我们定量研究光波的传播提供了重要依据。
- 圆孔菲涅尔衍射图样中会出现一系列光强和暗条纹,这种干涉现象在实际应用中具有重要意义。
3. 圆孔菲涅尔衍射的应用圆孔菲涅尔衍射在实际生活中有着广泛的应用,比如在天文望远镜、显微镜和光学仪器中的设计与制造中都有相关技术的应用。
而在数字图像处理、光栅制造以及激光技术等领域,圆孔菲涅尔衍射同样也有重要作用。
二、Matlab中的圆孔菲涅尔衍射模拟Matlab作为一款功能强大的科学计算软件,其在光学领域的应用也是非常广泛的。
关于圆孔菲涅尔衍射的模拟,我们可以借助Matlab中的光学工具箱进行实现。
1. 光学工具箱介绍Matlab中的光学工具箱提供了丰富的光学计算函数和模型,用户可以利用这些工具进行光学系统的设计、分析和优化。
在Matlab中进行圆孔菲涅尔衍射的模拟,可以很方便地实现对光波传播规律的研究。
2. 圆孔菲涅尔衍射模拟方法在Matlab中进行圆孔菲涅尔衍射的模拟可以分为以下几个步骤:- 定义圆孔的参数,比如孔径大小和光波波长等。
- 利用光学工具箱提供的函数进行光波传播的数值模拟。
- 通过对模拟结果的分析,可以得到圆孔菲涅尔衍射图样,从而深入理解菲涅尔衍射的规律。
衍射实验一、实验目的1、观察夫朗和费单缝和圆孔衍射图样二、实验原理衍射分类:观察光衍射的装置,通常由三个部分组成:光源、衍射物(缝或孔等障碍物)、观察屏。
按三者相对位置的不同,可以把衍射分为两大类。
一类是菲涅尔衍射,另一类是夫朗和费衍射。
1、夫朗和费单缝衍射单缝夫朗和费衍射的实验光路如下图所示。
光源S 发出的光经凸透镜L’变成平行光,垂直照射到单缝上,单缝的衍射光由凸透镜L 会聚在屏H 上,屏上将出现与缝平行的衍射条纹。
根据惠更斯—菲涅耳原理,入射光的波阵面到达单缝,单缝中的波阵面上各点成为新的子波源,发射初相相同的子波。
这些子波沿不同的方向传播并由透镜会聚于屏上。
如图中沿θ方向传播的子波将会聚在屏上P 点。
θ角叫做衍射角,它也是考察点P 对于透镜中心的角位置。
沿θ角传播的各个子波到P 点的光程并不相同,它们之间有光程差,这些光程差将最终决定P 点叠加后的光强。
从上图中容易看出,单缝的两端A 和B 点发出的子波到P 点的光程差最大,在图中为线段AC 的长度,我们称它为缝端光程差(或最大光程差),等于: s i n A C a θ=①单缝夫琅和费衍射明纹、暗纹条件: sin (21)2a K λθ=±+ 明纹 sin a K θλ=± 暗纹②中央明纹宽度:中央明纹的宽度为次级条纹的两倍。
在屏中心O 点,会聚在此点的所有子波光程相等,振动同相,叠加时相互加强,使O 点成为衍射条纹中最亮的中央明纹的中心。
2、圆孔衍射当改变圆孔的直径或改变观察距离时,屏中央发生明暗变化。
三、实验仪器:激光电源,激光器,可调狭缝,白屏,小孔,调整架,底座。
四、实验步骤:(1) 夫郎和费单缝衍射实验的关键在于调节各器件的准直,光源和狭缝之间的距离必须保证满足远场条件。
将激光照射在狭缝上,观察远处的衍射图样,助于图样取向与狭缝的取向的关系。
缓慢地连续地将单缝由窄(宽)变宽(窄),同时注意屏幕上的图样。
(2)圆孔衍射将单缝换成1.5 mm的衍射小孔,改变孔的大小,观察衍射图样的变化。
工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布, 为倾斜因子。
根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1,y1),接收屏上点的坐标为(x,y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。
相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x,y)以及(x1,y1)。
二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长=632.8nm,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图1(r=12mm)图2(r=20mm)图3(r=50mm)三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
这里选择矩孔的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6图4(a=b=15mm)图5(a=b=20mm)图6(a=b=30mm)四、MATLAB程序%所有长度单位为毫米lamda=632.8e-6;[m,n]=meshgrid(linspace(-N/2,N/2-1,N));I=rect(m/(2*a)).*rect(n/(2*b));q=exp(j*k*(m.^2+n.^2)/2/z);subplot(2,2,1);%圆孔图像画在2行2列的第一个位置imagesc(I)%画衍射屏的形状colormap([0 0 0; 1 1 1])%颜色以黑白区分axis imagetitle('衍射屏形状')L=300;M=300;%取相同点数用于矩阵运算[x,y]=meshgrid(linspace(-L/2,L/2,M));h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z);%接收屏H =fftshift(fft2(h));B=fftshift(fft2(I));%圆孔频谱G=H.*B; %公式中为卷积,空间域中相卷相当于频域中相乘U= fftshift(ifft2(G));%求逆变换,得到复振幅分布矩阵Br=(U/max(U));%归一化subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)% figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U)); %画三维图形subplot(2,2,4);plot(abs(Br))。
圆孔衍射实验报告圆孔衍射实验报告引言衍射是光学中的重要现象,指的是当光通过一个孔或者绕过一个物体时,光波会发生偏折和干涉,产生新的波纹和光斑。
圆孔衍射实验是研究光的衍射现象的经典实验之一。
本报告旨在详细介绍圆孔衍射实验的原理、实验装置和实验结果,并对实验结果进行分析和讨论。
实验原理圆孔衍射实验基于惠更斯-菲涅耳原理,即光波在传播过程中会沿着各个方向传播,并在传播的过程中发生干涉。
当光通过一个圆孔时,光波会在孔的边缘发生衍射,形成一系列的光环,称为菲涅耳衍射环。
这些衍射环的大小和形状与孔的大小和光的波长有关。
实验装置圆孔衍射实验的装置主要包括光源、圆孔、屏幕和测量仪器。
光源可以选择白光或单色光源,如激光。
圆孔通常由金属或者玻璃制成,直径可以调节。
屏幕用于接收和观察衍射光斑。
测量仪器可以是尺子、卡尺或者显微镜,用于测量光斑的直径和位置。
实验步骤1. 将光源放置在适当的位置,并调整光源的亮度和位置,使光线垂直照射到圆孔上。
2. 调节圆孔的直径,观察和记录不同直径下的衍射光斑。
3. 将屏幕放置在合适的位置,接收和观察衍射光斑。
4. 使用测量仪器测量光斑的直径和位置,并记录数据。
实验结果通过圆孔衍射实验,我们观察到了一系列的衍射光斑。
随着圆孔直径的增大,衍射光斑的直径也增大,但是衍射环的亮度和清晰度会减弱。
当圆孔直径非常小的时候,衍射光斑会呈现出明亮而清晰的环状结构。
而当圆孔直径逐渐增大时,衍射光斑会变得模糊,环状结构逐渐消失。
讨论与分析圆孔衍射实验的结果符合光的波动性质。
当光通过一个孔时,光波会沿着各个方向传播,并在传播的过程中发生干涉。
衍射光斑的大小和形状取决于孔的大小和光的波长。
当孔的直径非常小的时候,光波会在孔的边缘发生强烈的衍射,形成明亮而清晰的衍射环。
而当孔的直径逐渐增大时,衍射光斑的清晰度和亮度会减弱,因为光波的干涉效应逐渐减弱。
圆孔衍射实验还可以用来测量光的波长。
根据衍射光斑的直径和圆孔的直径,可以利用菲涅耳衍射公式计算出光的波长。
测试与光电工程学院计算机课程设计任务书电子科学与技术系070832 班22 学生:吴海课题名称:圆孔衍射实验仿真设计课题内容:1、课题设计要求:(1)分析圆孔衍射的物理过程,建立数学模型;(2)设计算法流程图;(3)编写程序,并对仿真结果进行分析。
2、工作进度安排:查阅资料,设计算法流程图 6月28日~ 7月4日第18周编写程序,撰写报告 7月5日~ 7月9日第19周系负责人:指导教师:钟可君时间:2010年6月21日[摘要]计算机仿真是应用电子计算机对系统的结构、功能和行为以及与系统控制的人的思维过程和行为进行动态性比较逼真的模仿,并通过建立某一过程和某一系统的模式,来描述该过程或该系统,为决策者提供有关这一过程或系统的定量分析结果,以此作为决策的理论依据。
本文主要研究了圆孔衍射理论,并对其中的不同圆孔的半径和不同的波长的情况对比与分析;然后根据圆孔衍射的数学计算公式,编写了各种干涉仿真的MATLAB程序代码;最后为了方便用户使用,本文设计了图形用户界面。
[关键词]MATLAB;计算机仿真;图形用户界面;圆孔衍射;分辨本领;仿真分析目录摘要一概述 (3)二圆孔衍射的基本原理 (4)三设计过程 (5)四设计过程的问题 (8)五心得体会 (8)六致谢 (9)附录一、概述1 本次计算机课程设计是在老师所给的众多课题中所选的课题,并在课题老师的要求下进行实际的操作和设计本次所选的课题,对于此次所选的课题其具有的意义为圆孔作为光学仪器基本形状,其衍射现象在光学研究中占有重要地位.光学衍射现象的实验演示需要特定的实验仪器和实验所,给研究工作带来许多不便。
另外,清晰的圆孔衍射图样,要求的圆孔半径很小,在一般实验中难以实现.基于MATLAB7软件强大的计算能力和可视化功能上的优势,利用计算机对圆孔衍射过程进行仿分析,可以使衍射现象直观地表现出来;通过调整实验参数,可以同步生成不同实验条件下的衍射图样,便于对衍射现象和像分辨本领进行比较分析;利用色图表现光强分布,使实验效果更为逼真,在实和研究中具有重要意义。
在本次的课题设计中主要要求完成对所选的课题进行界面的设计,这也是本次课程设计的难点,在设计的过程中我们遇到了很多棘手的问题,首先是对这个功能强大的软件很是陌生,并不会充分的使用,而且在这次的实验过程中由于这个软件的版本过多,对在于学习中又有很多盲点,并在实验过程中在各个软件的安装上又遇到了新的问题,确实是软件功能过于强大,整个安装软件很大,在安装过程中又要摸索着前进,不断的尝试,最终才安装上MATLAB7软件。
在此之后就具有了一定的方向,解决问题就要简单一些。
并最终完成了所要求的设计。
2 仿真工具的简单介绍:本此仿真设计是基于MA TLAB软件,MA TLAB 是Matrix Laboratory的缩写。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MA TLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。
在新的版本中均嵌有对C,FORTRAN等语言的接口,可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用,非常的方便。
MA TLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
MA TLAB的基础是矩阵计算,但是由于他的开放性,并且mathwork 也吸收了像maple等软件的优点,使MATLAB成为一个强大的数学软件。
MATLAB具有以下几个特点:(1) 友好的编译平台和编译环境(2) 简单易用的程序语言 (3) 强大的科学计算机数据处理能力 (4) 出色的图形处理功能(5) 应用广泛的模块集合工具箱(6) 实用的程序接口和发布平台(7) 应用软件及用户界面开发二、圆孔衍射的基本原理(一)夫琅和费衍射理论衍射是光的波粒二象性中波动性的表现,是光的基本属性之一。
其主要表现在光波在遇到一定尺寸的障碍物时不沿直线传播而绕过障碍物继续传播。
图1光衍射原理图如图1,假设光在衍射屏∑平面上的某个波前点P0和观察点P的坐标分别是(x0,yo)和(x,y),当衍射屏相距光源以及观察点无限远时,即P0和P同时满足远场条件: | z|≥x2/λ、y2/λ和|z|≥x20/λ、y20/λ时,光场复振幅的分布满足夫琅和费衍射公式(1):U(P) =-ieikzλz ∑U0(P0)exp(-ikxx0+yy0z)dx0dy0公式中z是衍射屏和观察屏的距离,λ为光波波长, U0(P0)为光在P0处的复振幅。
因此,观察屏上任意一点P的光强分布为:I(P) =| U(P) |2。
对于不同情况的衍射屏,只要对衍射孔进行积分,理论上都是可以求出观察屏上任意一点P的光强分布I(P),从而可以对光强的分布进行定量研究。
夫琅和费圆孔衍射仿真当衍射孔为半径为r的圆孔时,根据公式(1),可以导出其夫琅和费衍射光强公式(2)为:I(P) = I0[2J1(m)m]2式中m=2rpiλsina, a是衍射角, J1(x)是一阶贝塞尔函数。
为了方便,对衍射角做近似处理,a≈x2+y2/f,其中f是透镜的焦距。
(二)圆孔衍射的实验装置与数学模型的、建立图2 圆孔夫琅禾费衍射装置图圆孔夫琅禾费衍射装置如图2所示,S为点光源,位于透镜L1的焦平面的主光轴上,光屏E置于焦距为D的透镜L2的焦平面上.圆孔P的半径为R.入射光波长为λ.射圆孔时,沿衍射角θ方向传播的次波在光屏Q(x,y)处的光强分布为[1]Ia= I0(J1(2m)m)2.其中:m=πRλsina,sina=x2+y2x2+y2+D2;I0为分常数.三、设计过程(一)方案选择本设计根据圆孔衍射的数学计算公式,编写实现圆孔衍射图样的MATLAB 程序,并设计出界面程序。
在本次实验的中最最要的就是编写界面而用户界面的设计有多种方案,尤其是现在新版本的MATLAB软件,其软件的兼容性更强,可以直接使用程序编写的方式建立界面,可以用MA TLAB结合VB设计出界面,还可以使用MA TLAB GUI来设计界面。
本设计是以MATLAB GUI来设计界面,即直接调用MATLAB库中的函数以编写M文件的方式来设计界面。
此方法简便灵活,程序代码设计简单,编译也更为容易。
(二)、图形界面(GUI)设计与衍射图样的生成1 用MATLAB GUI设计光学仿真界面,主要包括以下几个步骤:(1)构思草图,编排控件的布局。
打开Matlab程序,在file菜单中选择new gui,打开guide设计界面模板,界面模板左边的各个控件可以直接用鼠标拖到编辑框。
(2)设置各控件的属性。
比如设置各控件的标识(Tag),颜色,字体等,尤其要对应程序中的参数设置,对Tag进行设计。
(3)代码的设计。
关键是OpeningFcn(初始界面函数)和控件的Callback(回调函数)代码的设计。
初始界面函数即设定个参数的初始值,可根据实际情况设定。
回调函数是核心,是对界面控件触发时的事件响应函数。
光学实验仿真界面“运行”控件的回调函数设计流程是:根据设计步骤,构思草图,在编辑器中布置控件,坐标轴Axes1用来显示实验示意图,Axes2和 Axes3分别用来显示圆孔衍射图样和圆孔衍射光强分布图,文本框用来输入相应的参数,如图3所示,界面可直接输入参数有:波长 、半径0r 。
图 3 圆孔衍射实验仿真设计2 实验的程序设计在自生成的function ykys_OpeningFcn(hObject, eventdata, handles, varargin)下设置参数并同时显示衍射原理图set(mbda_edit,'String',0.0000005);用linspace()设置x,y 方向的范围用函数实现光强的计算调用函数显示光强立体图调用imagesc()函数显示仿真图读取界面参数set(handles.a_edit,'String',0.00001);I1=imread('4.jpg','JPEG');axes(handles.axes1)image(I1)在function pushbutton1_Callback(hObject, eventdata, handles)下编写主程序Lambda=str2num(get(mbda_edit,'String'));a=str2num(get(handles.a_edit,'String'));f=600;x=linspace(-20,20,100);y=x;[X,Y]=meshgrid(x,y);seta=atan(sqrt(X.^2+Y.^2)/f);alpha=2*pi*a*sin(seta)/Lambda;I=(2*besselj(1,alpha)./alpha).^2;%一阶贝塞尔函数NCL=255;Ir=I*NCL;colormap('gray');axes(handles.axes2),image(x,y,Ir*5);axis square;xlabel('圆孔衍射图样')axes(handles.axes3),plot3(X,Y,I)xlabel('圆孔衍射光强分布')axis square;保存后设计“运行”控件的回调函数的代码,在界面中输入参数,点击“运行”控件,可得到圆孔衍射实验仿真设计结果,如图4所示。
图4圆孔衍射实验仿真设计一改变参数设置波长=6e-007,半径=2e-005 后运行的结果如图5所示图5圆孔衍射实验仿真设计二3 分析与总结:从上面的分析可以看到,MATLAB GUI功能强大并且设计使用方法比较简单,可以根据需要设计丰富的界面,并由此直接在界面中输入和改变参数而不需要改变原程序,这样有利于分析和比较在不同参数条件下的实验结果,把抽象的光学问题进行简明直观的动态展示,为光学理论和实验教学提供了方便,为相关课件的设计提供了新途径。
四、设计过程的问题在整个计算机课程设计的过程中遇到了很多的问题,首先是对于软件的认识很陌生,这是最主要的问题,对于这个问题就只有通过突击学习来弥补了,在图书馆查阅资料并在网上搜索所要的资料,在通过学习后才不断的对软件有了一定的了解,当然还有老师的指点和教导,最终对MATLAB软件能够有了一定的操作能力。