MATLAB仿真:贝塞尔光束到完美涡旋光束基于ABCD成像系统

喜欢的话给小编点个关注点个赞

完美涡旋光束简述:

完美涡旋光束是一种光强分布不随拓扑荷数的改变而改变的特殊光束,与普通涡旋光束相比,其可以大幅提升在微粒操纵、光纤传输等方面的应用效率。目前,在实验上最常用的完美涡旋产生方法是利用锥透镜产生完美涡旋光场。但在实验过程中需要重新放置锥透镜才能改变完美涡旋光束环大小,为了简化生成并克服上述缺点,这篇文章(DOI 10.1364/OL.40.000597)中演示了一种新技术,利用贝塞尔光束的傅里叶变换属性形成具有可控环半径的完美涡旋光束。此变换的推导是从理论上获得的,并用于生成完美的涡旋光束。在实验过程中,傅里叶变换可以用透镜的前表面传播到后焦面这一过程来表示,因此小编今天将带大家利用ABCD透镜成像系统模拟这一过程。

ABCD透镜成像系统:

贝塞尔高斯光束的复振幅形式可以表示为:

其中wg 是高斯光束束腰。kr=k*(ni-1)*alpha,ni为折射率,alpha为轴棱锥参数。在理论上,上式经过傅里叶变换后就可以得到完美涡旋光束的解析式:

其中解析式参数rr=kr*f/k,频率域束腰w0=2*f/k/wg,Il表示第一类修正贝塞尔函数。在实验过程中,我们需要用透镜成像来实现这一过程,这里我们可以用广义惠更斯-菲涅尔积分来表示这一系统,

当A=0,B=f,C=-1/f,D=1时这一积分可以表示傅里叶变换,即透镜系统。

广义惠更斯-菲涅尔积分和菲涅尔衍射积分区别:

广义惠更斯-菲涅尔积分和菲涅尔衍射积分实际上都是基于惠更斯-菲涅尔原理来描述光波传播的数学表达式,但广义惠更斯-菲涅尔积分提供了一个更为通用的方法来计算任意波前到另一位置的复振幅分布。它考虑了从波前所有点发出的次级波对观察点处场强的贡献,并且通常包含了相位因子、距离衰减以及方向性等因素。简而言之,广义惠更斯-菲涅尔积分是一个更广泛适用的原则,而菲涅尔衍射积分则是该原则在特定条件下的一个简化版本,专门用于解决近轴近似下的衍射问题。

仿真结果展示:

图1展示了源平面的拓扑荷为5的贝塞尔高斯光束,经ABCD透镜系统后的完美涡旋光束,和源平面利用解析式得到的完美涡旋光束以及他们各自的相位图。其中,高斯光束腰wg=0.05mm,折射率ni=1.3,轴棱锥参数alpha1=0.1,波长lambda=633e-6mm,透镜焦距f=400mm。我们发现两种方式得到的完美涡旋光束大小可以匹配。经ABCD透镜成像系统后的完美涡旋光束相位会发生扭曲,这是由于传输引起的。

图1拓扑荷为5的贝塞尔高斯光束,经ABCD透镜系统后的完美涡旋光束,和源平面利用解析式得到的完美涡旋光束以及他们各自的相位图

图2展示了不同拓扑荷对应的贝塞尔高斯涡旋光束以及对应的完美涡旋光束,可以看到完美涡旋光束的环大小不随拓扑荷的改变而改变。

图2:拓扑荷为5,10,20对应的贝塞尔高斯涡旋光束以及对应的完美涡旋光束

图3展示了拓扑荷为5的的完美涡旋光束在不同轴棱锥参数和束腰下的光强图,我们可以看出,轴棱锥参数可以改变完美涡旋光束环大小,束腰可以改变环的宽度。

图3:拓扑荷为5的的完美涡旋光束在不同轴棱锥参数和束腰下的光强图

MATLAB仿真代码:

clear; clc;  close all;
%更多完整代码及讲解进t店博士生牛马赚点小钱
% ----- Grids ----- %mm
L =0.8;%网格长度
Nxy =300;%格子数
dxy = L/Nxy;%网格间距
[xs,ys] = meshgrid((-Nxy/2:Nxy/2-1)*dxy);
[phis,rs]=cart2pol(xs,ys);
lambda =633e-6; % 波长mm
k= 2*pi/lambda; %波数
wg=0.08;%高斯光束腰
ni =1.3; % 折射率
l1 =20; % 拓扑荷数
alpha1 =0.1; % 轴棱锥参数
kr1 = k*(ni-1) *alpha1;
f=400;%透镜焦距
z=1*f;
ABCD=[1-z/f,z;-1/f,1];%ABCD矩阵
d22=lambda*z/(Nxy*dxy);
%% 由贝塞尔高斯光束做傅里叶变换到完美涡旋
Eb1=besselj(l1,kr1.*rs).*exp(1i*l1.*phis).*exp(-rs.^2/wg^2);%贝塞尔高斯光束
[x2, y2, E]= propABCD(Eb1, lambda, dxy, d22, ABCD);
I1=Eb1.*conj(Eb1);
I2=E.*conj(E);%完美涡旋
%% 完美涡旋的解析式
R1=kr1*f/k;%解析式参数
w0=2*f/k/wg;%频率域束腰
Eb2=(1i)^(l1-1)*(wg/w0).*exp(1i*l1.*phi2).*exp(-(r2.^2+R1^2)/w0^2).*besseli(l1,2*R1.*r2./w0^2);
I3=Eb2.*conj(Eb2);
%% 可视化
figure
subplot(2,3,1)
imagesc(I1);
axis off;axis square;
subplot(2,3,2)
imagesc(I2);
colormap('parula')
axis off;axis square;
subplot(2,3,3)
imagesc(I3);axis off;axis square;
subplot(2,3,4)
imagesc(angle(Eb1));axis off;axis square;
subplot(2,3,5)
imagesc(angle(E));axis off;axis square;
subplot(2,3,6)
imagesc(angle(Eb2));axis off;axis square;

有任何问题可以评论区留言哦

喜欢的话给小编点个关注点个赞

更多完整代码讲解进t博士生牛马赚点小钱

完美涡旋光束是一种特殊的激光光束,它的光束呈现出旋转的涡旋形状。这种光束在光学研究和实践应用中有着广泛的应用,例如在光学通信、光纤传输和材料加工等领域。本文将介绍如何使用matlab软件进行完美涡旋光束的模拟。 首先,我们需要了解涡旋光束的数学表达式,在matlab中输入公式: ρ=exp(-r^2/w^2); ψ=exp(i*m*theta)*rho*besselj(m,k*r); 其中,r和theta分别是极坐标系下的径向和角向坐标,w是光束的宽度,m是涡旋光束的角动量量子数,k是波数,besselj是贝塞尔函数。 接下来,我们需要用matlab进行程序编写,实现完美涡旋光束的模拟。具体步骤如下: 1. 定义涡旋光束的参数,包括波长、光束宽度、角动量量子数等。 2. 创建坐标网格,以描述光束的传播场景。可以使用meshgrid函数或者ndgrid函数完成这一步骤。 3. 计算每个坐标点上的极坐标系下的径向和角向坐标,这一步骤可使用cart2pol函数实现。 4. 计算每个坐标点上的涡旋光束场值,即通过上述数学公式计算出的光强度和相位,这一步骤使用前面提到的公式进行计算。 5. 绘制涡旋光束的图像,可选择使用surf函数或mesh函数绘制三维图像,或者使用contour函数绘制二维图像。 通过上述步骤,我们可以实现完美涡旋光束matlab模拟。使用该模拟可进行理论分析和实验设计,对涡旋光束的特性和应用进行深入研究。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值