1. 螺旋谱理论
2005年,Torner L等人发现任何OAM光束
u
(
r
,
θ
,
z
)
u(r,\theta ,z)
u(r,θ,z)能够分解为一系列螺旋谐波函数
e
x
p
(
i
l
θ
)
exp(il\theta)
exp(ilθ)的线性叠加,即螺旋谱:
u
(
r
,
θ
,
z
)
=
1
2
π
∑
l
=
−
∞
∞
a
l
(
r
,
z
)
e
x
p
(
i
l
θ
)
u(r,\theta ,z)=\frac{1}{\sqrt{2\pi}}\sum_{l=-\infty}^{\infty}a_l(r,z)exp(il\theta)
u(r,θ,z)=2π1l=−∞∑∞al(r,z)exp(ilθ)
其中, a l ( r , z ) = 1 2 π ∫ 0 2 π u ( r , θ , z ) ⋅ e x p ( − i l θ ) d θ a_l(r,z)=\frac{1}{\sqrt{2\pi}}\int_{0}^{2\pi}u(r,\theta ,z)\cdot exp(-il\theta) d\theta al(r,z)=2π1∫02πu(r,θ,z)⋅exp(−ilθ)dθ.
若对
a
l
(
r
,
z
)
a_l(r,z)
al(r,z)径向积分则得到
P
l
P_l
Pl,代表了经分解后,不同模态分量上OAM光束的相对功率值:
P
l
=
∫
0
∞
∣
a
l
(
r
,
z
)
∣
2
r
d
r
P_l=\int_{0}^{\infty}|a_l(r,z)|^2rdr
Pl=∫0∞∣al(r,z)∣2rdr
则光束的总功率表示为:
P
=
∫
0
2
π
∫
0
∞
∣
u
(
r
,
θ
,
z
)
∣
r
d
r
d
θ
=
∑
l
P
l
P=\int_{0}^{2\pi}\int_{0}^{\infty}|u(r,\theta ,z)|rdrd\theta =\sum_{l}P_l
P=∫02π∫0∞∣u(r,θ,z)∣rdrdθ=l∑Pl
由
P
l
P_l
Pl和
P
P
P可得到任何OAM光束的螺旋谱:
R
l
=
P
l
P
R_l=\frac{P_l}{P}
Rl=PPl
在OAM通信系统中, 信息是通过不同的OAM模式传输的. 接收端需要准确识别出这些模式以正确解调接收到的信号. 螺旋谱提供了一种量化各个模式的相对功率的方法, 有助于解调过程中正确识别和重建信号.
2. 代码
2.1 生成OAM涡旋光束(拉盖尔-高斯光束)
2.1.1 文件"lg_oam.m"
function [LG_OAM]=lg_oam(L,w0,P,lambda,x,y)
% x=linspace(-T*w0,T*w0,N);
% y=linspace(-T*w0,T*w0,N);
[px,py]=meshgrid(x,y);
r=sqrt(px.^2+py.^2);
phai=atan2(py,px);
z=0;
k0=2*pi./lambda;
zR=pi*w0^2/lambda;
wz=w0.*sqrt((z.^2+zR.^2)./zR.^2);
Clp=sqrt(2.*factorial(P)./(pi.*factorial(P+abs(L))));
X=2*(r.^2)./wz^2;
LG_poly=0;
for n=1:P+1
l=n-1;
LG_poly=LG_poly+(-1)^l*((factorial(P+abs(L)))/((factorial(P-l))*(factorial(abs(L)+l))*(factorial(l)))).*X.^l;
end
E1=wz^(-1).*(sqrt(2)*sqrt(r.^2)/wz).^abs(L).*LG_poly.*exp(-(r.^2)./wz^2);
E2=exp((-1i*k0*(r.^2)*z)/(2*(z^2+zR^2)));
E3=exp(-1i.*(2.*P+abs(L)+1).*atan(z/zR));
LG_OAM=Clp.*E1.*E2.*E3.*exp(-1i.*L.*phai);
end
2.1.2 文件"beam_parameter.m"
function [lambda,k,z,w0,x,y] = beam_parameter(N)
lambda = 0.532e-6;
k = 2 * pi / lambda; %波数
z = 0;
w0 = 0.005;
T0 = 4;
R1 = T0 * w0; %范围
x = linspace(-R1, R1, N);
y = linspace(-R1, R1, N);
end
2.1.3 示例
clc; clear;
N = 1000;
%%产生OAM涡旋光束
[lambda,k,z,w0,x,y] = beam_parameter(N);
beam1 = lg_oam(-5,w0,0,lambda,x,y);
beam2 = lg_oam(-3,w0,0,lambda,x,y);
beam3 = lg_oam(2,w0,0,lambda,x,y);
beam4 = lg_oam(4,w0,0,lambda,x,y);
beam = beam1 + beam2 + beam3 + beam4;
%%显示光强图
figure();
imagesc(x,y,abs(beam).^2);
colormap hot;
axis off;
title('OAM光束光强图');
2.2 数值仿真螺旋功率谱-文件"spectrum.m"
function result = spectrum(beam,w0,z,lambda,x,y)
res = zeros(1, 17);
for mode=-8:8
beam0 = lg_oam(mode,w0,0,lambda,x,y);
beam_abs = beam.*conj(beam0);
res(1,mode+9) = abs(sum(beam_abs(:)));
end
all_sum = sum(res(1,:));
result = res/all_sum;
end
2.3 利用螺旋功率谱检测OAM叠加态涡旋光束
clc; clear;
N = 1000;
%%产生OAM涡旋光束
[lambda,k,z,w0,x,y] = beam_parameter(N);
beam1 = lg_oam(-5,w0,0,lambda,x,y); %OAM模式值l=-5, 径向指数p=0
beam2 = lg_oam(-3,w0,0,lambda,x,y); %OAM模式值l=-3, 径向指数p=0
beam3 = lg_oam(2,w0,0,lambda,x,y); %OAM模式值l=2, 径向指数p=0
beam4 = lg_oam(4,w0,0,lambda,x,y); %OAM模式值l=4, 径向指数p=0
beam = beam1 + beam2 + beam3 + beam4;
%%得到叠加态涡旋光束的螺旋功率谱
result = spectrum(beam,w0,z,lambda,x,y);
%%显示图像
figure();
m = -8:8;
bar(m,result);
title('归一化螺旋功率谱');
xlabel('OAM模态(拓扑荷数)');
axis([-9,9,0,1]);