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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

..

..word.zl.

工程光学综合练习

-----圆、矩的菲涅尔衍射模拟

圆和矩的菲涅尔衍射模拟

一、原理

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

其中QUOTE为衍射屏上的复振幅分布,QUOTE为倾斜因子。根据基尔霍夫对此公式的完善,有

设衍射屏上点的坐标为〔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

图SEQ图\*ARABIC1〔r=12mm〕

图SEQ图\*ARABIC2〔r=20mm〕

图SEQ图\*ARABIC3(r=50mm)

三、矩的菲涅尔衍射

步骤与上述一样,仅需改变与衍射屏形状对应的矩阵。这里选择矩的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6

图SEQ图\*ARABIC4〔a=b=15mm〕

图SEQ图\*ARABIC5(a=b=20mm)

图SEQ图\*ARABIC6(a=b=30mm)

四、MATLAB程序

%所有长度单位为毫米

lamda=632.8e-6;

假设为圆孔,方框内替换为以下程序r=12;a=1;b=1;

假设为圆孔,方框内替换为以下程序

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

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([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));

文档评论(0)

192****6085 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档