Matlab:实现菲涅尔圆孔衍射仿真
本文基于光学原理,用Matlab实现菲涅尔圆孔衍射现象仿真。
以下使用了两种菲涅尔衍射的数值计算方法:
- 菲涅尔衍射积分的离散求和
- 菲涅尔衍射FFT法
Project Code
% 作者:ZQJ
% 日期:2021.7.22 星期四%**********************基于光场传输模拟菲涅尔圆孔衍射*************************
%% 菲涅尔衍射积分*******************************************
clear,clc,close all;
allmasks = f_Masks;
func_translight = f_Lightfield_transmission;
% ********************** 系统参数设定
lamda = 1550e-9; % 波长
N = 200; % 一边像素数目
x_length = 0.01; % 矩阵长度
w0 = 1e-3; % 高斯光束腰半径
Gs_z = 1e-3; % 高斯光传输距离
% ********************** 菲涅尔衍射
mask_hole = allmasks.circle_hole(x_length/N,N,0.08/N);
figure; subplot(1,2,1), imagesc(mask_hole); colormap gray;Gaussian_I = f_Gaussian_beams(w0,Gs_z,lamda,x_length,x_length,N,N);
subplot(1,2,2),imagesc(Gaussian_I), colormap hot;E0 = Gaussian_I.*mask_hole;
E1 = func_translight.Fresnel_integrate(lamda,E0,x_length,x_length,x_length,x_length,N,N,0.5);
figure,imagesc(abs(E1)), colormap hot;%% 菲涅尔衍射FFT法******************************************
clear,clc,close all;
allmasks = f_Masks;
func_translight = f_Lightfield_transmission;
% ********************** 系统参数设定
lamda = 1550e-9; % 波长
N = 200; % 一边像素数目
x_length = 0.01; % 矩阵长度
w0 = 1e-3; % 高斯光束腰半径
Gs_z = 1e-3; % 高斯光传输距离
% ********************** 菲涅尔衍射
mask_hole = allmasks.circle_hole(x_length/N,N,0.08/N);
figure; subplot(1,2,1), imagesc(mask_hole); colormap gray;Gaussian_I = f_Gaussian_beams(w0,Gs_z,lamda,x_length,x_length,N,N);
subplot(1,2,2),imagesc(Gaussian_I), colormap hot;E0 = Gaussian_I.*mask_hole;
E1 = func_translight.FFT_(lamda,E0,x_length,x_length,0.5);
figure,imagesc(abs(E1)), colormap hot;
Appendix Code
- 圆孔掩膜产生函数,参看Matlab:产生“几何图形掩膜”函数
- 高斯光产生函数,参看Matlab:实现高斯光束产生
- 菲涅尔积分算法函数:参看Matlab:实现光场传输函数
仿真结果图:
- 衍射前:
- 菲涅尔圆孔衍射光强图:
专栏内容供作者本人或大家学习使用,多多指教 ~
Matlab:实现菲涅尔圆孔衍射仿真相关推荐
- MATLAB利用菲涅尔公式仿真光的折射
从空气进入石英玻璃,计算振幅反射率.透射率和对应的绝对值: clear; close all;n1 = 1; %空气折射率 n2 = 1.45;%平板玻璃折射率 theta = 0:0.1:90;%角 ...
- 【光学】基于matlab GUI菲涅尔系数计算【含Matlab源码 1165期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI菲涅尔系数计算[含Matlab源码 1165期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- MATLAB:菲涅尔公式(反射/透射公式)
目录 案例1:光疏到光密介质 案例2:光密到光疏介质 案例1:光疏到光密介质 平面光波从空气(折射率为)入射到石英玻璃中(折射率为),用 MATLAB作出p.s分量的振幅反射率和振幅透射率以及它们的绝 ...
- 基于Matlab模拟菲涅尔公式
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- matlab拟合菲涅尔曲面,matlab-对菲涅尔公式画图
(3)反射系数r,反射率R与入射角x和折射率之比n的关系 clear; clc; clf; [n,zeta1]=meshgrid(0.6:0.05:1.5,0:pi/50:pi/2); zeta2=r ...
- Matlab 菲涅尔系数计算
1 简介 Matlab 菲涅尔系数计算 2 部分代码 function varargout = Fresnel(varargin) % FRESNEL MATLAB code for Fresnel ...
- 菲涅尔定理及MATLAB实现
** 菲涅尔定理及MATLAB实现 本文是学习胡章芳<MATLAB仿真及其在光学课程中的应用>和赵凯华<光学>这两本书时所做笔记. 1. 菲尼尔反射与折射公式 一般来说 ...
- matlab菲涅尔衍射_有问必答——SYNOPSYS安装体验课堂——可以设计菲涅尔透镜吗?...
问:SYNOPSYS可以设计菲涅尔透镜吗? 答:在USS中有多种菲涅尔面型,用户输入参数即可. 问:SYNOPSYS中具有的输入方式? 答:大家总是有个误区,以为SYNOPSYS需要输入命令运行,其实 ...
- 基于Matlab——夫琅禾夫衍射以及菲涅尔衍射
我以往在学习F分析的时候,编写了一个作业代码,在此附上供大家学习交流. 引言: 在傅里叶光学信息基础中,主要研究的是光在传播过程携带的信息如何去检测得到.如果光在自由空间(均匀 ...
- matlab 菲涅尔环,菲涅耳区讨论 - 通信原理与基础 - 通信人家园 - Powered by C114
1.菲涅耳区 当需要计算传播主区的几何尺寸时,要应用惠更斯-菲涅尔原理.惠更斯-菲涅尔原理认为,波在传播过程中,波面上的每一点都是一个进行二次辐射球面波(子波)的波源,而下一个波面,就是前一个波面所辐 ...
最新文章
- VMWARE 之 ESXI 主机标准安装
- 基于Mybatis,处理多表联合获取
- SQL Server数据库损坏、检测以及简单的修复办法
- intel lock汇编指令保障有序性
- python比较日期大小_Python日期的处理——datetime模块
- python的if语句例句_Python入门之if条件语句
- [渝粤教育] 潍坊职业学院 化工安全技术 参考 资料
- OFD文件结构--Signature.xml
- 61 SD配置-科目分配-分配税收确定的交货工厂
- 7、Ktor学习-配置服务器;
- c#获取本地ip地址网关子网掩码_C#设置本地网络如DNS、网关、子网掩码、IP等等...
- (2)安装宝塔与docker及docker镜像下载加速
- 世界首块10层3D打印PCB电路板问世!
- 诗歌集《触摸世界》30首摘录,对未来我是认真的
- VMware下装Ubuntu
- Bootstrap3【上手教程】
- 关于idea无法使用搜狗输入法打出汉字的解决方案(转)
- verilog hdl高级数字设计(一)
- 用python画卡通图_需要用Python和OpenCV制作一张卡通漫画版的图片
- SKLEARN实例:【泰坦尼克号生存者预测】
热门文章
- spearman相关系数(斯皮尔曼相关系数是什么意思)
- otool介绍(转http://www.mc2lab.com/?p=68)
- 华为主题包hwt下载_emui主题打包下载-emui主题打包 v1.0_手机乐园
- 工业机器人编程用c语言吗,工业机器人编程语言,工业机器人的编程方式
- .gpx文件转geojson
- 打不开malloc和free函数
- Killer网卡驱动导致蓝屏修复方法
- 介绍一款网页翻译插件
- 税务大比武网络攻防复习(完整版)
- Abaqus 子结构分析 实例