干涉法检测OAM模式值

1. 球面波干涉法检测

clc; clear;
N = 2000;
%光束参数
lambda = 632e-6;
k=2*pi/lambda;                  %波矢/波数
z = 0; w0 = 0.5; p = 0;

%定义平面
dxs = 10e-3; dys = dxs;
R1 = dxs*N/2;
x = linspace(-R1/2, R1/2, N);
y = linspace(-R1/2, R1/2, N);
[X, Y] = meshgrid(x, y);
theta =atan2(Y,X);             %角度
r = sqrt(X.^2 + Y.^2);

%产生OAM涡旋光束(这里的涡旋光束是简化的)
beam = exp(1i * theta * m);

%产生球面波
beam0 = exp(-1i*k/200*r);

I = (beam + beam0).*conj(beam + beam0);
figure();
imagesc(I);
colormap gray;
axis off;

2. 平面波干涉法检测

clc; clear;
N = 2000;
%光束参数
lambda = 632e-6;
k=2*pi/lambda;                  %波矢/波数
z = 0; w0 = 0.5; p = 0;

%定义平面
dxs = 10e-3; dys = dxs;
R1 = dxs*N/2;
x = linspace(-R1/2, R1/2, N);
y = linspace(-R1/2, R1/2, N);
[X, Y] = meshgrid(x, y);
theta =atan2(Y,X);             %角度
r = sqrt(X.^2 + Y.^2);

%产生OAM涡旋光束(这里的涡旋光束是简化的)
beam = exp(1i * theta * m);

%产生平面波
beam1 = exp(-1i*k*x);

I = (beam + beam1).*conj(beam + beam1);
figure();
imagesc(I)
colormap gray;
axis off;

3. 共轭干涉法检测

3.1 函数"lg_oam.m"

function [LG_OAM]=lg_oam(L,w0,P, lamda, x,y)
    [px,py]=meshgrid(x,y);
    r=sqrt(px.^2+py.^2);
    phai=atan2(py,px);
    z=0;

    k0=2*pi./lamda;
    zR=pi*w0^2/lamda;
    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

3.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

3.3 示例

clc; clear;
N = 1000;
[lambda,k,z,w0,x,y] = beam_parameter(N);

beam1 = lg_oam(2, w0, 0, lambda, x, y);
beam2 = lg_oam(-2, w0, 0, lambda, x, y);

I = (beam1 + beam2).*conj(beam1 + beam2);
figure();
imagesc(I);
colormap grap;
axis off;

4. Reference

  • 陈瑞山. 涡旋光束的高效产生与检测. 2018. 中国科学技术大学, PhD dissertation.
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值