细丝菲涅尔衍射MATLAB,任意孔型菲涅尔衍射matlab仿真.docx

任意孔型菲涅尔衍射matlab仿真

菲涅尔衍射Matlab仿真——《高等物理光学》实验报告学院: 物理学院 姓名: 廖宝鑫 学号:201628017307002 目录1.菲涅尔衍射衍射原理22.实验想法及步骤32.1实验思路32.2实验步骤33.程序源代码:34.运行结果展示45.结论6菲涅尔衍射衍射原理假设一个有限孔径,设孔径屏的直角坐标系为(x0,y0),并且观察平面与孔屏平行,两个平面间的间距为z,观察平面的坐标系为(x,y),这时,观察平面上的场可以表示为(1)根据近轴近似条件 (2) 同时利用傅里叶变换关系先对进行积分,得到如下的菲涅尔公式(3)令则式(3)可以写为 (4)对(4)做傅里叶变换可以得到 (5)式中:对于单位振幅入射平面波2.实验想法及步骤2.1实验思路根据以上原理,传递函数已知,只需要求得透射孔径的透过率函数,然后对透过率函数进行傅里叶变换得,并与传递函数相乘得到,最后做一个逆傅里叶变换得到。2.2实验步骤用ps绘图软件做出1024*1024的像素点图,在上面绘制各种孔径图形,然后用imread()读入图像得到二维矩阵,即孔径的透过率函数;对孔径二维矩阵做傅里叶变换,然后与传递函数相乘,最后对乘积做一次傅里叶逆变换得到菲涅尔衍射图像。3.程序源代码:N=1024; %图像像素点为1024*1024i=imread('star.jpg'); %将读入图像用01二值矩阵表示lev = graythresh(i);u = im2bw(i,lev);subplot(2,2,1),imshow(u); %绘制孔径图像title('孔径图像');lam=600e-6; %入射波长(mm)k=2*pi/lam; %波矢z=5000000; %观察屏距离(mm)[x,y]=meshgrid(linspace(-N/4,N/4,N));U=fftshift(fft2(u)); %对透过率函数做傅里叶变换h=exp(1j*k*z)*exp((1j*k*(x.^2+y.^2))/(2*z))/(1j*lam*z);%空间域传递函数H=fftshift(fft2(h)); %空间频率域传递函数A=fftshift(ifft2(H.*U)); %通过逆傅里叶变换得到衍射波的振幅subplot(2,2,2),imshow(log(1+abs(A)));title('衍射图像');I=abs(A).^2; %光强subplot(2,2,3),mesh(x,y,I),title('光强分布');subplot(2,2,4),plot(x(1,:),I(512,:)),title('光强二维分布');4.运行结果展示图1 圆孔的菲涅尔衍射图2 方形孔的菲涅尔衍射图3 星形孔的菲涅尔衍射图4 字母B的菲涅尔衍射图5 光栅菲涅尔衍射5.结论采用这一方法理论上可以模拟任意孔型的菲涅尔衍射图像,对于学习菲涅尔衍射有了更直观、形象的认识。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值