喜欢的话给小编点个关注点个赞呀
完美涡旋光束简述:
完美涡旋光束是一种光强分布不随拓扑荷数的改变而改变的特殊光束,与普通涡旋光束相比,其可以大幅提升在微粒操纵、光纤传输等方面的应用效率。目前,在实验上最常用的完美涡旋产生方法是利用锥透镜产生完美涡旋光场。但在实验过程中需要重新放置锥透镜才能改变完美涡旋光束环大小,为了简化生成并克服上述缺点,这篇文章(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店博士生牛马赚点小钱