当前位置: 首页 > article >正文

涡旋光特性及多种模型、涡旋光仿真

涡旋光的特性

1.不同于高斯光束中间强边缘弱,涡旋光的中心强度为零,边缘强度较大,呈现甜甜圈分布。

2.其位相分布呈现分叉结构,中心具有无法定义位相的位相奇点。(关于光场的奇点大致可以分为三类,分别是位相奇点、偏振奇点和强度奇点(即焦点),后面将进行介绍)

3.波阵面呈现螺旋分布,具有纵向传播的轨道角动量(OAM)

图1  不同拓扑荷涡旋光的位相图和辐照度分布

图2  不同拓扑荷涡旋光位相的Winding特性 

 常见的涡旋光包括拉盖尔高斯光束、贝塞尔光束、花瓣模光束等

拉盖尔高斯光束 (LG): 

其中l表示拓扑荷数,即单位光子所携带的轨道角动量的数目,W0表示在光腰处的强度,Lpl是拉盖尔多项式,C是归一化常数。

贝塞尔高斯光束 (BG): 

其中l表示拓扑荷数,Jl是第1阶贝塞尔多项式,kr是径向波矢。 

 图3  不同阶数的LG光束和BG光束

拉盖尔高斯光束和贝塞尔高斯光束的主要区别在于后者具有无衍射的特性,事实上,当拉盖尔高斯光束的径向指数p足够大的时候也可以表现出无衍射的特性。这两种光束的径向分布特征主要取决于拉盖尔多项式和贝塞尔多项式。 

 图4  LG,BG和厄密高斯模(HG)的径向强度分布

 花瓣光束

当具有左右手性的涡旋光叠加在一起,花瓣模就形成了。像贝塞尔光束和拉盖尔高斯光束一样,花瓣模也是一种旋转对称的光束。即:

close all;clc; clear;
%% 达曼叉形光栅产生涡旋光
w=0.6;  % 入射光束束宽 毫米 mm     
a = 0.001; %% 曲率半径
l =-1.9; % 拓扑荷数
te = 1e-4/180*pi;%周期为 200nm 的光栅的入射角度
Angle1 =80; 
lamda = 808*1e-6; % 波长 mm
L0 = 2;    % 平面的尺寸 mm
L = 3*1e-3;   %衍射光在前表面上的尺寸 mm
L2 = 15;  %%原场视半宽 ×10^-3 rad
%% 参数定义
n = 2000; % 定义采样点数量
k = 2 * pi / lamda;tic;
scrsz = get(0,'ScreenSize');
figur1 = figure('position',[0 0 scrsz(3),scrsz(4)-80]);
% 定义初平面
xr = linspace(-L0/2,L0/2,10);x00 = linspace(-L0/2, L0/2, n);y00 = x00;[x0, y0] = meshgrid(x00, y00);

% 计算高斯光的复振幅
z = 2000;
r0 = sqrt(x0.^2+y0.^2); 

u0 = 1*exp((-r0.^2)./(w.^2));  %u0是高斯光束复振幅
I0 = u0.*conj(u0);     

subplot(1,3,1);
imagesc(x00,y00,I0);

%% 显示坐标区域
X_label1 = linspace(-L0/2,L0/2,5);
for i = 1:5    
Xi1{i} = num2str(X_label1(i));
end

set(gca,'xtick',X_label1,'XTickLabel',Xi1,'ytick',X_label1,'yTickLabel',Xi1,'Fontname','times new roman','Fontsize',20)

colormap(lambda2rgb(lamda*1e6));freezeColorsaxis equal;axis xy; 

axis([-1,1,-1,1])set(gca,'color','w','tickDir','in')title('Input Beam');

% 显示结果
xlabel('X (mm)');
ylabel('Y (mm)')%% 得到叉形光栅
V=0.5;P=0;x = linspace(-L/2, L/2, n);y = x;[X, Y] = meshgrid(x, y);
[theta,r] = cart2pol(X,Y);

%============================================% 创造LG波
Term1 =(((sqrt(2)*sqrt(X.^2+Y.^2)./w)).^abs(l));
Term2 = laguerre(P,l,(2.*(X.^2+Y.^2))/w^2); %[12]
Term3 = (exp(-(X.^2+Y.^2)/w^2));
Term4 = (exp(1i*l.*theta));
Z = V.*Term1.*Term2.*Term3.*Term4;

% Isolate Phase component of LG beam
Phase = angle(Z); 
% Create LG object wave
LG =exp(1i*(Phase)); 
% Create tilted plane reference wave

B=exp(1i*2*pi/lamda.*tand(Angle1).*X).*exp(-1i*2*pi*r.^2/lamda/a); 

% Simulate interference between object and reference wave
intf_patt = LG+B; 

hgram = intf_patt.*conj(intf_patt); %abs(intf_patt).*abs(intf_patt);
%Intensity of Interference Patten 1
hgram = hgram./max(max(hgram));
mask=imbinarize(hgram).*(r<1.5*1e-3);%Binarized intensity

subplot(1,3,2);
imagesc(x*1e3,y*1e3,mask);
axis equal;
axis xy;

%% 显示坐标区域
X_label = linspace(-L/2*1e3,L*1e3/2,5);
for i = 1:5  
  Xi{i} = num2str(X_label(i));
end
set(gca,'xtick',X_label,'XTickLabel',Xi,'ytick',X_label,'yTickLabel',Xi,'Fontname','times new roman','Fontsize',20);

axis([-L/2*1e3,L/2*1e3,-L/2*1e3,L/2*1e3])
colormap gray;
freezeColorstitle('Hologram Mask');
xlabel('X (\mum)');
ylabel('Y (\mum)');
set(gcf,'color','w');

%% 涡旋
% 物像公式
E = mask.*u0;
E0 = fftshift(fft2(E));
E_out = E0.*conj(E0);

% 频率的对应关系
uf=linspace(-1/abs(x0(1,2)-x0(1,1))/2,1/abs(x0(1,2)-x0(1,1))/2,n);
urad=uf*lamda;
vf=linspace(-1/abs(y0(2,1)-y0(1,1))/2,1/abs(y0(2,1)-y0(1,1))/2,n);
vrad=vf*lamda;
cen=round(n/2);
sp=100;
%% 裁剪图像
E_out_cropped = E_out((cen-sp:cen+sp),(cen-sp:cen+sp)).^0.5;

% 将图像放大两倍
E_out_enlarged = imresize(E_out_cropped, 6);
% 计算放大后图像的频率坐标范围
urad_enlarged = linspace(min(urad(cen-sp:cen+sp)), max(urad(cen-sp:cen+sp)), size(E_out_enlarged, 2));
vrad_enlarged = linspace(min(vrad(cen-sp:cen+sp)), max(vrad(cen-sp:cen+sp)), size(E_out_enlarged, 1));
% 找到图三中的最大强度值
max_intensity = max(E_out_enlarged(:));

% 将强度值归一化
normalized_E_out_enlarged = (E_out_enlarged / max_intensity);normalized_E_out_enlarged_1 = (E_out_enlarged / max(max(E_out_enlarged)) *1000);

% 显示放大后的图像图四
subplot(1,3,3);
imagesc(urad_enlarged*1e3, vrad_enlarged*1e3, normalized_E_out_enlarged_1);
%% 显示坐标区域
X_label2 = linspace(-L2,L2,5);
for i = 1:5   
 Xi2{i} = num2str(X_label2(i));
end
set(gca,'xtick',X_label2,'XTickLabel',Xi2,'ytick',X_label2,'yTickLabel',Xi2,'Fontname','times new roman','Fontsize',20)

colormap(lambda2rgb(lamda*1e6));
freezeColorsaxis equal;
axis xy;
axis xy;
axis([-L2,L2,-L2,L2])
title('Enlarged Far-field Pattern');
xlabel('\times 10^{-3} rad');
ylabel('\times 10^{-3} rad');
toc;

function result = laguerre(p,l,x)  
  result = 0;  
  if p == 0    
    result = 1;
elseif p == 1     
  result = 1+abs(l)-x;    
else       
  result = (1/p)*((2*p+l-1-x).*laguerre(p-1,abs(l),x)-(p+l-1)*laguerre(p-2,abs(l),x));    
   end
end

function I = lambda2rgb(lambda)
if  (lambda >= 380.0) && (lambda < 440.0)   
 r = -1.0 * (lambda - 440.0) / (440.0 - 380.0);    
g = 0.0;    
b = 1.0;

elseif (lambda >= 440.0) && (lambda < 490.0)    
r = 0.0;    
g = (lambda - 440.0) / (490.0 - 440.0);    
b = 1.0;
elseif (lambda >= 490.0) && (lambda < 510.0)    
r = 0.0;    
g = 1.0;    
b = -1.0 * (lambda - 510.0) / (510.0 - 490.0);elseif (lambda >= 510.0) && (lambda < 580.0)    
r = (lambda - 510.0) / (580.0 - 510.0);    
g = 1.0;    
b = 0.0;elseif (lambda >= 580.0) && (lambda < 645.0)    
r = 1.0;    
g = -1.0 * (lambda - 645.0) / (645.0 - 580.0);    
b = 0.0;elseif (lambda >= 645.0) && (lambda <= 900.0)    
r = 1.0;    
g = 0.0;    
b = 0.0;
else    
r = 0.0;    
g = 0.0;   
b = 0.0;
end
B = [0.0 0.0 0.0    r g b]; % 单色


http://www.kler.cn/a/529646.html

相关文章:

  • webrtc协议详细解释
  • PHP 常用函数2025.02
  • 使用LLaMA-Factory对AI进行认知的微调
  • MySQL数据库(二)- SQL
  • PHP中配置 variables_order详解
  • 智慧园区如何利用智能化手段提升居民幸福感与环境可持续性
  • final-关键字
  • 穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索
  • wax到底是什么意思
  • 【高级篇 / IPv6】(7.6) ❀ 03. 宽带IPv6 - ADSL拨号宽带上网配置 ❀ FortiGate 防火墙
  • 53. Uboot命令使用
  • 通过 Docker 部署 Mastodon 服务器 的教程
  • Vue.js 使用 `teleport` 实现全局挂载
  • 低成本、高附加值,具有较强的可扩展性和流通便利性的行业
  • 数据建模中的Chasm 陷阱
  • 更高效地使用Adobe软件,提升创作质量
  • Perl语言的函数实现
  • Echarts 封装通用组件
  • mysql大表的解决方案,及Hive分页查询
  • 康德哲学与自组织思想的渊源:从《判断力批判》到系统论的桥梁
  • 注解(Annotation)
  • 【深度学习】softmax回归的简洁实现
  • JPA中基本类型集合的映射与操作实例
  • [SAP ABAP] SE11 / SE16N 修改标准表(慎用)
  • java练习(5)
  • GMSL 明星产品之 MAX96724