BPM-Matlab光束传播法光学仿真

关键词:光束传播法 | DG-ADI | 光纤仿真 | 模式分析 | MATLAB

一、研究背景

光束传播法(BPM)是光学纤维中电场传播模拟的核心数值方法,广泛应用于内窥成像、光通信、材料加工和遥感等领域。商业软件如BeamLab和Lumerical虽然功能强大,但既不免费也不开源,且常对光纤几何结构做对称性假设,限制了复杂任意折射率剖面的建模能力。Veettikazhy M.等人(Optics Express, 2021)开发了开源工具BPM-Matlab,基于Douglas-Gunn交替方向隐式(DG-ADI)有限差分法,实现了对任意折射率分布光纤中电场传播的高效数值模拟。该工具支持弯曲、扭转和锥形过渡等形变条件下的光束传播,并集成了LP模式分析功能,可与GPU加速结合大幅提升计算效率。

图1 BPM-Matlab与BeamLab仿真对比:直MMF强度与模式剖面

二、仿真方法

BPM-Matlab的核心是DG-ADI有限差分法求解傍轴亥姆霍兹方程。与传统Crank-Nicolson方法相比,DG-ADI将二维横向算符分裂为x和y两个一维方向交替求解,避免了大型稀疏矩阵的直接求逆,计算复杂度从O(N3)降至O(N),N为横向网格点数。方法通过Padé近似处理传播算符,在MATLAB中实现。关键算法流程包括:①定义任意二维折射率剖面n(x,y);②设置入射电场分布E(x,y,z=0);③在每个传播步长Δz内,先沿x方向隐式求解半步,再沿y方向隐式求解半步,完成一次完整推进;④循环迭代直至传播至光纤输出端。弯曲通过坐标变换等效折射率法实现,扭转通过旋转折射率剖面实现,锥形通过纵向渐变缩放实现。LP模式分析基于Krylov-Schur特征值求解器,通过迭代传播提取稳态模式场分布。GPU加速利用MATLAB的arrayfun函数实现逐点运算并行化。

图2 五种最低阶光纤模式强度分布

图3 LP模式归一化分数功率仿真

三、结果分析

BPM-Matlab在多种光纤构型下与商业软件BeamLab及已发表实验数据进行了系统验证。在直多模光纤(MMF,芯径50um,NA=0.22)中,两者输出强度剖面和模式剖面的皮尔逊相关系数>0.99,验证了DG-ADI方法的准确性。在渐变折射率多模光纤弯曲(弯曲半径5cm)条件下,BPM-Matlab成功复现了模式场向弯曲外侧偏移的现象,与文献41中Fig.4完全一致。锥形过渡仿真(芯径50um→5um)展示了光场从多模逐步过渡到单模的完整演化过程,xz平面强度图清晰呈现了高阶模的辐射损耗。多芯光纤(MCF,7芯六角排列)仿真表明,BPM-Matlab可精确预测芯间耦合和远端散斑图案,与实验测量的焦点图案相关系数达0.97。LP模式归一化分数功率分析表明,不同模式在传播过程中的功率耦合可通过模式分解定量评估,为模分复用系统设计提供了关键工具。

图4 光纤锥形过渡(多模→单模)xz平面强度分布

图5 多芯光纤远端5mm处强度分布仿真

四、我们提供的服务

我们团队在光学仿真领域提供以下特色计算服务:①基于BPM/FDTD/本征模展开法的光纤与集成光波导器件光束传播仿真,支持任意折射率剖面与复杂几何构型建模。②DG-ADI高效BPM算法的定制化开发与MATLAB/Python实现,适用于多模光纤、多芯光纤和光子灯笼等器件的设计与优化。③光纤弯曲、扭转、锥形过渡等形变条件下的模式耦合与功率演化分析。④LP模式/OAM模式分解与模分复用系统设计支持。⑤GPU加速光学仿真代码开发,大幅缩短大规模参数扫描计算周期。

相关推荐
Evand J18 小时前
【MATLAB例程,车联网8】MPC网联车辆节能跟驰控制:速度跟踪、间距约束与能耗优化。附MATLAB完整代码的下载链接
开发语言·matlab·车联网·调度·mpc·节能·车辆控制
阿 才1 天前
Matlab(Simulink)使用详解
运维·网络·matlab
Evand J1 天前
【MATLAB例程,车联网12】基于模型预测控制(MPC)的网联车辆交叉口生态驾驶动态优化仿真分析。附完整代码的下载链接
物联网·matlab·车联网·mpc·模型预测控制·车辆·网联车辆
民乐团扒谱机1 天前
【微实验】线性代数之——奇异值分解 SVD:穿透数据迷雾的“X光机”,附 MATLAB 全流程仿真
线性代数·算法·matlab
majorArcs2 天前
MATLAB 绘制论文级双重饼图:2024 高教社杯 C 题实战
matlab
Evand J4 天前
【MATLAB例程,车联网7】CACC网联车辆协同控制:ACC对比、V2X时延丢包与队列稳定性,附例程下载链接
开发语言·matlab·车联网
kaixin_啊啊4 天前
香精近红外总体步骤概览
人工智能·matlab·近红外
Evand J4 天前
【MATLAB例程,PDR11】二维平面下的PDR(行人航位推算)步态检测与EKF融合定位,附代码的下载链接
开发语言·matlab·平面·pdr·行人导航·步态检测
matlab代码4 天前
基于matlab肤色人脸标记检测系统 GUI界面【源码53期】
开发语言·matlab·人脸标记