圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学(20200607000913)

合集下载

圆盘衍射matlab

圆盘衍射matlab

圆盘衍射matlab
在MATLAB中,我们可以使用以下步骤来模拟圆盘衍射:
1. 首先,我们需要定义一个圆形的光源。

这可以通过circle函数完成,例如:source circle = [0 0; 1 0];
2. 接下来,我们需要定义一个光栅,可以通过meshgrid 函数来实现。

例如:mesh grid = meshgrid(linspace(-1,1), linspace(-1,1), linspace(-1,1));
3. 然后,我们需要定义一个光源到光源的距离,例如:source to circle = 1;
4. 接着,我们需要定义一个光源到光栅的距离,例如:circle to grid = 1;
5. 最后,我们需要定义一个光源到光栅的距离,例如:circle to grid = 1;
6. 然后,我们可以通过以下公式来计算光栅的衍射图像:
diff image = (mesh grid.^2).*(source circle.^2).*(1 - (circle to grid.^2).*(source to circle.^2));
7. 最后,我们可以将这个公式放入MATLAB的代码中来实现圆孔衍射的模拟。

以上步骤只是一个基本的示例,具体的实现可能会根据你的具体需求有所不同。

利用MATLAB语言进行光学衍射现象的仿真

利用MATLAB语言进行光学衍射现象的仿真

利用MATLAB语言进行光学衍射现象的仿真储林华(安庆师范学院物理与电气工程学院安徽安庆246011)指导教师:张杰摘要:光的衍射是光的波动性的一种重要表现,因此对光的衍射现象的研究,不仅具有重要的理论意义,而且在光学仪器研制和成像分析等诸多实际应用方面均有重要价值,但是其衍射光强的计算非常复杂,对实验条件的要求非常高,通常情况下很难得到满意的效果,严重影响了光学的教学。

本文从衍射的相关理论知识出发,首先介绍了惠更斯--菲涅耳原理及其数学表示形式,然后重点讨论了单色光经各种对称光学衍射元件(单缝,双缝,光栅,圆孔)的夫琅和费衍射情况,并分别给出了它们在焦平面上的衍射光强计算公式,最后利用科学计算软件MA TLAB对光的衍射现象进行了仿真,所得到的图样细致逼真,使整个物理过程变得直观形象,且与实验所得到的衍射图样进行了比较,两者吻合得很好,从而为光学的理论分析和实验教学提供了一种新的途径。

关键词:光的衍射,光栅衍射,圆孔衍射,Matlab,计算机仿真0 引言光的衍射现象是光具有波动性的重要特征,因此对衍射现象的研究无论在理论上还是在实践中都有很重要的意义。

对光的衍射现象的研究,始于17世纪,当时著名的荷兰科学家惠更斯提出了光是一种波的假说,并根据波动理论提出了光的传播理论——即惠更斯原理[1],根据这一原理,他解释了光的反射定律和折射定律,给出了折射率的意义,光在两种介质中的速度比。

到了19世纪,法国年轻的科学家菲涅耳,根据叠加原理把惠更斯原理进一步具体化,给出了光在传播过程中光强学计算公式,这就是著名的惠更斯-菲涅耳原理[2]。

但由于在实际应用过程中,障碍物形状的不规则性,导致光强的计算公式几乎无解析解,只能进行一些数值计算。

针对衍射计算中出现的困难,近代的研究人员想到运用科学的计算软件MA TLAB,利用其较强的绘图和图象功能,编写计算程序,使得多种衍射元件(单缝,双缝,光栅,矩孔,圆孔)下的衍射现象得以在计算机中形象地被模拟仿真。

菲涅尔衍射matlab

菲涅尔衍射matlab

菲涅尔衍射matlab菲涅尔衍射(Fresnel diffraction)既是一种物理现象,也是一种集中光束的数学解析方法,是量子力学中的物理现象之一。

MATLAB使用菲涅尔衍射算法,可以在复杂物体和形状上进行准确的光分发分析和性能评估。

一、什么是菲涅尔衍射1.1 菲涅尔衍射的定义菲涅尔衍射,也称为衍射弥散,是由法国物理学家菲涅尔(Augustin Fresnel)在1817-1818年首次提出的一种物理现象。

它指的是当光线遇到光学系统的边界折射处或非特定孔径时,其交界处的散射效应。

当一束光线穿过一个孔径或光学系统边界时,菲涅尔衍射造成了衍射或散射,这会影响光束的衍射图像,其形式主要依赖介质的结构和入射光的波长。

1.2 菲涅尔衍射的应用菲涅尔衍射算法(fresnel diffraction algorithm)的主要应用有:(1)应用于光学系统的分析,包括照明系统、光学投影系统的性能分析,以实现信号的有效传输。

(2)在光纤传感器的分析中,可以应用菲涅尔衍射方法研究微弱信号的传输性能。

(3)在计算机视觉研究中,运用菲涅尔衍射可以最大限度地减少折射和反射的影响,从而获取更加真实的图像。

(4)在天体衍射中,菲涅尔衍射可以被用来描述在更大空间张量和体积空间进行光学计算。

二、MATLAB如何使用菲涅尔衍射2.1 编程实现的步骤(1)用MATLAB创建光学系统模型:根据系统模型,建立计算机模型,从而模拟系统性能。

(2)使用菲涅尔衍射计算光束穿过光学系统的散射衍射:在计算机模型的基础上,可以使用菲涅尔衍射算法,模拟光束穿过特定的不它孔径或者到达特定点时,菲涅尔衍射会发生的变化,从而计算出衍射图形。

(3)对光束进行测量:通过精确测量可以观察光束的变化,进而检查系统的性能,从而改进系统设计。

2.2 使用fresnel diffraction algorithm的Matlab工具Matlab中提供了fresnel diffraction algorithm的一系列Matlab工具,可以实现准确运算并生成衍射系数,这些工具可用于各种光学衍射、折射和反射模拟的仿真,可以作为视觉设计、光学性能测试和甚至作为优化,可以解决复杂的光学光谱计算问题。

圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的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))。

写平行光束分别通过圆孔和矩形孔的菲涅尔衍射的matlab代码

写平行光束分别通过圆孔和矩形孔的菲涅尔衍射的matlab代码

写平行光束分别通过圆孔和矩形孔的菲涅尔衍射的matlab代码1. 引言1.1 概述在光学领域中,菲涅尔衍射是一种常见的现象,它描述了当平行光束通过孔洞或物体边缘时所产生的衍射效应。

这个现象在很多应用中都具有重要意义,例如光学仪器的设计、天文学以及激光技术等领域。

理解和研究菲涅尔衍射现象对于深入探究光的波动性质以及相干光的传播具有重要意义。

1.2 文章结构本文将从以下几个方面进行讨论:首先介绍菲涅尔衍射理论中与本文相关的基本概念和原理;其次详细阐述使用MATLAB代码实现菲涅尔衍射的方法和步骤;然后,通过对圆孔和矩形孔两种情况下的菲涅尔衍射结果进行分析和讨论;最后给出文章总结,并提出进一步研究方向。

1.3 目的本文旨在通过编写MATLAB代码来模拟实现平行光束通过圆孔和矩形孔时的菲涅尔衍射现象,并利用结果分析和比较两种情况下的衍射效应。

通过这样的研究,可以加深对菲涅尔衍射原理的理解,并为后续相关研究提供参考和借鉴。

同时,通过MATLAB代码实现,读者也可以根据自己的需求进行扩展和修改,从而进一步探索不同形状孔洞的菲涅尔衍射特性。

2. 菲涅尔衍射理论2.1 光的波动特性菲涅尔衍射是一种描述光波传播和衍射现象的理论。

根据光的波动特性,当光通过一个孔径较小的障碍物时,它会弯曲并发生衍射现象。

在菲涅尔衍射中,平行光束通过圆孔或矩形孔后,在进入屏幕上的观察点处产生干涉图样。

2.2 菲涅尔近似理论菲涅尔近似理论是在进一步简化计算过程中使用的近似方法。

它假设观察点距离光源和障碍物足够远,使得远场近似成立。

2.3 圆孔和矩形孔的描述圆孔和矩形孔是两种常见形状的障碍物,用于描述光线传播时发生的菲涅尔衍射效应。

- 圆孔: 圆孔通常由一个具有确定半径大小的圆形开口组成。

当平行光束通过圆孔时,它会扩散并形成一系列同心环状条纹。

- 矩形孔: 矩形孔是由一个具有确定边长的矩形开口组成。

当平行光束通过矩形孔时,它会扩散并在屏幕上生成一系列矩形衍射图样。

matlab菲涅尔衍射积分

matlab菲涅尔衍射积分

matlab菲涅尔衍射积分【最新版】目录1.菲涅尔衍射现象及其原理2.菲涅尔衍射积分公式3.MATLAB 在菲涅尔衍射计算中的应用4.示例:使用 MATLAB 进行菲涅尔衍射积分计算正文一、菲涅尔衍射现象及其原理菲涅尔衍射是指当光线通过一个狭缝或者一个具有较小尺寸的物体时,会出现的一种光的衍射现象。

这种现象是由于光在传播过程中,遇到障碍物或者通过狭缝时,会发生光的波动性质的干涉和叠加,形成一系列的衍射条纹。

菲涅尔衍射的原理是,当光线通过一个狭缝或者一个小物体时,光会在狭缝或物体后面形成一个新的光源,这个新的光源会发出一系列的同心环状的光波,这些光波在传播过程中会相互干涉和叠加,形成衍射条纹。

二、菲涅尔衍射积分公式菲涅尔衍射积分公式是描述菲涅尔衍射现象的数学公式,该公式为:I(x,y) = ∫∫ [0,∞] [0,∞] f(x,y,u,v) * e^(-j * 2 * π * (u^2 + v^2)) du * dv其中,I(x,y) 表示衍射后的光强分布,u 和 v 分别表示衍射光源的横向和纵向位置,f(x,y,u,v) 表示光源的辐射亮度分布,e^(-j * 2 * π* (u^2 + v^2)) 表示复指数函数,j 表示虚数单位。

三、MATLAB 在菲涅尔衍射计算中的应用MATLAB 是一种数学软件,可以用来解决各种数学问题,包括菲涅尔衍射计算。

在 MATLAB 中,可以使用内置的函数和工具箱来进行菲涅尔衍射计算。

例如,MATLAB 中有一个名为“光学系统工具箱”的工具箱,可以用来模拟和计算光学系统的性能,包括菲涅尔衍射计算。

四、示例:使用 MATLAB 进行菲涅尔衍射积分计算以下是一个使用 MATLAB 进行菲涅尔衍射积分计算的示例:1.首先,打开 MATLAB 软件,并启动“光学系统工具箱”。

2.然后,创建一个二维的衍射光源,该光源的辐射亮度分布为:f(x,y,u,v) = (1 / (4 * pi)) * exp(-((u^2 + v^2) / (2 * sigma^2)) 其中,sigma 表示光源的尺寸。

圆孔矩孔的菲涅尔衍射模拟(matlab实现)~工程光学

工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的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))。

基于Matlab的光学衍射实验仿真

基于Matlab的光学衍射实验仿真()摘要通过Matlab软件编程,实现对矩孔夫琅和费衍射的计算机仿真,结果表明:该方法直观正确的展示了衍射这一光学现象,操作性强,仿真度高,取得了较好的仿真效果。

关键词夫琅和费衍射;Matlab;仿真1引言物理光学是高校物理学专业的必修课,其中,光的衍射既是该门课程的重点内容,也是人们研究的热点。

然而由于光学衍射部分公式繁多,规律抽象,学生对相应的光学图像和物理过程的理解有一定的困难,大大影响了教学效果。

当然,在实际中可以通过加强实验教学来改善教学效果,但是光学实验对仪器设备和人员掌握的技术水平要求都较高,同时实验中物理现象容易受外界因素的影响,这给光学教学带来了较大的困难1【-5】。

随着计算机技术的迅速发展,现代化的教育模式走进了课堂,利用计算机对光学现象进行仿真也成为一种可能。

Matlab是一款集数值分析、符号运算、图形处理、系统仿真等功能于一体的科学与工程计算软件,它具有编程效率高、简单易学、人机交互好、可视化功能、拓展性强等优点[6-8],利用Matlab编程仿真光学现象只需改变程序中的参数,就可以生成不同实验条件下的光学图像,使实验效果更为形象逼真。

在课堂教学中,能快速的验证实验理论,使学生更直观的理解理论知识,接受科学事实。

本文以矩孔夫琅和费衍射为例,介绍了Matlab在光学衍射实验仿真中的应用。

2 衍射基本原理衍射是光波在空间或物质中传播的基本方式。

实际上,光波在传播的过程中,只要光波波面受到某种限制,光波会绕过障碍物偏离直线传播而进入几何阴影,并在屏幕上出现光强分布不均匀的现象,称为光的衍射。

根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射。

研究不同孔径在不同实验条件下的光学衍射特性,对现代光学有重要的意义。

如图1所示,衍射规律可用菲涅尔衍射积分表示,其合振幅为[9]:(1)其中,K是孔径平面,E是观察平面,r是衍射孔径平面Q到观察平面P的距离,d是衍射孔径平面O到观察平面P0的距离,cosθ是倾斜因子,k=2π/λ是光波波数,λ是光波波长,x1,y1和x,y分别是孔径平面和观察平面的坐标。

圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学

圆孔矩孔的菲涅尔衍射模拟(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光学衍射之矩形孔的夫琅禾费衍射

MATLAB的课程报告项目名称:基于MATLAB光学衍射之矩型孔的夫琅和费衍射一,MATLAB 基础:MatlaB是功能强大的科学及工程计算软件,它不但表现具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。

Matlab是一款集数值分析、符号运算、图形处理、系统仿真等功能于一体的科学与工程计算软件,它具有编程效率高、简单易学、人机交互好、可视化功能、拓展性强等优点。

MatlAB是面向21世纪的计算机程序设计及科学计算语言。

MatlAB系统包括5个部分:开发环境,MAtlAB数学函数库,MAtlAB语言,图形功能,应用程序接口。

二,光的衍射的原理:光的衍射是光波在物质或空间里传播的基本发式,实际上,光波在传播的过程中,只要光波波面受到某种限制,光波会绕过障碍物偏离直线传播而进入几何阴影,并在屏幕上出现光强分布不均匀的现象,称为光的衍射。

根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射。

此次课程报告主要是围绕夫琅和费衍射展开的。

在光学上,夫琅和费衍射在场波通过圆孔或狭缝时发生,导致观测到的成像大小有所改变,成因是观测点的远场位置,及通过圆孔向外的衍射波有渐趋平面波的性质。

1,惠更斯原理:根据惠更斯-菲涅耳原理,单缝后面空间任一点P 的光振动是单缝处波阵面上所有子波波源发出的子波传到P 点的振动的相干叠加。

2. 菲涅耳-基尔霍夫衍射公式:由于菲涅耳理论本身的缺陷,所以从波动微分方程出发,利用场论中的Green 定理及电磁场的边值条件,其中倾斜因子为()k θ和常数C 均在下面所设。

~exp()exp()cos(,)cos(,)()[]2A ikl ikr n r n l E P d i l r σλ-=∑⎰⎰ 若设 1C i λ=; ~exp()()A ikl E Q l= ;cos(,)cos(,)()2n r n l K θ-= 则上式可化为:~~exp ikr E()()()P C E Q K d θσ=∑⎰⎰()r3. 基尔霍夫衍射公式的近似 菲涅耳衍射近似满足:2222221111111121111()()11[]222x x y y xx yy x y x y r z z z z z z ⎧⎫-+-+++=+=+-+⎨⎬⎩⎭ 当上式中1z 很大而使得第四项相对相位的贡献远小于π时,即满足:221()2x y k z π+<< 随着1z 的逐渐增大,从而可推得夫琅和费衍射公式如下: ~~2211,1111111exp()(,)exp[()]()exp[()]2ikz ik ik E x y x y E x y xx yy dx dy i z z z λ=+-+∑⎰⎰以上是矩孔的矩孔夫琅和费衍射复振幅计算公式的推导过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟
圆孔和矩孔的菲涅尔衍射模拟
一、原理
由惠更斯-菲涅尔原理可知接收屏上的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 image title('衍射屏形状')
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))
若为圆孔,方框内替换为以下程序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。

相关文档
最新文档