FEATURED · 精选文章

用MATLAB仿真LP11光纤模式:电场与光斑计算实战

发布时间 / 2026/9/15 23:22:13
来源 / 创域科博编辑部
栏目 / 资讯中心
用MATLAB仿真LP11光纤模式:电场与光斑计算实战 简介这份MATLAB光纤模式仿真资源围绕LP11模式展开重点分析光纤内部的电场分布与末端光斑特性。LP11作为线偏振双模结构在光通信和传感领域有典型意义资源面向光纤通信、光子学及波动光学方向的学生和科研人员适合用来理解多模传播机理、模式场形态以及用数值方法复现光纤模式的基本流程。压缩包共5个文件含1个FIberiaLP11.m脚本和4张JPG结果图整体仅73KB轻量、易下载脚本稍作参数调整即可重新运行并输出对应图样。脚本涵盖光纤参数定义、电磁场求解与结果绘图等关键环节便于在此基础上扩展更多模式或比较不同参数下的光斑变化图片则展示了电场强度分布和光斑形态可与理论模式图对照帮助快速掌握LP11模式的场分布特征。目前已有1163人学习下载对于刚接触光纤模式仿真或需要课堂演示样例的读者是一份简洁直观的参考。1. 从 V 数阈值开始LP11 光斑为什么值得自己写一次 MATLAB 仿真光纤模式仿真在很多团队里被默认成 COMSOL 的专属活但如果你需要的只是 LP11 模式的电场分布、光纤光斑形态和参数扫描纯 MATLAB 脚本十几行就能跑出物理上正确的结果。这里的关键阈值是 V 2.4048弱导阶跃光纤里 LP11 模式第一次出现的归一化频率。V 小于它光纤里只有 LP01 基模V 超过它LP11 才开始有功率。很多做光模块、光纤传感的人卡在模式分析的起步阶段就是因为把仿真想得太重一上来就建三维模型反而忽略了模式本身只需要二维横向电场这一步。这篇文章直接用 MATLAB 把 LP11 的电场算出来、把光纤光斑画出来顺带把 U/W 参数求解、截止条件、拍长这些模式分析里绕不开的概念全部落到可执行代码上。标题里的「光纤电场」「光纤光斑」本质上是同一件事的两面电场分布算对了光斑只是取模平方再画图。适合刚接触光纤模式仿真、以及对少模光纤现象需要快速验证的工程师。看完你可以自己改波长、改数值孔径几秒钟重新出一张 LP11 光斑图。2. LP11 模式的电场方程与特征方程求解先定 U、W 再谈光斑2.1 弱导近似下 LP11 是什么LP 模Linearly Polarized mode是弱导光纤里对矢量模做标量近似后得到的记法。光纤纤芯和包层折射率差很小时相对差 Δ 远小于 1横向电场近似满足标量亥姆霍兹方程解按方位角阶数 l 和径向阶数 m 分类。LP11 表示 l 1、m 1方位角方向是一阶余弦变化径向是第一阶贝塞尔分布。实际物理中 LP11 对应四重简并的矢量模组TE01、TM01、HE21 的混合弱导近似下它们频率接近光斑都长成两瓣。这也是为什么实验里用 CCD 看少模光纤出射光斑时最常见的就是两个亮瓣转来转去。MATLAB 仿真按标量模处理即可不需要区分这四重简并的偏振细节。2.2 电场表达式与 U、W 参数的物理含义阶跃光纤的纤芯半径为 a芯内折射率为 n1包层为 n2。LP11 的横向电场在圆柱坐标 (ρ, φ) 下分两段写芯内ρ ≤ aE ∝ J1(U·ρ/a) · cos(φ)包层ρ aE ∝ K1(W·ρ/a) · cos(φ)边界连续条件给出幅值比例E ∝ J1(U) / K1(W)其中 J1 是第一类一阶贝塞尔函数K1 是第二类修正贝塞尔函数。U 是芯内的横向归一化相位常数W 是包层的横向归一化衰减常数。U 和 W 都不是独立变量它们由归一化频率 V 约束V² U² W²而V 2π/λ · a · NANA 是数值孔径。U 决定芯内光场振荡得快不快W 决定包层里光场衰减得快不快。W 越小模场在包层里拖得越远越接近截止。LP11 的截止条件正是 W 0此时 V U 2.4048也就是 J0 的第一个零点。2.3 用 fzero 数值解 LP11 特征方程只要光纤参数给定V 就是常数剩下的任务是从特征方程里解出 U。LP11 的标量特征方程是U · J2(U) / J1(U) W · K2(W) / K1(W)把右边移到左边定义方程残差 F(U)。MATLAB 里用fzero单变量求根一个函数句柄就能解决a 5e-6; % 纤芯半径 5 μm n1 1.46; % 纤芯折射率 n2 1.455; % 包层折射率Δ≈0.34% lambda 1310e-9; % 工作波长 1310 nm k0 2*pi/lambda; NA sqrt(n1^2 - n2^2); V k0 * a * NA; % 归一化频率约 2.895 Vmin 2.4048; % LP11 截止 V 数 assert(V Vmin, V 必须大于 2.4048 才能支持 LP11); U0 0.5 * (Vmin min(V, 3.8317)); % 初值取在允许区间中部 F (U) U .* besselj(2, U) ./ besselj(1, U) - ... sqrt(V^2 - U^2) .* besselk(2, sqrt(V^2 - U^2)) ./ ... besselk(1, sqrt(V^2 - U^2)); U11 fzero(F, U0); W11 sqrt(V^2 - U11^2); fprintf(V %.3f, U11 %.4f, W11 %.4f\n, V, U11, W11);代码逻辑并不复杂F(U)直接对应特征方程左减右fzero在 U0 附近找零点。选初值时有一个容易踩的坑U 必须小于 V否则sqrt(V² - U²)变成虚数besselk会输出复数并报警告。所以初值取「截止 V 数」和「当前 V 数或 J1 第一零点」的中点保证一开始就在合法域内。2.3.1 为什么搜根区间不能乱给有人习惯指定fzero(F, [u_low, u_high])区间但对 LP11 而言区间端点必须覆盖且只覆盖一个根。J1 在 (2.4048, 3.8317) 内是正的函数本身在这个区间内单调但 J1 的零点 2.4048 和 3.8317 附近数值变化剧烈端点稍微给错就会让fzero报「区间端点函数值同号」错误。稳妥做法是用初值版本让fzero自己往两侧探测边界。用上面代码里的中点初值在 V 从 2.405 到 10 的范围内都不会跑飞到别的模。验证解是否正确有个快速办法把解出来的 U11 代回F(U11)残差应该小于 1e-6。如果有人改写了特征方程比如用U·J1/J0的 l-1 版本残差检查能第一时间看出问题。3. MATLAB 电场网格与 LP11 光纤光斑绘制从公式到图像3.1 网格尺寸与分辨率怎么定横向电场计算只需要二维网格。窗口大小一般取纤芯半径的 4 到 6 倍这样包层衰减场在窗口边缘已经落到峰值的 1% 以下边界截断伪影可以忽略。网格点数 N 取 300 到 600 之间太少光斑边缘是锯齿太多除了慢没别的意义。对于 a 5 μm我一般取窗口 ±8 μmN 400。对应空间分辨率 16 μm / 400 40 nm远小于波长画相位图也不会出现混叠。温度变化、折射率扰动这些物理量都不进模型所以网格密度不需要更细。3.2 完整可运行的 LP11 电场脚本下面这段是完整的电场计算与光斑绘制脚本直接复制到 MATLAB 里就能看到两瓣光斑% LP11_electric_field.m a 5e-6; n1 1.46; n2 1.455; lambda 1310e-9; k0 2*pi/lambda; NA sqrt(n1^2 - n2^2); V k0 * a * NA; U0 0.5 * (2.4048 min(V, 3.8317)); F (U) U.*besselj(2,U)./besselj(1,U) - ... sqrt(V^2-U^2).*besselk(2,sqrt(V^2-U^2))./besselk(1,sqrt(V^2-U^2)); U11 fzero(F, U0); W11 sqrt(V^2 - U11^2); N 400; L 8e-6; x linspace(-L, L, N); [X, Y] meshgrid(x, x); R sqrt(X.^2 Y.^2); Theta atan2(Y, X); E zeros(N, N); in R a; % 芯内场J1 振荡项cos 方位角给出两瓣 E(in) besselj(1, U11 * R(in) / a) .* cos(Theta(in)); % 包层场修正贝塞尔衰减项幅值按边界连续条件衔接 out ~in; E(out) besselj(1, U11) / besselk(1, W11) .* ... besselk(1, W11 * R(out) / a) .* cos(Theta(out)); % 光斑强度图 figure(Color,w); imagesc(x*1e6, x*1e6, abs(E).^2); axis image; colormap(hot); colorbar; xlabel(x / μm); ylabel(y / μm); title(LP11 光纤光斑1310 nm);这段代码把电场分芯内、包层两次赋值芯内用besselj描述振荡包层用besselk描述衰减连接点 ρ a 处由系数besselj(1,U11)/besselk(1,W11)保证连续。cos(Theta)决定角向分布Theta 从 -π 到 πcos 的正负号自然形成光斑的两瓣和反相。坐标轴单位换算成 μm光斑尺寸和真实光纤可以直接对比。3.3 把电场画成三种图强度、三维、相位强度图就是上面代码的abs(E).^2物理上对应 CCD 看到的光纤光斑。三维图用surf更直观figure(Color,w); surf(X*1e6, Y*1e6, abs(E).^2, EdgeColor, none); view(2); colormap(jet); colorbar; xlabel(x / μm); ylabel(y / μm); title(LP11 模场强度分布);相位图是判断模式纯度的重要工具。LP11 两个瓣的相位差正好是 π用angle(E)画出来会看到左右两个区域颜色相差半个色环figure(Color,w); imagesc(x*1e6, x*1e6, angle(E)); axis image; colormap(hsv); colorbar; title(LP11 模场相位两瓣相差 π);如果实验里用马赫-曾德尔干涉仪观察少模光纤输出相位图中这种跳跃就是 LP11 最典型的签名也是区分 LP01 和 LP11 的依据。3.3.1 cos 与 sin 取向LP11 的两重简并cos(Theta)只是 LP11 的一个取向。把方位角因子换成sin(Theta)光斑会旋转 90 度电场同样满足特征方程。这两个解是简并的真实光纤中因为折射率分布不理想、应力或弯曲简并会被打破两瓣会发生旋转或偏振不稳定。仿真时建议把两个取向都算一遍理解实验里「光斑在转」的现象其实就是两种简并态的叠加E_sin zeros(N, N); E_sin(in) besselj(1, U11 * R(in) / a) .* sin(Theta(in)); E_sin(out) besselj(1, U11) / besselk(1, W11) .* ... besselk(1, W11 * R(out) / a) .* sin(Theta(out)); figure; imagesc(x*1e6, x*1e6, abs(E_sin).^2); axis image; colormap(hot);3.4 LP 模阶次与光斑瓣数对照实验里看到的光斑瓣数能反推模式阶次下表是通信用得最多的几个模式lm角向瓣数光斑特征LP01011 瓣高斯状圆斑中心最亮LP11112 瓣中心暗线两侧亮瓣反相LP21214 瓣四象限花瓣LP02021 瓣环形中心暗斑亮环瓣数由方位角阶数 l 决定大约是 2l 个瓣。m 决定径向有多少个亮环。LP11 的两瓣是它和基模光斑最直观的区分点。这个表在做模式识别时可以直接套用比如光纤端面光斑从一瓣变两瓣基本可以断定 V 数已经超过 2.4048光纤进入了少模状态。4. 参数怎么调V 数、波长、数值孔径对 LP11 光斑的影响4.1 换波长从 1310 nm 到 1550 nmV 刚过截止时的形态V 数和波长成反比同一条光纤在 1550 nm 下 V 更小LP11 更接近截止。用前面代码的参数算一下波长 (nm)V 数是否支持 LP11光斑特点8504.465支持且接近 LP21 截止两瓣中间暗线更宽13102.895支持两瓣较饱满15502.447勉强支持两瓣细长能量扩散到包层把脚本里的lambda改成1550e-9V 从 2.895 降到 2.447。此时 LP11 刚出现不久U11 接近 VW11 很小包层里衰减很慢模场边界明显外扩。强度图上两瓣会变得细长中心暗线更明显。这个现象对光纤设计有实际意义如果想抑制 LP11把 V 压到 2.4048 以下即可如果故意要放大 LP11 参与干涉让 V 略微超过截止模场重叠最大。4.2 数值孔径对模式个数的影响NA 直接进 V 数表达式因此改变 NA 比改变波长更常用来调节模式数。商用光纤 NA 通常在 0.1 到 0.3 之间把 n2 从 1.455 改成 1.45NA 会变大V 数上升光纤可能从支持 2 个模式变成支持 4 个模式。仿真时调整 n1、n2 后要重新执行特征方程求解不能只改电场表达式的参数。实际工程里常见做法是设计光纤时先按目标波长和模式数定 a、NA再用 MATLAB 这个脚本做参数扫描画出「V 数 vs 支持模式数」曲线。扫描就是一个循环lambdaList linspace(780e-9, 1650e-9, 20); modeCount zeros(size(lambdaList)); for i 1:length(lambdaList) V 2*pi/lambdaList(i) * a * NA; modeCount(i) sum(V [0, 2.4048, 3.8317, 5.1356]); % 各阶 LP 模截止 V end plot(lambdaList*1e9, modeCount, o-); xlabel(波长 / nm); ylabel(支持模式数);这段代码用四阶截止阈值估算模式数量虽然没区分 LP 模内部的偏振简并但作为设计前期的快速筛选已经够用。注意这样的统计把 LP01 默认支持因为它的截止 V 数是 0。4.3 仿真里三个最常见的坑第一个坑是besselk出现虚数警告。原因基本都是搜索 U 时越过了 V导致 W 变成虚数。对策有两种像第 2 章那样控制初值或者在 F 函数里对U V的情况直接返回一个大的正数。后者更粗鲁前者更干净。第二个坑是网格分辨率不够引起的仿真发散。这里的「发散」不是数值溢出而是光斑边缘出现环形条纹。判断手段很简单把 N 从 400 改成 800如果光斑形状不再变化说明 N 够了如果强度峰值位移超过 1%就要加大窗口同时保持分辨率。第三个坑是包层截断。窗口取得太小besselk衰减场在边界没有归零傅里叶分析时会产生边缘振铃。我一般用两条标准同时约束窗口边缘的 |E|² 小于峰值 1%并且把窗口再扩大一倍时 LP11 的 U11 数值变化小于 1e-3。这两条比任何经验公式都好用。4.3.1 怎么确认 U 值没有解错最直接的验证是把 U11 代回特征方程看残差residual U11*besselj(2,U11)/besselj(1,U11) - ... W11*besselk(2,W11)/besselk(1,W11); disp(residual);残差量级在 1e-8 以下说明求解正确。如果残差是 1e-2 量级多半是特征方程写成了非弱导形式或者贝塞尔函数的阶数写错。另一个快速检查是极限行为V 大时 U11 应当趋近 3.8317J1 第一零点V 刚过 2.4048 时 U11 应当趋近 V。这两个极端都满足基本可以放心。商用 COMSOL 光纤仿真里做 eigenmode 求解本质上也跑同样的物理方程只是把网格换成有限元MATLAB 的优势是参数扫描时不用反复建模折射率改一个数字重新fzero加重新绘图即可。5. 把 LP11 用起来与 LP01 一起算传播常数差和拍长5.1 拍长公式与 LP01 特征方程LP11 单独存在没有太大意义光纤里通常 LP01 和 LP11 同时传它们传播常数不同叠加后光斑会沿纵向周期性变化这就是拍。拍长定义是两种模式传播常数差对应的周期L_B 2π / |β11 - β01|β 的计算用纵向传播常数公式β sqrt((k0·n1)² - (U/a)²)。所以求拍长需要先解 LP01 的 U。LP01 的特征方程是U · J1(U) / J0(U) W · K1(W) / K0(W)LP01 没有截止V 再小也存在它的 U 在 (0, 2.4048) 区间内取值。5.2 MATLAB 里同时解两个模式并算拍长把前面代码扩展一下先求 LP11再求 LP01最后直接输出拍长% 续接第 3 章参数V 已由 a、n1、n2、lambda 算出 F01 (U) U.*besselj(1,U)./besselj(0,U) - ... sqrt(V^2-U^2).*besselk(1,sqrt(V^2-U^2))./besselk(0,sqrt(V^2-U^2)); U01 fzero(F01, min(1.5, 0.6*V)); % LP01 的 U 在 0~2.4048 之间 W01 sqrt(V^2 - U01^2); beta01 sqrt((k0*n1)^2 - (U01/a)^2); beta11 sqrt((k0*n1)^2 - (U11/a)^2); Lb 2*pi / abs(beta11 - beta01); fprintf(U01%.4f, U11%.4f, 拍长%.4g m\n, U01, U11, Lb);这里 LP01 的初值取min(1.5, 0.6*V)避免 V 较小时初值跑到 U ≥ V 的区域。对 1310 nm 那组参数拍长算出来大约在毫米量级这是少模光纤里一个很实用的数量级参考。如果拍长过短意味着两种模式耦合剧烈光纤弯曲或接头稍有不一致就会引起光斑抖动如果拍长很长则说明两个模式接近简并对扰动不敏感。5.3 一个实用验证技巧仿真拍长时顺带做一个纵向扫描在 z 轴上每隔一小段重画横向光斑观察两瓣是否从「左亮右暗」过渡到「右亮左暗」。完整周期应当等于刚才算出的 L_B。这个扫描不需要重新解特征方程只对横向电场叠加一个相位因子exp(jβz)即可z linspace(0, Lb, 50); for i 1:length(z) Etotal E * exp(1j*beta11*z(i)) E01 * exp(1j*beta01*z(i)); imagesc(x*1e6, x*1e6, abs(Etotal).^2); axis image; colormap(hot); drawnow; pause(0.05); end跑完这组动画拍长公式、传播常数差和光斑演化三个概念就全部对上了。以后在实验端面上看到少模光纤光斑随拉伸或温度变化来回摆动就可以先用这个流程快速估一下拍长周期再判断是不是模式干涉主导。本文还有配套的精品资源点击获取
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻