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 J9 小时前
【MATLAB例程,PMSM19】永磁同步电机(PMSM)基于多速率无迹卡尔曼滤波(UKF)的转速与转子位置估计。测量缺失、状态预测与恢复性能分析
开发语言·matlab·电机·ekf·卡尔曼·电机滤波
星夜离尘561 天前
MATLAB 离散数据分箱:半开区间、末端点与计数、加权和、平均
算法·matlab
Evand J3 天前
【MATLAB例程介绍】(17)永磁同步电机(PMSM)基于自适应无迹卡尔曼滤波(AUKF)的电流噪声在线估计。测量噪声协方差自适应与转速估计对比仿真
开发语言·matlab·卡尔曼滤波·无迹卡尔曼滤波·pmsm·电机滤波
严肃小白兔4 天前
MATLAB 绘图与科研论文插图制作:图形设计、统计表达与矢量导出
开发语言·matlab·科研绘图
严肃小白兔5 天前
MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性
人工智能·算法·matlab
Evand J6 天前
【PMSM例程】(14)永磁同步电机无迹卡尔曼滤波(UKF)定子电阻在线辨识与补偿。电阻变化跟踪及预测误差对比仿真。附完整代码的下载链接
matlab·电机·滤波·卡尔曼滤波·永磁同步电机·无迹卡尔曼滤波·pmsm
爱喝雪碧的可乐6 天前
MATLAB
开发语言·算法·matlab
严肃小白兔6 天前
MATLAB 优秀开源项目与工具箱推荐:涵盖通信、图像处理、脑机接口等九大领域
图像处理·matlab·信息与通信·开源项目
Evand J8 天前
【MATLAB例程12】永磁同步电机基于增广无迹卡尔曼滤波的未知负载转矩在线观测
开发语言·matlab
分享资料9 天前
MATLAB 中分号 (;)的作用
matlab