Matlab:柱透镜检测涡旋光的拓扑荷数

   涡旋光束是一种相位呈螺旋状分布的结构光束,由于相位奇点的存在,其光强分布在空间中为形似“甜甜圈”的圆环。这种光束因其优异的空间分布特性,在光通信、光学操控、显微成像方面有着非常广泛的应用。

  涡旋光束特性的研究从1992年到现在,已经经历了30年之久,相关的产生和检测方法也都十分完备和全面,这里仅简单展示用柱透镜检测涡旋光束的拓扑荷数的Matlab仿真及相关的分析。

代码如下:

% ********柱透镜检测涡旋光束的拓扑荷数仿真*********
% 说明:函数生成涡旋光并经过柱透镜相位衍射

%% **********代码运行********************

clear,clc,close all;
f_VBs = f_Vortex_beams;                      %自定义函数声明
f_trans = f_Lightfield_transmission;

%输入光源参数设定******************
P = 0;                                       %拓扑荷数
L = 1;
lambda = 1550e-9;                            %光波长
w0 = 1.3e-3;                                 %束腰半径
z = 0;                                       %光场传输距离
x_length = 1e-2;                             %屏大小
y_length = 1e-2;
Nx = 1000;                                   %分辨率1000×1000
Ny = 1000;

E0 = f_VBs.LGs(P,L,lambda,w0,z,x_length,y_length,Nx,Ny);

figure;
subplot(1,2,1),imagesc(abs(E0).^2),colormap(subplot(1,2,1),hot),title('入射光场'),axis square,axis off;
subplot(1,2,2),imagesc(angle(E0)),colormap(subplot(1,2,2),gray),title('相位'),axis square,axis off;

[x,y] = meshgrid(linspace(-x_length/2,x_length/2,Nx),linspace(-y_length/2,y_length/2,Ny));

% *******添加柱透镜相位(有动画显示)*************
f_c = 200e-3;                                                         %柱透镜焦距
phi_c = 2*pi*(f_c-sqrt(abs(f_c).^2+abs(y).^2))./lambda;               %柱透镜相位
figure;imagesc(phi_c),colormap gray,title('柱透镜相位'),axis square,axis off;
E1 = E0.*exp(1i*phi_c);
p = 20;
f_sq = linspace(0.5*f_c,20*f_c,p);
for q = 1:p
    z_trans = f_sq(q);
    E2 = f_trans.matrix_multiplication(lambda,E1,x_length,y_length,20*x_length,20*y_length,Nx,Ny,z_trans);
    figure;imagesc(abs(E2).^2),colormap gray,title('柱透镜解'),axis square,axis off;
    drawnow;
    I = frame2im(getframe(gcf));
    [I,map] = rgb2ind(I,256);
    if q == 1
        imwrite(I,map,'Clens_test.gif','gif','Loopcount',inf,'DelayTime',0.1);
    else
        imwrite(I,map,'Clens_test.gif','gif','WriteMode','append','DelayTime',0.1);
    end
end

  当柱透镜焦距设定为50cm,接收屏的位置从0.5倍焦距处慢慢移动到20倍焦距位置时,仿真观察到的现象如下面的动画所示:

  而当柱透镜焦距较小时,例如10cm,接收屏的位置同样由0.5倍焦距处移动到20倍焦距处,那么条纹的变化则如下面的动画所示:

 可以观察到当柱透镜焦距变小时,接收到的条纹会相对变的更为细长,这说明柱透镜焦距是一个影响比较大的变量,而如果是在实验中,细长的条纹观察起来会比较困难。

另外,束腰半径也同样会产生一定的影响。当柱透镜焦距同样为10cm,其他条件不变且束腰半径由1.3mm改为1.0mm时,可以从下面的动画中看到,条纹比之前分离的更开,观察的更为清晰。所以在实验中如果遇到条纹不清晰的情况,可以适当缩小入射光束的束腰半径。

   尚存在的一个问题:实验中如果用柱透镜去解涡旋光时,会发现整个过程是光斑先由圆环变为条纹,继续衍射后再由条纹变回圆环,这个现象在仿真中并未观察到,这一问题尚待进一步探索。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值