矩孔菲涅而衍射MATLAB模拟

更新时间:2024-03-30 14:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于Matlab的矩孔菲涅尔衍射仿真

摘要

光学试验中衍射实验是非常重要的实验. 光的衍射是指光在传播过程中遇到障碍物时能够绕过障碍物的边缘前进的现象, 光的衍射现象为光的波动说提供了有力的证据. 衍射系统一般有光源、衍射屏和接受屏组成, 按照它们相互距离的大小可将衍射分为两大类, 一类是衍射屏与光源和接受屏的距离都是无穷远时的衍射, 称为夫琅禾费衍射, 一类是衍射屏与光源或接受屏的距离为有限远时的衍射称为菲涅尔衍射。

本文用Matlab软件主要针对矩孔菲涅尔衍射现象建立了数学模型,对衍射光强分布进行了编程运算,对衍射实验进行了仿真。

关键字:Matlab;矩孔菲涅尔衍射;仿真;光学实验

Abstract

Optical diffraction experiment is a very important experiment. is the diffraction of light propagation of light in the obstacles encountered in the process to bypass the obstacles when the forward edge of the phenomenon of light diffraction phenomenon of the wave theory of light provides a strong Evidence. diffraction systems generally have light, diffraction screen and accept the screen composition, size according to their distance from each other diffraction can be divided into two categories, one is the diffraction screen and the light source and the receiving screen is infinity when the distance between the diffraction Known as Fraunhofer diffraction, one is diffraction screen and the light source or accept a limited away from the screen when the diffraction is called Fresnel diffraction.

In this paper, Matlab software on a typical phenomenon of a mathematical model of single slit Fresnel diffraction, the diffraction intensity distribution of the programming operation, the diffraction experiment is simulated.

Key word: matlab;single slit Fresnel diffraction; simulation; optical experiment

一、菲涅尔衍射原理

由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为

?? =?? ?? Q ??

??

exp ??????

K θ dσ (1) ?? Q 为衍射屏上的复振幅分布,K(θ)为倾斜因子。根据基尔霍夫对此公式其中??

的完善,有:

1C=

????1

1+????????

≈1 2(1)式中给出的脉冲响应比到达时相当复杂,不过,根据实际条件可之简化。为此,首先将r表达为

?????02?????021

r=z[1+ +()]2 (2)

????将上式作二项式展开得:

K θ =

?????0 2+ ?????0 2 ?????0 2+ ?????0 2 2

r=z 1+?

2??28??4+? (3)

当衍射孔径和观察范围确定后,只要z取足够的大,对于相位因子而言,(3)

的展开式中只取前两项而舍弃全部高次项是可以的,也就是r取这样的近似值不会引起明显的相位误差,这种近似称为菲涅尔近似。

1?????021?????02

r=z 1+ + (4)

2??2??设衍射屏上点的坐标为(x1,y1),接收屏上点的坐标为(x,y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即

??222

3[(?????1)+(?????1)]????????? (5) 8??1

此时可得到菲涅尔衍射的计算公式

exp ??????1 ∞????

x,y = ??1,??1 exp ?????1 2+ ?????1 2 ????1????1 (6) ?? ??

iλ??12??1?∞

把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成

exp?(??????1)????2????2

2 2 ??+?? f ?? ??1,??1 exp ??1+??1?? x,y =exp (7)

iλ??12??12??1

上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。

相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x,y)以及(x1,y1)。

二.MATLAB仿真模拟

用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200点

2

进行运算。根据式(7),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:

取典型的He-Ne激光器波长λ=632.8nm,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的矩孔半径。

%所有长度单位为毫米 lamda=632.8e-6; k=2*pi/lamda; z=1000;

%先确定衍射屏

N=300; %圆屏采样点数 a=0.15; b=0.15;

[m,n]=meshgrid(linspace(-N/2,N/2-1,N)); I=rectpuls(m/(2*a)).*rectpuls(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))

3

图1(a=b=0.15mm,衍射距离1m)

图2(a=b=0.15mm,衍射距离0.5m)

4

图3(a=b=0.2mm,衍射距离1m)

图4(a=b=0.2mm,衍射距离0.5m)

5

图5(a=b=0.3mm,z=1m)

图6(a=b=0.3mm,z=0.5m)

6

图7(a=b=0.4mm,z=1m)

图7(a=b=0.4mm,z=0.5m)

7

总结:当矩孔大小逐渐增大时,可以看到由于菲涅尔衍射现象的减弱,干涉现象逐渐明显。相同衍射级数上,能量分层逐渐明显。对于相同孔径大小的矩孔,当观察屏距离越来越近时,菲涅尔衍射现象越明显,衍射条纹也更精细。

8

本文来源:https://www.bwwdw.com/article/o4er.html

Top