偏振成像 超构透镜模型 超表面 FDTD仿真 复现论文:2019年 APL Midinfrared real-time polarization imaging with all-dielectric metasurfaces 论文介绍:全介质实时偏振聚焦成像超构透镜模型,可以实现X Y RCP LCP四个偏振态的实时分离和聚焦的功能,通过四个强度的计算可以得到入射光场的偏振信息 超构透镜由硅纳米柱构成,通过偏振复用和空间复用原理同时调控四个偏振态的光场相应 案例内容:主要包括硅纳米柱的单元结构仿真、相位和透射率的参数化扫描,偏振复用超构透镜的偏振解耦合相位计算代码,空间复用的超构透镜模型建模脚本,以及多偏振聚焦的超构透镜模型,和对应的远场电场分布计算; 案例包括fdtd模型、fdtd建模脚本、Matlab计算相位代码和模型仿真复现结果,以及一份word教程,超构透镜的偏振复用和解耦合相位计算代码可用于任意偏振调控设计,具备可拓展性

1. 项目概述与背景

本代码库实现了一套完整的红外偏振成像超构透镜的建模、设计与仿真流程。基于2019年APL期刊提出的中红外实时偏振成像技术,该方案通过创新的线偏振复用和圆偏振复用原理,结合空间插空排列方法,在10.6μm长波红外波段实现了实时偏振成像功能。整个代码系统采用模块化设计,涵盖了从基础单元结构仿真到完整系统性能验证的全过程。

2. 系统架构与完整工作流程

2.1 三级模块化架构体系

系统采用严格的三级模块化架构,各模块之间通过数据文件进行衔接,形成完整的处理流水线:

第一级:单元结构仿真模块(Nanofins/)

  • 输入:纳米柱结构参数(长度、宽度范围)
  • 输出:相位延迟和透射率数据库
  • 文件:SAVE.lsf

第二级:相位计算与参数匹配模块(matlab code/)

  • 输入:扫参得到的相位/透射率数据
  • 输出:超构透镜结构参数矩阵
  • 文件:phaseunit.mtargetphase.mphase2length.m

第三级:超构透镜构建与仿真模块(FDTD code/)

  • 输入:结构参数矩阵
  • 输出:远场聚焦性能分析
  • 文件:structurelens.lsfmetalensfocal lens.lsf

2.2 数据流与接口设计

各模块之间通过MAT文件格式进行数据传递,确保数据的一致性和可追溯性:

  • 单元仿真 → 相位匹配:phix.matTx.mat
  • 相位匹配 → 结构构建:lengthsampleLP.matwidthsampleLP.mat
  • 整个流程形成闭环的数据生态系统

3. 核心模块功能深度解析

3.1 单元结构仿真模块(SAVE.lsf)

3.1.1 基础参数设置功能

该模块首先定义了纳米柱单元的基本仿真环境:

  • 材料系统:硅材料(Silicon - Palik)
  • 工作波长:10.6μm
  • 结构参数:周期4.7μm,高度10μm
  • 扫参范围:长度和宽度各61个采样点(1-4μm)

3.1.2 电磁响应数据提取功能

代码通过FDTD Solutions的API接口实现批量数据采集:

-- 获取透射率数据
T_Ex = getsweepresult("width","T");
T = pinch(T_Ex.T);

-- 获取相位延迟数据  
phase_Ex = getsweepresult("width","phase");
phase = pinch(angle(phase_Ex.Ex));

getsweepresult函数从参数扫描结果中提取指定监控器的数据,pinch函数将多维数据压缩为二维矩阵,便于后续处理。

3.1.3 数据标准化输出功能

模块将原始仿真数据转换为标准化的MAT文件格式,为MATLAB处理提供统一接口。这种设计实现了仿真平台与数据处理平台的无缝衔接。

3.2 相位单元库构建模块(phase_unit.m)

3.2.1 数据预处理与可视化功能

该模块首先对原始相位数据进行规范化处理:

phix = wrapTo2Pi(phase);  % 相位折叠到[0,2π]范围
phix = (phix)/(2*pi);     % 归一化到[0,1]

同时生成四个子图可视化界面,分别显示:

  • x偏振透射率Tx分布
  • x偏振归一化相位分布
  • y偏振透射率Ty分布
  • y偏振归一化相位分布

3.2.2 圆偏振单元筛选功能(8阶相位)

基于双折射效应原理,筛选满足圆偏振调控要求的纳米柱:

delta_phi = abs(phix-phiy);  % 计算x-y相位差
if abs(delta_phi(a,b)-0.5)>0.01   % 要求相位差接近π
    phix(a,b)=nan;  % 不满足条件的标记为NaN
    phiy(a,b)=nan;
end

筛选算法在61×61的参数空间中寻找最优的8个离散相位点,每个相位点对应特定的纳米柱尺寸组合。

3.2.3 线偏振单元筛选功能(64阶相位)

构建完整的线偏振调控单元库:

for L=1:8
    for M = 1:8
        inx = 8*(L-1)+M;  % 生成1-64的索引
        phase_x=phase_unit_x(L)*ones(61,61);
        phase_y=phase_unit_y(M)*ones(61,61);
        phase_delta=abs(phix-phase_x)+abs(phiy-phase_y);
        % 寻找最优匹配位置
    end
end

这种双重循环结构实现了8×8=64种相位组合的全面覆盖。

3.2.4 结果验证与输出功能

模块生成多幅验证图表:

  • 相位离散化阶梯图
  • 透射率分布图
  • 纳米柱尺寸分布图

最终输出length&widthunitCP.matlength&widthunitLP.mat两个关键数据文件。

3.3 目标相位计算模块(target_phase.m)

3.3.1 透镜参数配置功能

定义超构透镜的基本几何参数:

R = 117.5e-6;      % 透镜半径
period = 4.7e-6;    % 单元周期
T = floor(R/period*2);  % 总单元数
f = 150e-6;         % 设计焦距

3.3.2 空间分离焦点设计功能

为实现偏振分束,为四个偏振态分别设置不同的焦点位置:

  • x偏振焦点:( -60μm, 60μm)
  • y偏振焦点:( -60μm, -60μm)
  • 右旋圆偏振焦点:(60μm, 60μm)
  • 左旋圆偏振焦点:(60μm, -60μm)

这种对角线对称布局最大限度地减少了偏振串扰。

3.3.3 相位分布计算功能

基于球面波前相位调制原理,计算每个位置所需的相位补偿:

target_phix(2*i-1,j) = -(2*pi)/lamda*(sqrt((x(2*i-1)-x0_x)^2+...
                     (y(j)-y0_x)^2+f^2)-f);

公式中的负号表示超构透镜需要提供与理想球面波前相反的相位分布。

偏振成像 超构透镜模型 超表面 FDTD仿真 复现论文:2019年 APL Midinfrared real-time polarization imaging with all-dielectric metasurfaces 论文介绍:全介质实时偏振聚焦成像超构透镜模型,可以实现X Y RCP LCP四个偏振态的实时分离和聚焦的功能,通过四个强度的计算可以得到入射光场的偏振信息 超构透镜由硅纳米柱构成,通过偏振复用和空间复用原理同时调控四个偏振态的光场相应 案例内容:主要包括硅纳米柱的单元结构仿真、相位和透射率的参数化扫描,偏振复用超构透镜的偏振解耦合相位计算代码,空间复用的超构透镜模型建模脚本,以及多偏振聚焦的超构透镜模型,和对应的远场电场分布计算; 案例包括fdtd模型、fdtd建模脚本、Matlab计算相位代码和模型仿真复现结果,以及一份word教程,超构透镜的偏振复用和解耦合相位计算代码可用于任意偏振调控设计,具备可拓展性

3.3.4 相位归一化与可视化功能

使用wrapTo2Pi函数将相位折叠到[0,2π]范围,然后归一化到[0,1]。生成四个偏振态的目标相位分布图,用于直观验证设计正确性。

3.4 相位到结构参数映射模块(phase2length.m)

3.4.1 离散相位量化功能

将连续的目标相位分布量化为离散的相位等级:

phase_index_x = round(target_phix/0.125);    % 8阶量化
phase_index_x(phase_index_x==0) = 8;         % 边界条件处理

这种量化处理将连续的相位空间映射到有限的单元库中。

3.4.2 线偏振结构映射功能

对于线偏振控制区域(奇数行):

phase_index = (phase_index_x-1)*8+phase_index_y;  % 生成1-64的索引
for i = 1:T/2
    for j = 1:T
        length_sample_LP(2*i-1,j) = length_width_unit_LP(phase_index(2*i-1,j),1);
        width_sample_LP(2*i-1,j) = length_width_unit_LP(phase_index(2*i-1,j),2);
    end
end

通过索引映射实现从相位组合到纳米柱尺寸的直接查找。

3.4.3 圆偏振结构映射功能

对于圆偏振控制区域(偶数行),采用不同的映射策略:

target_phix_CP = (target_phir+target_phil)/2;  % 平均相位
theta1 = (target_phir-target_phil)/4;          % 旋转角度计算
angle_sample_CP = round(theta1.*360);          % 角度量化

这种设计同时利用了传输相位和几何相位原理。

3.5 超构透镜结构构建模块(structure_lens.lsf)

3.5.1 衬底结构创建功能

首先创建硅衬底结构:

addrect; # 创建衬底
set("name","substrate");
set("material","Si (Silicon) - Palik");
set("x span",2*lens_radius+3*wavelength);
set("y span",2*lens_radius+3*wavelength);

衬底尺寸略大于透镜直径,确保完整的支撑结构。

3.5.2 线偏振纳米柱阵列构建功能

在奇数行位置构建线偏振控制单元:

for(i=1:T/2) {
    for (j=1:T) {
        addrect;
        set("name","nanofin");
        set("x",x_mask(2*i-1));
        set("y",y_mask(j));
        set("x span",length_sample_LP(2*i-1,j));
        set("y span",width_sample_LP(2*i-1,j));
    }
}

每个纳米柱的位置和尺寸都从参数矩阵中精确读取。

3.5.3 圆偏振纳米柱阵列构建功能

在偶数行位置构建圆偏振控制单元:

for(i=1:T/2) {
    for (j=1:T) {
        addrect;
        set("name","nanofin");
        set("x",x_mask(2*i));
        set("y",y_mask(j));
        set("x span",length_sample_CP(2*i,j));
        set("y span",width_sample_CP(2*i,j));
        set("first axis","z");
        set("rotation 1",angle_sample_CP(2*i,j));  % 设置旋转角度
    }
}

旋转角度的设置是实现几何相位调控的关键。

3.5.4 仿真环境配置功能

设置完整的FDTD仿真环境:

  • 两个正交的线偏振光源(0°和90°)
  • 适当尺寸的仿真区域
  • Z方向监视器记录焦平面场分布

3.6 远场分析模块(metalens_focal lens.lsf)

3.6.1 远场计算功能

使用FDTD的精确远场算法计算聚焦特性:

E2_xy = farfieldexact3d('monitor',x,y,f);
E2_xy = pinch(sum(abs(E2_xy)^2,4));

farfieldexact3d函数基于近场-远场变换理论计算指定平面的场分布。

3.6.2 结果可视化功能

生成焦平面光强分布图:

image(x*1e6,y*1e6,E2_xy,'x (um)','y (um)','|E|^2 (x-y plane)');

通过可视化结果验证四个偏振态的聚焦效果和空间分离特性。

4. 核心技术特性与创新点

4.1 空间-偏振混合复用技术

代码实现了创新的空间插空排列策略:

  • 奇数行:专用于线偏振(x和y)控制
  • 偶数行:专用于圆偏振(左旋和右旋)控制
  • 并行探测:单个器件同时处理四个偏振态

4.2 双相位调控机制

结合两种不同的相位调控原理:

  • 传输相位:通过纳米柱尺寸调控有效折射率
  • 几何相位:通过纳米柱旋转引入Pancharatnam-Berry相位

4.3 分级离散化设计方法

采用智能的离散化策略:

  • 圆偏振:8阶相位离散化(兼顾效率和性能)
  • 线偏振:64阶相位离散化(提供更高控制精度)
  • 自适应匹配算法确保离散化误差最小化

5. 代码工程化特性

5.1 模块化与可维护性

  • 清晰的模块边界和接口定义
  • 统一的数据格式和命名规范
  • 完善的错误处理和边界条件处理

5.2 计算效率优化

  • 参数扫描的并行化处理
  • 智能搜索算法减少计算复杂度
  • 矩阵运算替代循环提升执行效率

5.3 可扩展性设计

  • 易于调整透镜参数(尺寸、焦距、工作波长)
  • 灵活的偏振态配置接口
  • 支持不同材料系统的扩展

这套代码系统不仅完整复现了文献中的红外偏振成像超构透镜,更提供了一套通用的偏振光学器件设计框架,为复杂电磁调控器件的开发奠定了坚实的技术基础。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐