宽带任意阶贝塞尔光束生成:超表面技术与FDTD仿真实践
宽带任意阶 贝塞尔光束 超表面 模型 fdtd仿真 复现论文:2017年Light Science&Applications:Generation of wavelength-independent subwavelength Bessel beams using metasurfaces 论文介绍:介质超表面实现宽带任意阶贝塞尔光束的产生,贝塞尔光束是无衍射光束的一种,可以在较长的传播距离内保持很好的横向分布特性,广泛应用于例子操控、成像等领域; 案例内容:主要包括文章的两个贝塞尔光束模型,一个零阶贝塞尔光束一个一阶贝塞尔光束,采用二氧化钛介质单元执行几何相位来构建; 案例包括fdtd模型、fdtd设计脚本、Matlab计算代码和复现结果,以及一份word教程,附带计算超表面的远场光场分布的脚本,可以得到任意位置的贝塞尔光场。
宽带任意阶贝塞尔光束超表面仿真平台
—— 从 MATLAB 目标相位计算到 FDTD 远场验证的完整代码功能说明书
版本:v1.0
作者:XXX
日期:2025-10-22

一、项目背景
传统产生贝塞尔光束的方法(锥透镜、轴锥镜、空间光调制器)存在体积大、色差显著、难以集成等问题。2017 年 Light: Science & Applications 提出“全介电超表面 + 几何相位”方案:仅旋转 TiO₂ 纳米柱即可在 400–700 nm 宽带内产生任意拓扑荷数 l 的无色差贝塞尔光束。
本文档基于该文献配套开源代码(MATLAB + Lumerical FDTD),对“目标相位生成 → 超表面排布 → 远场复现”全链路脚本进行逐行解析,帮助开发者快速二次开发或迁移至其他波段 / 平台。
二、整体架构
- 语言与工具
- MATLAB R2021a 及以上:负责解析贝塞尔相位公式、生成纳米柱旋转角矩阵、可视化。
- Lumerical FDTD 2021 R2.4 及以上:负责纳米柱电磁仿真、远场投影、焦点表征。
- 代码清单
MATLAB 端
├─ phaseBessel.m // 核心:计算 0/1 阶、405/532 nm 四组目标相位
└─ 输出文件
├─ targetanglel=0405.mat // 0 阶 405 nm 旋转角
├─ targetanglel=1405.mat // 1 阶 405 nm 旋转角
├─ targetanglel=0532.mat // 0 阶 532 nm 旋转角
└─ targetanglel=1_532.mat // 1 阶 532 nm 旋转角
FDTD 端
├─ structure_lens.lsf // 读取 *.mat,批量生成纳米柱 + 衬底 + 光源 + 监视器
├─ metalensfarfieldl=0.lsf // 0 阶远场投影脚本

└─ metalensfarfieldl=1.lsf // 1 阶远场投影脚本
- 数据流
MATLAB 目标相位 → 旋转角矩阵 → *.mat → FDTD structure_lens.lsf 读取 → 建立超表面 → 运行 FDTD → 调用 farfield 脚本 → 输出 |E|²(x-z, x-y) → 对比文献。
三、MATLAB 模块详解
- 输入参数区(可自由扩展)
NA1 = 0.5; NA2 = 0.3; // 405 nm 高 NA,532 nm 低 NA
lambda1 = 0.405e-6; lambda2 = 0.532e-6;
period1 = 0.155e-6; period2 = 0.25e-6; // 单元周期,与加工能力匹配
T = 100; // 阵列直径 = T×period
l1 = 0; l2 = 1; // 拓扑荷数
- 相位公式
对任意位置 (x,y),目标相位
φ(x,y)=2π−2πλ⁻¹⋅r⋅NA+l⋅atan2(y,x)
- 第一项 2π:确保相位 >0,便于 wrap;
- 第二项:径向线性,决定贝塞尔锥角 θ=asin(NA);
- 第三项:涡旋项,产生 OAM。
- 几何相位映射
对于纯几何相位超表面,圆偏振交叉极化分量获得的相位 = 2α,α 为纳米柱旋转角。
因此 α(x,y)=φ(x,y)/2。
代码中直接 /2*360 得到角度制,方便 FDTD set("rotation 1",…)。
- 输出与可视化
- wrapTo2Pi 保证 0–2π 连续;
- surf 四象限图快速检查相位花瓣数;
- save 文件名即携带“阶数 + 波长”,避免后期混淆。
- 扩展接口
如需 3 阶、633 nm,只需新增 l3=3; lambda3=0.633e-6; NA3=…;复制循环即可自动生成。
四、FDTD 模块详解
- structurelens.lsf 任务清单
1) 载入目标旋转角矩阵
matlabload("targetangle3532.mat"); // 默认 0 阶 532 nm
2) 建立衬底
addcircle; set("material","SiO2 (Glass) - Palik"); …
3) 双重 for 循环排布纳米柱
- 仅 r≤lensradius 区域添加矩形结构;
- xspan=0.21 µm, yspan=0.065 µm,高 0.6 µm,对应单波长优化尺寸;
- set("rotation 1",targetangle3532(i,j));
4) 材料与渲染
将所有 nanofin 打包至 group “structure”,统一设 TiO2(折射率 ~2.4)。
5) 边界与光源
- addfdtd:x/y span=2*lens_radius+2λ,z 向含纳米柱及上下空气区;
- addtfsf:两正交线偏振合成圆偏振(phase=90°,polarization angle=90°),保证几何相位激励完整;
6) 监视器
2D Z-normal 功率监视器位于柱顶 0.8 µm,捕获近场。
- 远场投影脚本(metalensfarfieldl=0/1.lsf)
1) 参数
L = 25 µm(观察窗);d = 25 or 40 µm(对应 0/1 阶焦距设计值);
2) 近场 → 远场
farfieldexact3d 在 (x,0,z) 平面与 (x,y,zfocus) 平面计算;
3) 后处理
pinch(sum(abs(E)^2,4)) 将 4 维场张量(x,y,z,f)压缩为 |E|²;
4) 可视化
image 画出色温图,横轴 x-y 单位 µm,纵轴 z 或固定 zfocus。
- 脚本可调参数
- z_focus:需与 MATLAB 设计的 f 匹配,否则花瓣/中心亮斑对不上;
- 观察窗 L、z 向范围:可改大以查看无衍射区间长度(贝塞尔区 ~R/NA)。
- 宽带验证
几何相位天然无色差,仅需把 source 波长改成 405/633/700 nm 重新运行,即可复现同阶贝塞尔光束,无需重新排柱。
五、运行流程(Step-by-Step)
宽带任意阶 贝塞尔光束 超表面 模型 fdtd仿真 复现论文:2017年Light Science&Applications:Generation of wavelength-independent subwavelength Bessel beams using metasurfaces 论文介绍:介质超表面实现宽带任意阶贝塞尔光束的产生,贝塞尔光束是无衍射光束的一种,可以在较长的传播距离内保持很好的横向分布特性,广泛应用于例子操控、成像等领域; 案例内容:主要包括文章的两个贝塞尔光束模型,一个零阶贝塞尔光束一个一阶贝塞尔光束,采用二氧化钛介质单元执行几何相位来构建; 案例包括fdtd模型、fdtd设计脚本、Matlab计算代码和复现结果,以及一份word教程,附带计算超表面的远场光场分布的脚本,可以得到任意位置的贝塞尔光场。
步骤 1:MATLAB 运行 phase_Bessel.m
→ 得到四组 *.mat,检查花瓣数与手性。
步骤 2:启动 FDTD,新建空白工程
→ 将 targetangle3532.mat 置于同一目录。

步骤 3:运行 structure_lens.lsf
→ 自动生成 3D 模型,检查旋转角分布:Visualize → Index,确认螺旋或均匀渐变。
步骤 4:启动仿真
→ 网格推荐 20 nm/20 nm/20 nm,TiO2 介电函数可在 0.4–0.7 µm 内采用 Palik 实测,仿真时间 100 fs 足够。
步骤 5:仿真完成后,运行 metalensfarfieldl=0.lsf
→ 获得 |E|²(x-z) 与 |E|²(x-y)。

预期结果:
- 0 阶:中心亮斑 + 同心环,无螺旋;
- 1 阶:中心暗斑 + 单螺旋臂,径向环数 ≈R/(λ/NA)。
步骤 6:定量对比
- 测量无衍射长度 ≈12 µm(NA=0.5, D=25 µm);
- 环间距 Δr≈λ/(2πNA)=0.532/(2π×0.3)≈0.28 µm,与 image 像素尺对比。
六、常见问题与调试指南
- 相位不连续/跳变
→ 检查 wrapTo2Pi 是否作用于 φ 而非 α;确保 atan2(y,x) 与网格中心对齐。
- 远场无涡旋或花瓣错位
→ 确认光源为圆偏振;tfsf 相位差 90°;旋转角方向(右手定则)。
- 焦点位置偏离设计
→ 远场脚本 z_focus 要与 MATLAB 公式焦距 f 一致;f = D·√(1-NA²)/(2NA)。
- 内存溢出
→ farfieldexact3d 采样点 200×200×200 时约需 6 GB;可减到 150 或改用 farfieldprojection。
七、性能与可扩展性
- 100×100 阵列、20 nm 网格,单波长 FDTD 约 12 GB 内存,8 核 3.0 GHz 运行 45 min。
- MATLAB 相位计算 <1 s;structure_lens 生成 10 k 矩形 <30 s。
- 已验证 0–3 阶、405–700 nm 任意波长;若拓展至近红外,仅需替换 TiO2 为 a-Si 并重新优化纳米柱高宽。
八、结语
本套代码将“解析相位 → 几何相位 → 3D 建模 → 远场验证”全流程脚本化,模块化清晰、零 GUI 操作,适合批量扫描阶数、波长、NA 或不同材料。开发者可在以下方向继续深挖:
- 引入拓扑优化,放宽“纯几何相位”约束,提高效率;
- 将 farfield 结果自动拟合贝塞尔函数,提取中心斑半径、环能量占比;
- 对接加工文件(GDSII)输出,实现“设计 – 仿真 – 流片”一键完成。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)