圆孔矩孔的菲涅尔衍射模拟matlab实现工程光学Word文档格式.docx
《圆孔矩孔的菲涅尔衍射模拟matlab实现工程光学Word文档格式.docx》由会员分享,可在线阅读,更多相关《圆孔矩孔的菲涅尔衍射模拟matlab实现工程光学Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式其中的完善,有
设衍射屏上点的坐标为(x,y),接收屏上点的坐标为(x,y),衍射屏与接收屏11间距离为z,当满足菲涅尔近似条件时,即1
此时可得到菲涅尔衍射的计算公式
把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成
上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。
相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x,y)以及(x,y)。
11二、圆孔菲涅尔衍射
用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:
取典型的He-Ne激光器波长λ=632.8nm,固定衍射屏和接收屏尺寸和相距
的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为50mm20mm,12mm,
)r=12mm1图(
)r=20mm图2(
3(r=50mm)
图
三、矩孔的菲涅尔衍射页脚
步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
这里选择矩孔的长宽相等,
6、,其衍射图样及强度分布如图30mm4、5,,分别为15mm20mm)(图4a=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;
若为圆孔,方框内替换为以下程序r=12;
a=1;
b=1;
I=zeros(N,N);
2-1,N));
2,N/[m,n]=meshgrid(linspace(-N/2);
/D=((m-a).^2+(n-b).^2).^(1i=find(D<
=r);
1孔半径范围内透射系数为%I(i)=1;
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([000;
111])%颜色以黑白区分
axisimage
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));
axisimage;
colormap(hot)
%figure,imshow(C);
衍射后的图样'
);
subplot(2,2,3);
mesh(x,y,abs(U));
%画三维图形
subplot(2,2,4);
plot(abs(Br))