圆孔矩孔的菲涅尔衍射模拟(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;若为圆孔,方框内替换为以下程序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; %孔半径范围内透射系数为1k=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; %取相同点数用于矩阵运算[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))XX大学XXXX学院5

矩孔菲涅尔衍射 matlab,圆孔矩孔的菲涅尔衍射模拟(matlab实现)-工程光学.docx相关推荐

  1. matlab平面电磁波入射_平面电磁波传播模拟-MATLAB程序

    %本程序用来模拟平面电磁波在空间中的传播 %假设电磁波沿着X轴正向传播,电场具有Z方向的分量Ez,磁场具有Y方向上的分量Hy %由于程序中的电场分量与磁场分量均与两个参数-时间和坐标有关,因此为了使 ...

  2. 基于Matlab的跨孔CT胖射线追踪算法(五)

    基于Matlab的跨孔CT胖射线追踪算法(五) CT技术是一种无损的工程物探检测技术,因其方法简单.分辨率高.理论上更可靠.结果更直观,被广泛的应用于各种工程.胖射线追踪是CT技术的一种正演算法,本文 ...

  3. 基于Matlab的跨孔CT胖射线追踪算法(四)

    基于Matlab的跨孔CT胖射线追踪算法(四) CT技术是一种无损的工程物探检测技术,因其方法简单.分辨率高.理论上更可靠.结果更直观,被广泛的应用于各种工程.胖射线追踪是CT技术的一种正演算法,本文 ...

  4. 基于Matlab的跨孔CT胖射线追踪算法(三)

    基于Matlab的跨孔CT胖射线追踪算法(三) CT技术是一种无损的工程物探检测技术,因其方法简单.分辨率高.理论上更可靠.结果更直观,被广泛的应用于各种工程.胖射线追踪是CT技术的一种正演算法,本文 ...

  5. 基于Matlab的跨孔CT胖射线追踪算法(二)

    基于Matlab的跨孔CT胖射线追踪算法(二) CT技术是一种无损的工程物探检测技术,因其方法简单.分辨率高.理论上更可靠.结果更直观,被广泛的应用于各种工程.胖射线追踪是CT技术的一种正演算法,本文 ...

  6. 基于Matlab的跨孔层析成像的最短路径法弯曲射线追踪(二)

    基于Matlab的跨孔层析成像的最短路径法弯曲射线追踪(二) 在文(一)中展示了曲射线追踪结果和部分源代码,本文说明原理.[^1] 文章目录 基于Matlab的跨孔层析成像的最短路径法弯曲射线追踪(二 ...

  7. 基于Matlab的跨孔层析成像的最短路径法弯曲射线追踪(一)

    基于Matlab的跨孔层析成像的最短路径法弯曲射线追踪(一) CT技术是一种无损的工程物探检测技术,因其方法简单.分辨率高.理论上更可靠.结果更直观,被广泛的应用于各种工程.弯曲射线追踪是CT技术的一 ...

  8. 基于Matlab的跨孔电磁波\跨孔雷达的胖射线追踪(一)

    基于Matlab的跨孔电磁波\跨孔雷达CT的胖射线追踪(一) CT技术是一种无损的工程物探检测技术,因其方法简单.分辨率高.理论上更可靠.结果更直观,被广泛的应用于各种工程.胖射线追踪是CT技术的一种 ...

  9. 基于Matlab的跨孔电磁波\跨孔雷达的直射线追踪(一)

    基于Matlab的跨孔电磁波\跨孔雷达CT的直射线追踪(一) CT技术是一种无损的工程物探检测技术,因其方法简单.分辨率高.理论上更可靠.结果更直观,被广泛的应用于各种工程.直射线追踪是CT技术的一种 ...

  10. 【光学】基于matlab GUI双孔干涉【含Matlab源码 2119期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI双孔干涉[含Matlab源码 2119期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费 ...

最新文章

  1. EOJ Monthly 2020.7 Sponsored by TuSimple 部分题解
  2. MySQL · 最佳实践 · 如何索引JSON字段
  3. git cherry-pick 详解 —— Git 学习笔记 18
  4. java 逐行写入csv_go|使用go读写CSV文件
  5. SpringCloud + Docker
  6. householder变换qr分解matlab_【基础教程】Matlab实现傅里叶变换
  7. CVPR 2019 论文大盘点-目标跟踪篇
  8. 改文案、删微博又道歉 广汽蔚来自导自演“比特币购车”乌龙案
  9. arcmap中使用python_ArcMap - 使用python更新列中的值
  10. ViewFlipper的简单使用
  11. js字符串常用方法详解
  12. 应用程序热补丁(一):如何用几行代码打造应用程序热补丁
  13. 云队友丨十年寒窗苦读为什么赢不过几代人的努力?
  14. 【盘点】2017杭州云栖大会迁云实战Workshop
  15. 杨忠愍斗严嵩,为国为民,名垂千古
  16. web前端简介 | 什么是前端
  17. 手机WAN远程唤醒主机
  18. XP计算机桌面锁定进不去,[xp系统开机进不了桌面]启动进不去桌面上,电脑开机进不去桌面上怎么解决...
  19. 姚舜:你曾经拼命努力过,哪怕一次吗?
  20. 2022年还有高职扩招全日制大专

热门文章

  1. 高并发高可用高性能的解决方案
  2. 2016年计算机网络考研真题及解析
  3. 3.14 使用画笔工具给头发着色 [Ps教程]
  4. 计算2+4+6...+100的值 python_Python100例核心知识,你知道多少
  5. STM32驱动WS2811
  6. ibm服务器刷主板系统,IBM X3850 X5服务器更换主板后修改主板信息
  7. 银行信贷系统java_java毕业设计_springboot框架的银行信贷系统
  8. ArcGis 拓扑检查——狭长角锐角代码C#
  9. windows winrar 指令_WINRAR 命令行语法
  10. 0x80070079信号灯超时_[修复]错误0x80070079:信号量超时期限已过 | MOS86