一、基本原理
1、何为涡旋光
涡旋(Vortex)有时也称旋涡。是指一种半径很小的圆柱在静止流体中旋转引起周围流体作圆周运动的流动现象。
一般旋涡内部有一涡量的密集区,称涡核,其运动类似刚体旋转。
上述圆柱体即相似于旋涡的涡核。在它的外部,流体的圆周速度与半径成反比;在它内部,则与半径成正比,在涡心上圆周速度为零。涡旋现象在日常生活中并不陌生,如天气预报中常说的热带气旋、沙漠中会起的龙卷风、宇宙中的旋涡星系等。
随着科学的不断进步以及技术的持续发展,人们逐渐发现在物理学中光束也存在一种涡旋现象,具有涡旋形光场分布的光束称之为涡旋光(Optical Vortex)。
涡旋光具有柱对称的传播性质,这种光束的中心是一个暗核,即中心光场强度为零,该中心区域被称为光束奇点(Singularities)或相位奇点(Phase Singularities)。
在涡旋光传播过程中,奇点处光强,始终保持为零。
2、涡旋光的基本原理
涡旋光束波函数中均携带相位因子,其中l为拓扑荷数,可以为整数,亦可为分数。沿传播方向z轴涡旋光相位该变量为,为方位角,是坡印亭矢量与z轴的夹角。
涡旋光场相位分布在柱坐标系下的表达式为,其中z为沿z轴传播距离,k为波数,大小为。可以得到涡旋光长E的表达式为:
式中,为振幅强度。
上述式子是普遍涡旋光表达式,标准基模涡旋光场为拉盖尔-高斯模式(LG),LG模式同时也是光场的一种基模态,可以作为任意一种光束的一组基底。拉盖尔-高斯模式光束表达式详见文章【Phys. Rev. A 1992, 45, (11), 8185-8189. Doi: 10.1103/PhysRevA.45.8185】
二、matlab代码
1、LG模式的matlab实现
下面是基模LG模式涡旋光束的代码实现。
H = 1920; V = 1080; %定义像素尺寸
y=linspace(-(V/2),(V/2)-1,V);
x=linspace(-(H/2),(H/2)-1,H);
x = x*2e-5; %%Scales the hologram in the V direction
y = y*2e-5; %%Scales the hologran in the H direction
[X,Y]=meshgrid(x,y);
phi = angle(X+1i*Y);
rho = sqrt(X.^2+Y.^2);
lambda = 532e-6;
w0 = 0.0025;
z = 0.0000001;
k = 2*pi/lambda;
zr = pi*w0^2/lambda;
w = w0*sqrt(1+(z/zr)^2);
R = z*(1+(zr/z)^2);
l = 15; % 拓扑荷数
m = -15;
n = 0; % 镜像节次
p = 0;
imName = 'LG-SLM';
phaseblaze = true;
%% 拉盖尔-高斯函数
La1 = Laguerre(p,abs(l),2*rho.^2/(w^2));
LG1=w0/w*sqrt(2*factorial(p)/(pi*factorial(abs(l)+p)))*(2*rho.^2/w^2).^(abs(l)/2).*La1.*exp(1i*(2*p+l+1)*atan(z/zr)).*exp(-rho.^2/w^2).*exp(-1i*k*rho.^2/R).*exp(-1i*(l.*phi));
I = sqrt(LG1.*conj(LG1));
ph = angle(LG1);
%% 光束绘制
intensity = abs(I);
figure();imshow(intensity,[],'border','tight'); colormap parula; %colorbar;
% 相位
phase = angle(LG);
figure();imshow(phase,[],'border','tight'); colormap gray;
2、绘制效果
拓扑荷数为10
振幅
相位
拓扑荷数为±15
振幅
相位