液晶空间光调制器(SLM)产生光栅和轨道角动量相位图的制作方法
时间:2020-09-28 阅读:3042
液晶空间光调制器由像素构成,每个像素都能实现0到2pi的相位的调制量。当空间光调制器加载光栅图时能够实现光束偏转,也可以
叠加螺旋相位的图,产生轨道角动量,下文就是介绍了三种方法:1. 产生单个光栅,2. 轨道角动量,3. 多个光束叠加。
Matlab下8bit图片的单个像素表示范围可以是0-255之间的整数,也可以是0-1之间的小数,因为0-1表示有更加方便,所以下面都是
采用这种方法,即0对应相位延迟量为零,1对应相位延迟量为2pi。
光栅制作单个光斑
方法1:易于控制X和Y方向的周期数量
%% 光栅
% X和Y方向的斜面,取值范围0-1
[x, y]= meshgrid(linspace(0, 1, 512));
% 光栅的数量
M = 3;
N = 4;
% 叠加光栅后,X方向周期为3,Y方向周期为4
z = M*x+N*y;
z = mod(z, 1);
imshow(z);
方法2:对光栅偏转的角度大小更加方便
%% 直接输入偏转角度,计算光栅
theta = pi/6;
% X方向周期为cos(tehta)
% Y方向周期为sin(theta)
z = x/cos(theta)+y/sin(theta);
z = mod(z, 1);
imshow(z);
轨道角动量制作
没有倾斜的角动量
%% 因为要建立极坐标,将图片中心作为原点
[x, y] = meshgrid(-255:256);
polar = x+1i*y;
r = abs(polar);
fai = angle(polar);
fai = mat2gray(fai);
N = 3; % 轨道角动量大小
fai = mod(N*fai, 1);
imshow(fai)
带倾斜的角动量
% 直接在光斑上叠加光栅
% z表示光栅,fai是角动量
guidao = z+fai;
guidao = mod(guidao, 1);
imshow(guidao);
多个光斑叠加
每个光斑都使用E指数的形式表示,多个光斑叠加后相位部分,这里以两个轨道角动量叠加为例
%% 多个光斑叠加
M = 2;
S1 = exp(1i*2*pi*(-M*fai))+exp(1i*2*pi*(M*fai));
phase = angle(S1);
% phase的范围是-pi到pi之间
% -pi对应图片的0值,pi对应图片中的1值
% 因此采用下面方法进行归一化
phase = (phase + pi)/2/pi;
phase = phase/2;
imshow(phase);
您可以通过我们的了解更多的产品信息,或直接4006-888-532。