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 J8 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪
matlab代码18 小时前
基于matlab水果识别系统(西红柿、香蕉、梨、青椒)【源码64期】
开发语言·matlab
民乐团扒谱机18 小时前
【微科普】相位调制 (PM) 理论推导、频谱演化与 MATLAB 仿真验证
matlab
我爱C编程1 天前
基于GCC-PHAT与球面散乱数据插值ML估计算法的混合麦克风阵列声源定位方法Matlab仿真
matlab·gcc-phat·球面散乱数据插值·ml估计·麦克风阵列声源定位
菜鸟~noob2332 天前
【电子战】第03篇:CFAR(恒虚警)处理【含matlab代码】
开发语言·matlab
菜鸟~noob2332 天前
【电子战】第02篇:能量检测器 vs. 相关检测器【含matlab代码】
开发语言·matlab
菜鸟~noob2332 天前
【电子战】 第01篇:噪声、门限与虚警/检测概率(PFA/PD)【含matlab代码】
开发语言·matlab
洛阳纸贵3 天前
MATLAB-matlab基础知识
学习·算法·matlab
matlab代码4 天前
基于matlab PCA人脸识别系统【源码63期】
开发语言·matlab
matlab代码4 天前
基于matlab的红绿灯图像检测识别系统【源码60期】
开发语言·matlab