目录
1.程序功能描述
2.测试软件版本以及运行结果展示
3.核心程序
4.本算法原理
5.完整程序
1.程序功能描述
基于分数Talbot效应的阵列光学涡旋产生matlab模拟与仿真,分别测试正方形,旋转正方形以及六边形三种阵列形状下的光学涡旋。
2.测试软件版本以及运行结果展示
MATLAB2013b版本运行
测试正方形:
测试旋转正方形:
测试六边形:
(完整程序运行后无水印)
3.核心程序
................................................
%定义形状
Obj_AS = sum(sum(Lattices));
figure;
imshow(Lattices);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%相位,幅度,阵列
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if SEL == 1
R1 = Width;
C1 = Width;
[Phi,A,ZT] = func_square_para(Lamda,dx,Beta,R1,C1);
end
if SEL == 2
R1 = Width;
C1 = Width;
[Phi,A,ZT] = func_diamond_para(Lamda,dx,Beta,R1,C1);
end
if SEL == 3
R1 = floor(sqrt(3)*Width);
C1 = floor(sqrt(3)*Width);
[Phi,A,ZT] = func_hexagon_para(Lamda,dx,Beta,R1,C1);
end
L1 = floor(size(Lattices,1)/R1);
L2 = floor(size(Lattices,2)/C1);
XX = zeros(L1*R1,L2*C1);
for i = 1:L1
for j = 1:L2
XX(R1*(i-1)+1:R1*i,C1*(j-1)+1:C1*j) = Phi.*A;
end
end
%衍射
Repeat = 10;
for nn=1:Repeat
FrDiffract = FreeDiffract(Lattices,Lamda,dx,DDist,ZT);
DDist = DDist+1000;
end
U = XX.*FrDiffract(1:L1*R1,1:L2*C1);
figure;
imshow(imresize(U,[1024,1024]),[]);
figure;
imshow(imresize(Lattices,[1024,1024]),[]);
figure;
imshow(imresize(angle(U),[1024,1024]),[]);
24_006m
4.本算法原理
分数Talbot效应是一种特殊的光场传播现象,在光学领域有着广泛的应用,尤其是在阵列光学涡旋产生方面。分数Talbot效应可以用来生成复杂的光场分布,包括光学涡旋阵列。分数Talbot效应是经典Talbot效应的一个推广,它描述了衍射光场在自由空间中传播时出现周期性重现的现象。分数Talbot效应允许我们精确控制衍射光场在任意距离处的重现。
在经典的Talbot效应中,当平面波通过一个具有周期性结构的光栅时,其衍射光场会在光栅后方特定的距离处形成一系列重复的强度分布图案。这些图案与原始光栅的结构相似。具体而言,若光栅的周期为d,则在距离T=dm2λD处会出现第一个自像,其中m为整数,λ为波长,D为光栅的宽度。
分数Talbot效应则是指在介于两个整数倍Talbot距离之间的任意距离上,光场也会呈现出周期性的结构。这个距离可以用分数Talbot距离zα来表示,即:
分数Talbot效应的数学描述主要依赖于菲涅尔积分变换。菲涅尔积分变换给出了波前在自由空间中的传播规律,可以用下面的公式表示:
光学涡旋是指具有相位奇点的光束,其相位在奇点周围呈螺旋状变化。光学涡旋可以用螺旋相位板(SPP)产生,其相位分布可以表示为:
利用分数Talbot效应可以有效地生成光学涡旋阵列。假设初始平面波的相位分布为ϕ(r,θ),那么经过分数阶菲涅尔变换后,可以得到特定距离处的光场分布,该分布包含了多个光学涡旋。
5.完整程序
VVV