MATLAB角谱传播实现!FFT2光斑实际尺寸是多少?
作者B站ID“大洋咩咩咩咩”,投稿有对该代码的讲解视频(角谱传播),如果有那个地方有疑问可以去视频中寻找答案~
文章及代码解决三个问题:
夫琅禾费衍射(理想凸透镜成像)做FFT2后,仿真光斑的实际尺寸确定?
光场在自由空间传播一定距离z后的光斑什么样,怎么用FFT2做?
如何仿真泽尼克多项式光斑,例如慧差光斑,以及实际尺寸?
clc,clear
N_obj_sam=512; %采样频率
D=2.5;%% 圆孔径mm
plotW=4;%% 绘图宽度mm
z=600; %% 衍射距离 mm
lambda=632.8e-6; %% 波长mm
N=6;%% 补零数
%============================================
%物光场plotW2=plotW/2;R=D/2;Obj_x=linspace(-plotW2,plotW2,N_obj_sam);[Obj_x,Obj_y]=meshgrid(Obj_x,Obj_x);Obj_A2=zeros(N_obj_sam);Obj_P=Obj_A2;Obj_A2((Obj_x.^2+Obj_y.^2)<=R^2)=1;
Obj_E=Obj_A2.*exp(1i*Obj_P);
%============================================
%物光场补零Obj_Ezf=F_ZerosFilling(Obj_E,N_obj_sam,N*N_obj_sam);A=fftshift(fft2(fftshift(Obj_Ezf)));[m,n]=size(A);%% 角谱的规格dtheta=lambda/(N*plotW);%% 角谱角分辨率A_x=(-m/2:m/2-1)*dtheta;A_y=(-n/2:n/2-1)*dtheta;% 角谱的角分布[A_x,A_y]=meshgrid(A_x,A_y);%% 构造角谱
%角谱传播k=2*pi/lambda;%波矢量H=exp(1i*k*z*sqrt(1-(A_x.^2+A_y.^2)));%自由空间光学传递函数B=A.*H;
%逆变换成像传播Img_Ezf=fftshift(ifft2(fftshift(B)));Img_E=F_UnZerosFilling(Img_Ezf,N_obj_sam*2);
subplot(231)F_2DPlot(Obj_A2,plotW2,'mm','mm',strcat('物透过率 R=',num2str(R),'mm'))
subplot(232)F_2DPlot(Obj_P,plotW2,'mm','mm',strcat('物相位 \lambda=',num2str(lambda*10^6),'nm'))
subplot(233)x_plot_obj=linspace(-plotW2,plotW2,N_obj_sam);plot(x_plot_obj,Obj_A2(N_obj_sam/2,:),'color',[0 0 0],'LineWidth',3)xlabel('mm');ylabel('I');xlim([-plotW2 plotW2]);title(strcat('通光孔径 D=',num2str(D),'mm'))
subplot(234)
Img_A2=F_NorOne(abs(Img_E).^2);F_2DPlot(Img_A2,plotW,'mm','mm',strcat('像面光斑 z=',num2str(z),'mm'))
subplot(235)F_2DPlot(angle(Img_E),plotW,'mm','mm','像面相位')
subplot(236)x_plot_img=linspace(-plotW,plotW,N_obj_sam*2);plot(x_plot_img,Img_A2(N_obj_sam,:),'color',[0 0 0],'LineWidth',3)xlabel('mm');ylabel('I');xlim([-plotW plotW]);title(strcat('艾里斑半径理论值 R_A_i_r_y= 1.22\lambdaz/D=',num2str(1.22*lambda*z/D),'mm'))function F_2DPlot(z,k,xl,yl,tl)
%本函数目的:绘制3维曲面图,去边框,带标题和label
%输入变量:k为放缩坐标轴的因子
image([-1*k 1*k],[-1*k 1*k],z,'CDataMapping','scaled')
xlabel(xl);
ylabel(yl);
title(tl);
axis xy
axis equal
xlim([-1*k 1*k]);
ylim([-1*k 1*k]);
view([0 90]);
endfunction MFill=F_ZerosFilling(MOnes,aOnes_F,NumPixcel)
%子函数序号#7
MFill=zeros(NumPixcel);
[aOnes_T,~]=size(MOnes);%实际输入的波前函数,可以是366或367
StartP=(NumPixcel-aOnes_F)/2;%获取规格差距
MFill(StartP+1:StartP+aOnes_T,StartP+1:StartP+aOnes_T)=MOnes;
endfunction O_A2_Plot=F_UnZerosFilling(O_A2,Samp_p)
[a,b]=size(O_A2);
O_A2_Plot=O_A2(a/2-Samp_p/2+1:a/2+Samp_p/2,b/2-Samp_p/2+1:b/2+Samp_p/2);
endfunction A_n=F_NorOne(A)
mA=min(A(:));
A=A-mA;
MA=max(A(:));
A_n=A/MA;
end
MATLAB角谱传播实现!FFT2光斑实际尺寸是多少?相关推荐
- matlab 角谱传播,复振幅分布的角谱及角谱的传播.ppt
复振幅分布的角谱及角谱的传播.ppt 光波的数学描述平面波的空间频率-信息光学中最基本的概念 光波的数学描述平面波的空间频率-信息光学中最基本的概念 §2-2 复振幅分布的角谱及角谱的传播 1.复振幅 ...
- 角谱传播法matlab模拟,角谱法分析高斯光
矢量高斯光束传播分析和近轴球面近似有 效性 卡尔G.陈,保罗T.康科拉,胡安费雷拉,拉尔夫·K.海尔曼,和Mark L.影子城堡 麻省理工大学,剑桥,马萨诸塞州02139 收稿2001年3月5日;五月 ...
- 图像处理——相位恢复(GS,TIE,改进型角谱迭代法)(已更新代码)
利用GS,TIE,改进型角谱迭代算法进行相位恢复 角谱传播理论 角谱传播理论可以翻阅傅里叶光学的书,就能找到定量分析的计算公式,可以分析某个平面的角谱垂直传播到另外一个平面的角谱,得到其振幅与相位信息 ...
- 浅谈光波近场传播表述的方式 ——角谱法
光波近场传播的三种表述方式 角谱法 卷积 球面波近似 主要介绍最常用的角谱法,也是目前最好的方法. 利用角谱法模拟激光光波的传输,角谱法是描述衍射的一种替代变换方法,给定在z=0的平面Σ0的电场E0( ...
- 角谱法 matlab,一种基于部分角谱法的快速全息图生成和高质量再现方法与流程...
本发明涉及一种全息显示领域,特别是全息图的生成和再现方法. 背景技术: 全息显示能提供给观看者需要的所有信息,因此被公认为最有前景的三维显示技术.但是,目前的全息显示技术依然有一些问题亟待解决.其中之 ...
- 【声传播】——角谱理论、模式理论及三维傅里叶变换
序: 感觉三者在一定程度上有相似性,故将其整理至此文 瞬态声波方程与稳态声波方程 瞬态声波方程 概念:描述时域空间域(波动方程) ∇2p=1c02∂2p∂t2\nabla^2 p=\frac{1}{c ...
- matlab角点坐标获取,MatLab角点检测(harris经典程序) | 学步园
这是源博客的出处,鄙人转过来是为了更好的保存!供大家一起学习!已将原始的博客的文章的位置附在上面! 至于代码的完整性和可运行性需要大家去自己考量! %MatLab角点检测程序harris. ori_i ...
- matlab光波耦合光栅,均匀布拉格光栅的原理及MATLAB反射谱仿真
精品文档 . 1欢迎下载 均匀布拉格光栅的原理及MATLAB 反射谱仿真 张睿 一. 前言 光纤光栅是纤芯折射率受到周期性微扰而形成的一种全光纤无源器件,自问世以来,由 于其与光纤通信系统兼容.体积小 ...
- matlab角接触球轴承和圆锥滚子轴承轴承寿命校核
** matlab角接触球轴承和圆锥滚子轴承轴承寿命校核 ** 自己修改轴承所受的力,以及受力方向等 Fr1=1000; %轴承1上的径向力,单位N%%%%%%%%%%%%%%%%%%%%%%%%%% ...
最新文章
- iOS SDWEBImage和collectionView的组合,以及collectionView的随意间距设置
- Dynamics CRM2013/2015 检索实体属性的两种方式
- 秒后面的单位是什么_比光年还大的长度单位,你知道几个?
- 【转】C++中的SFINAE
- 虚拟化技术之KVM安装与使用
- shell脚本,结合expect给当前网段所有主机分发任意文件
- webservice发布及远程调用
- 6个高级Python技巧
- slam无人车在web端地图编辑
- 基于情感词典的情感值分析
- 数据库存储I/O类型分析与配置
- idea中maven项目,输出在控制台上的中文乱码问题
- 无人机项目跟踪记录五十八--原理图控制部分分析
- React学习笔记—简易信息管理,实现CUD
- 64位系统可以装python32位吗_Python - pyinstaller在64位系统下打包32位程序
- wallpaper动态壁纸软件
- ITRON入门学习之实时操作系统的意义与价值
- 对待事物,乐观积极。
- 高数-极限-存在与连续1
- 利用Java通过阿里云对图片进行内容审核
热门文章
- (一)神经网络和深度学习
- MongoDB数据库下载和安装(详细步骤)
- 微信小程序开发之——婚礼邀请函-照片页面(4.4)
- 东方财富网 python工程师咋样_施东-东方财富网-6年高级python工程师-猿急送
- 消息推送服务器推pc,PC浏览器消息实时推送的解决方案 ——EPush推送平台
- 在word中添加字体;合并PPT
- Redmi Note 9 6000mAh的续航怪兽:一天一次充用3年依然能打啊!
- eSIM+NB-IOT解决智能井盖多场景下应用的痛点问题
- KeePass账号密码自动填充, Auto-Type【Ctrl+Shift+V】【桌面应用浏览器页面 - 无需安装任何插件】
- [绍棠_Swift] swift4.0 NSMutableAttributeString的Range和NSRange问题