简介:面向光纤通信与多模光纤研究者的MATLAB仿真资源,聚焦阶跃折射率光纤中LP22模式的分析与模拟,适合通信专业学生、光纤工程师及科研人员用于课程设计、毕业设计或课题预研。LP22是线性极化多模光纤中的一种高阶模态,具有两个径向节点和两个轴向节点,其传播特性直接影响多模系统的色散与传输质量。压缩包共3个文件,含2个.m脚本和1个txt说明,整体仅3KB,属于轻量级代码与理论笔记互补的资源。脚本可仿真LP22模式的电场分布与传播行为,txt文档则补充了模式理论背景、模拟思路以及光波导效应的解释。目前已有203人学习下载,可帮助读者直观理解LP22光场形态,掌握数值模拟多模光纤的基本方法,并为进一步研究模式色散抑制、模间干扰与光纤优化设计提供基础。
1. LP22 这个 fiber mode 为什么总在仿真和实测里对不上
LP22 是光纤高阶模式里一个特别容易让人栽跟头的 fiber mode。做少模光纤通信、光纤传感或者模式复用仿真时,求解器会把它和 LP21、LP31 一起吐出来,但三个模式的近场强度图都是花瓣状,靠肉眼认模式几乎必错。更麻烦的是,LP22 在截止频率上和 LP03 简并,传播常数挨得极近,网格稍微粗糙一点就把两个模式搅成一组。这篇笔记从命名规则、数值求解到近场实测识别,把 LP22 讲透,适合正在跑模式分析却对不上实验结果的工程师。
2. 先看懂 LP22 的场分布:命名规则、花瓣相位与近邻模式判别
2.1 LP 模式命名:角向阶数 l 和径向阶数 m 怎么数
LP(Linearly Polarized,线偏振)模式是弱导光纤里的常用近似,把矢量波动方程简化成标量方程后得到的模式集合。名字里的两个数字,第一个 l 是角向阶数,第二个 m 是径向阶数,这两个数字直接决定强度图的长相。
角向阶数 l 决定场沿圆周方向的变化次数。场分布里带 cos(lφ) 因子,所以强度图上沿圆周有 2l 个亮瓣:l=0 是中心对称的圆斑,l=1 是两瓣,l=2 是四瓣。径向阶数 m 决定场强沿半径方向有几个峰:m=1 是一个径向亮环,m=2 是两个径向亮环。按这个规则,LP22 就是四瓣、而且每个瓣沿径向裂成两个峰的模式。
需要注意,m 的数值和贝塞尔函数零点的编号一一对应。阶跃折射率弱导光纤里,纤芯内场分布是 J_l(U r/a),包层里是 K_l(W r/a),U 和 W 由特征方程决定。截止时 W=0,此时 V=U=V_c。对 l≥1 的模式,截止频率满足 J_{l-1}(V_c)=0;对 l=0 的模式,除基模外截止频率满足 J_1(V_c)=0。这就是为什么 LP21 和 LP02 的截止值都是 3.8317,LP22 和 LP03 的截止值都是 7.0156——它们落在同一组贝塞尔零点上。
2.2 LP22 的强度分布与相位拓扑:四个亮瓣的相位有正有负
LP22 的横向电场可以写成:
E(r,φ) = A · J_2(U r/a) · cos(2φ)
其中 r、φ 是极坐标,A 是归一化常数。这个式子看着简单,但里面藏着一个关键细节:cos(2φ) 在四个瓣里不是同号。φ=0° 和 180° 两个瓣是正的,φ=90° 和 270° 两个瓣是负的。CCD 拍到的强度图是 |E|²,正负号被平方抹掉了,所以很多人以为 LP22 就是四个一样的花瓣,其实相位分布的正负交替才是它的本质特征。区分 LP22 和其他四瓣模式,靠的就是这个相位拓扑。
径向部分用 J_2。J_2 在 r=0 处为 0,所以 LP22 的中心是暗的;向外走,J_2 先上升形成第一个峰,过零点后再形成第二个峰,然后衰减。对应到强度图上,每个花瓣不是均匀的一块亮斑,而是内外两段亮区夹一条暗线。这个“四瓣加径向双峰”的组合特征,是它和 LP21(四瓣但只有单峰)最直观的区别。
要稳定存在 LP22,光纤的归一化频率 V 必须大于 7.0156。V 的定义是:
V = (2π/λ) · a · NA
λ 是工作波长,a 是纤芯半径,NA 是数值孔径。举个例子,1550 nm 波长、10 μm 纤芯半径、NA=0.12 的光纤,V≈4.86,最高只到 LP21,根本出不来 LP22。想要 LP22,要么把纤芯半径加到 15 μm 以上,要么把 NA 提到 0.18 以上。这个计算在任何仿真之前都应该先做一遍,能省掉后面大量无意义的调参时间。
2.3 一张表分清 LP21 / LP22 / LP31:别把高阶模认成兄弟模式
实测和仿真里最容易混淆的三兄弟是 LP21、LP22、LP31,强度图都带花瓣,但花瓣数量和径向结构不同。下面这张表可以直接打印出来贴在工位上。
| 模式 | 角向瓣数(2l) | 径向峰数(m) | 中心 | 截止 V_c | 强度图特征 |
|---|---|---|---|---|---|
| LP21 | 4 | 1 | 暗 | 3.8317 | 四瓣,每个瓣内无径向分裂 |
| LP02 | 0 | 2 | 亮 | 3.8317 | 中心亮斑加一个外环 |
| LP31 | 6 | 1 | 暗 | 5.1356 | 六瓣,单环 |
| LP12 | 2 | 2 | 暗 | 5.5201 | 两瓣,每瓣径向双峰 |
| LP22 | 4 | 2 | 暗 | 7.0156 | 四瓣,每瓣径向双峰 |
| LP03 | 0 | 3 | 亮 | 7.0156 | 中心亮斑加两个外环 |
截止 V_c 相同的模式在截止点附近简并,LP21 和 LP02 一组、LP22 和 LP03 一组。仿真时如果 V 数刚好压在截止值旁边,简并组的两个模式传播常数几乎一样,求解器会同时吐出两个根,按特征值排序还不稳定,这一步是很多人第一次翻车的地方。
判别时抓住三点:先数瓣数,四瓣直接排除 LP31;再看径向峰数,双峰排除 LP21;最后看中心,中心是暗斑才可能是 LP22,如果中心发亮,那大概率是 LP02 或 LP03 一类的圆对称模式。这三个特征全部核对完,再下结论说“这是 LP22”。
3. 用 Python 数值求解 LP22:从标量波动方程到二维场图
3.1 弱导光纤里的标量近似:为什么 LP 模式可以按这个算
弱导光纤指纤芯和包层折射率差很小,相对折射率差 Δ 通常在 1% 以下。这种情况下横向场分量远大于纵向分量,矢量波动方程可以退化成标量亥姆霍兹方程,LP 模式就是在这个近似下定义出来的。严格矢量解里有 HE、EH、TE、TM 模,每个矢量模还有偏振简并分量;在弱导近似下,这些分量按传播常数合并成一组 LP 模式。比如 LP11 其实是 TE01、TM01、HE21 三个矢量模的叠加,LP22 也对应一组矢量模,只是标量近似不区分它们。
做仿真时用标量近似的实际意义是快和稳。COMSOL 或 Lumerical 的矢量求解器在算高阶模时经常遇到简并模不收敛的问题,而标量特征方程是单变量求根,几毫秒就出一个模式,还能精确控制解的是哪个 (l, m)。代价是精度:标量解给出的传播常数在 Δ>2% 的光纤里会明显偏大,所以论文里都会注明“弱导光纤适用”。工程上做模式识别和耦合分析,标量近似完全够用。
3.2 径向特征方程的求解:brentq 求根与参数设定
LP22 的特征方程是:
U · J_3(U) / J_2(U) = W · K_3(W) / K_2(W)
其中 W = √(V² - U²)。给定光纤参数算出 V 后,U 落在两个贝塞尔零点之间:下界是截止值 j_{1,2}=7.0156,上界是 j_{2,2}=8.4172。用 brentq 在这个区间里找根,比盲目用 fsolve 稳得多。
import numpy as np from scipy.special import jv, kv from scipy.optimize import brentq def mode_eq(U, V, l): """LP_lm 标量特征方程,返回左减右,求根时找零点。""" W = np.sqrt(V**2 - U**2) if W < 1e-12: return 1e6 # 截止点附近函数值发散,直接给大数推开 lhs = U * jv(l + 1, U) / jv(l, U) rhs = W * kv(l + 1, W) / kv(l, W) return lhs - rhs # 光纤参数:1550 nm,纤芯半径 12 um,NA=0.15 lam = 1.55e-6 a = 12e-6 NA = 0.15 n_core = 1.46 V = 2 * np.pi / lam * a * NA # 归一化频率,约 7.30 k0 = 2 * np.pi / lam # LP22 的 U 理论区间:(7.0156, 8.4172),取略靠内避免边界 U_lower, U_upper = 7.02, 8.41 U22 = brentq(mode_eq, U_lower, U_upper, args=(V, 2)) W22 = np.sqrt(V**2 - U22**2) beta22 = np.sqrt((k0 * n_core)**2 - (U22 / a)**2) # 传播常数 print(f"V={V:.3f}, U={U22:.4f}, W={W22:.4f}") print(f"beta={beta22:.6f} rad/m, 有效折射率={beta22/k0:.5f}")逻辑说明:mode_eq 返回的是特征方程左减右,求根就是找到让左右相等的 U。W 小于 1e-12 时特征函数在数值上会溢出,直接返回一个大数,把根从截止点附近推开,避免 brentq 撞上渐近线。brentq 要求区间两端函数值异号,这里 U_lower 和 U_upper 取在两个贝塞尔零点附近,可以保证异号。
参数说明:V 值决定了模式有没有解。上面这组参数 V≈7.30,刚过 LP22 截止值 7.0156,能解出 LP22,但 W 很小(约 2),模式很大一部分能量在包层里,图上会看到明显的包层拖尾。如果想让 LP22 稳稳限制在纤芯内,把 V 拉到 9 以上更舒服,比如 NA=0.18 或半径 15 μm。V 数太高也不行,V>12 以后高阶模式密集,相邻模式的 U 间隔变小,brentq 的区间要收得更窄。
3.3 重建 LP22 二维场分布并验证正交性
有了 U22 就可以在极坐标网格上重建场。纤芯内用 J_2(U r/a),包层用 K_2(W r/a) 衰减,连接处保证幅值连续。
# 极坐标网格:半径取到 3 倍纤芯半径,保证包层拖尾可见 R = np.linspace(0, 3 * a, 800) PHI = np.linspace(0, 2 * np.pi, 1200) rr, pp = np.meshgrid(R, PHI, indexing='ij') # 纤芯内外分段场,边界处连续 core_field = jv(2, U22 * rr / a) clad_field = jv(2, U22) / kv(2, W22) * kv(2, W22 * rr / a) radial = np.where(rr <= a, core_field, clad_field) # 乘以角向调制 cos(2*phi),四个瓣相位有正有负 E22 = radial * np.cos(2 * pp) I22 = E22**2 # 近场强度分布 # 功率归一化,便于后续重叠积分 power = np.trapezoid(np.trapezoid(I22, R, axis=0), PHI, axis=0) E22 = E22 / np.sqrt(power)逻辑说明:radial 用 np.where 在纤芯边界切换。包层里 K_2 在 r 大时指数衰减,乘系数是为了在 r=a 处和 J_2(U22) 连续。cos(2φ) 乘完后四个瓣有正有负,取平方才是强度图,所以强度图永远看不到相位正负。这也是为什么要靠模式分解或者干涉测量才能拿到相位信息。
参数说明:网格密度 800×1200 在这个尺度下足够,再密就是浪费内存。R 取到 3a 是因为 LP22 在 V≈7.3 时包层拖尾明显,只取到 a 会把外环截掉,导致和实测图对不上。如果你后面还要做重叠积分,建议把网格保持直角坐标,极坐标在中心附近会有畸变。
验证不同模式之间的正交性,可以快速解出 LP21 和 LP31,然后做重叠积分:
def solve_lp(l, m, V): """按截止零点表给 brentq 供给区间。""" intervals = { (2, 1): (3.84, 5.14), # LP21 (2, 2): (7.02, 8.42), # LP22 (3, 1): (5.14, 6.39), # LP31 } lo, hi = intervals[(l, m)] return brentq(mode_eq, lo, hi, args=(V, l)) U21 = solve_lp(2, 1, V) W21 = np.sqrt(V**2 - U21**2) radial21 = np.where(rr <= a, jv(2, U21 * rr / a), jv(2, U21) / kv(2, W21) * kv(2, W21 * rr / a)) E21 = radial21 * np.cos(2 * pp) overlap = np.trapezoid(np.trapezoid(E21 * E22, R, axis=0), PHI, axis=0) print(f"LP21 与 LP22 重叠积分 = {overlap:.2e}")逻辑说明:重叠积分等于零说明两个模式正交。实际数值结果会在 1e-14 量级,因为网格离散和求根误差。如果你看到一个明显非零的重叠积分,先查 U 是不是解错了模式——常见错误是 U 区间放错,解出了 LP03 或者 LP21 的根。这个验证做完,后面的耦合效率计算才有底气。
4. 实测近场图里确认 LP22:图像预处理、NCC 匹配与激发条件
4.1 近场成像的预处理:暗场扣除、坏点滤波与质心裁剪
实测近场图常见的流程是:光纤输出端用显微物镜放大成像到 CCD,拍到的就是强度 |E|²。直接拿原始图和仿真比对是玄学,必须先做三步预处理:扣除暗电流背景、用中值滤波去掉坏点、以光斑质心为中心裁剪出固定尺寸区域。
import numpy as np from scipy.ndimage import median_filter raw = np.fromfile('nearfield.raw', dtype=np.uint16).reshape(512, 512) dark = np.fromfile('dark.raw', dtype=np.uint16).reshape(512, 512) I_meas = raw.astype(float) - dark.astype(float) I_meas = median_filter(I_meas, size=3) # 去坏点和随机噪声 # 以质心为中心裁剪 200x200 cy, cx = np.unravel_index(np.argmax(I_meas), I_meas.shape) I_crop = I_meas[cy-100:cy+100, cx-100:cx+100] I_crop = I_crop / I_crop.max() # 归一化到 0~1逻辑说明:暗场扣除是拿物镜挡住光源时拍的帧相减,能去掉 CCD 热噪声和固定图案噪声。中值滤波 size=3 对单像素坏点很有效,也不会把花瓣的边缘磨掉。质心裁剪用最大亮度代替质心计算,在单模或少模情况下够用;如果拍的是多模叠加场,最大亮度点可能不在几何中心,这时用 I_meas 的灰度重心更稳。
参数说明:裁剪尺寸 200×200 是根据 CCD 像素数和光斑放大倍数定的。实测时先让光斑占画面 1/3 到 1/2,再裁剪,避免光斑太小导致插值误差。归一化放在裁剪之后,因为暗场扣除后背景会有负值,直接归一化会被背景拉偏。
4.2 旋转扫角做 NCC 匹配:阈值设多少才能认定 LP22
LP22 强度图有 4 重旋转对称(cos²(2φ) 的周期是 π/2),所以旋转匹配只需要扫 0° 到 90°。归一化互相关(NCC)公式是:
NCC = Σ[(I_meas - μ_m)(I_sim - μ_s)] / (N·σ_m·σ_s)
NCC 最大值为 1 表示完全一致。实际经验:0.8 以上基本可以确认是同一个模式,0.6~0.8 说明有混合模式或偏振扰动,0.6 以下果断认为不是 LP22。
from scipy.ndimage import rotate from scipy.signal import correlate2d def ncc(a, b): a = (a - a.mean()) / (a.std() * np.sqrt(a.size)) b = (b - b.mean()) / (b.std() * np.sqrt(b.size)) return correlate2d(a, b, mode='same').max() # 仿真强度图缩放到和实测裁剪一致 I_sim = np.array(I22) # 前面算出的 LP22 强度图 I_sim = I_sim / I_sim.max() best_ncc, best_angle = 0, 0 for angle in np.arange(0, 90, 0.5): I_rot = rotate(I_sim, angle, reshape=False, order=1) score = ncc(I_crop, I_rot) if score > best_ncc: best_ncc, best_angle = score, angle print(f"最佳匹配角 {best_angle:.1f}°,NCC={best_ncc:.3f}")逻辑说明:ncc 函数先把两幅图各自标准化,亮度差异不影响结果,背景稍有不均匀也能扛住。correlate2d 用 mode='same' 允许两幅图有轻微平移,峰值位置同时告诉你横向偏移量。扫角步长 0.5° 足够,四瓣对称下 1° 步长其实也够,0.5° 是为了余量。
参数说明:如果 NCC 一直低于 0.7,不要急着加角度范围,先怀疑拍到的不是纯 LP22,而是和 LP21 或 LP03 的叠加场。另外,偏振态会影响高阶模式近场图,建议在物镜前加偏振片,分别拍两个正交偏振方向,再挑 SNR 高的一组做匹配。
4.3 稳定激发 LP22:偏移入射、SLM 相位板与耦合效率计算
识别是后话,前提是能把 LP22 稳定激发出来。常见做法有三种:偏移入射、空间光调制器(SLM)写入相位板、长周期光栅耦合。
偏移入射最简单:把输入高斯光的横向位置从纤芯中心移开,可以激发出高阶模,但缺点是不能精确控制激发哪一个模式。想要只在 LP22 上有高耦合效率,需要让入射场和 LP22 场分布的重叠积分尽量大:
η = |∫∫ E_in^* · E_22 dA|² / (∫∫|E_in|²dA · ∫∫|E_22|²dA)
对 LP22 来说,E_22 有 cos(2φ) 的角向变化,普通高斯光重心在中心,直接入射的重叠积分接近零。所以要么把高斯光偏移产生倾斜波前,要么用 SLM 直接生成带 cos(2φ) 相位的类 LP22 场。SLM 的做法是:计算 LP22 的复振幅,取相位图加载到 SLM 上,平行光照射后经过物镜耦合进光纤。常见参数是像素间距 15 μm 的 SLM 配 20 倍物镜,相位量化 8 bit,耦合效率能做到 30%~50%。
耦合效率的计算可以直接复用在 3.3 节重建的场:
# E_in 是入射光场(高斯或 SLM 出射场),E22 是 3.3 节的归一化场 E_in_norm = E_in / np.sqrt(np.trapezoid(np.trapezoid(np.abs(E_in)**2, R, axis=0), PHI, axis=0)) overlap_integral = np.trapezoid(np.trapezoid(np.conj(E_in_norm) * E22, R, axis=0), PHI, axis=0) eta = np.abs(overlap_integral)**2 print(f"LP22 耦合效率 = {eta:.1%}")逻辑说明:这个公式算的是入射场和目标模式之间的模式耦合效率,前提是 E_in 和 E22 都做了功率归一化。实际 SLM 生成的场会有量化噪声和波前误差,计算值会偏高,实测通常要打个六折。想精确预估,可以在 E_in 上叠一个随机相位扰动来模拟 SLM 的相位噪声。
参数说明:R 和 PHI 网格要和 3.3 节保持完全一致,否则重叠积分会有虚假的高频误差。如果 E_in 是用直角坐标采样的,先插值到这套极坐标网格上再算。
5. LP22 分析的四个常见坑:认错模式、仿真不收敛到熔接串扰
5.1 现象:强度图看着是四瓣,实际是 LP21 或者叠加场
仿真或实测出图以后,看到四个亮瓣就认定 LP22,这是最普遍的一次翻车。用图像工具沿某个花瓣的径向提一条强度剖面线,数一下峰的数量,单峰是 LP21,双峰才是 LP22。很多情况下四瓣图其实是 LP21 和 LP02 的叠加——LP02 提供中间亮斑,LP21 提供四瓣,两者截止频率相同(3.8317),在 V 数略高时同时被激发,叠加场看起来很像四瓣结构。
原因:只看了角向瓣数,没看径向峰数和中心明暗。LP21 四瓣单峰,LP02 中心亮环,LP22 四瓣双峰且中心暗,三个特征缺一不可。
解决:先在仿真里把 LP21、LP02、LP22 三个模式的强度图都画出来存成模板,实测图出来后做一个三路 NCC 匹配,而不是只和 LP22 比。匹配分数最高的那个才是真相。
5.2 现象:brentq 求根报错,或者解出的 U 不在预期区间
用 3.2 节的求解器时,brentq 偶尔会抛“f(a) 和 f(b) 不是异号”的异常。最常见的原因是 V 数设低了。V<7.0156 时 LP22 根本不存在,特征方程在 (7.02, 8.41) 区间里没有根。另一个原因是区间端点太靠近贝塞尔零点,特征函数在零点附近有渐近线,brentq 会撞墙。
原因:对模式的截止条件没概念,或者区间取值过于贴近理论边界。求解前先算 V,确认 V 比截止值大 10% 以上,再套区间。
解决:把区间内缩一点,比如 (7.05, 8.35),避开端点渐近线;同时把 mode_eq 里 W<1e-12 的保护阈值提到 1e-6,让求根器在截止边缘直接返回大数而不是算出一个异常值。还有一个血泪经验:永远先画特征函数曲线看一眼零点位置,再交给 brentq,不要盲目相信区间。
5.3 现象:实测花瓣数对不上,拍出来只有两瓣
近场图应该四瓣,结果 CCD 拍到两瓣,或者四瓣亮度明显不均匀。原因通常是两个:一是光纤输出端弯曲,弯曲导致 LP22 的两个偏振分量(cos 方向和 sin 方向)传播常数发生分裂,两个分量拍频叠加,图样变成两瓣或出现螺旋状;二是拍到的其实是 LP11 和 LP22 的混合,LP11 两瓣能量较大盖过了 LP22 的弱瓣。
原因:高阶模对弯曲极其敏感,LP22 的弯曲损耗比 LP21 大一个量级,光纤稍微一弯,模式场就畸变。
解决:输出端光纤保持顺直,用夹具固定,弯曲半径控制在 10 cm 以上;拍图前先用红外相机看光斑稳定性,确认没有模式跳动。如果偏振分裂造成的两瓣化一直存在,在物镜前加偏振片,分别拍两个正交方向,再在仿真里对 LP22 的两个偏振分量分别做匹配,而不是拿一个偏振分量的图去比。
5.4 现象:熔接后 LP22 能量骤降,LP01 能量回升
前一步还稳定的 LP22,熔接一段光纤之后发现高阶模能量掉了一半以上,输出变成了以 LP01 为主。这在少模光纤实验里特别容易遇到。
原因:熔接点如果有横向偏移、端面角度或者锥区,光纤的绝热条件被破坏。高阶模在熔接锥区里会耦合回基模——模式没有消失,是能量被“倒灌”了。熔接机的默认参数是为单模光纤调的,电弧强度和放电时间对少模光纤来说往往过冲。
解决:熔接前先用仿真扫一遍锥区长度,绝热条件要求锥区长度和模式拍长满足关系。工程上更直接的办法是改用拉锥熔接或者减小放电强度,熔接后立刻用近场图验证 LP22 占比。另一个后悔药是熔接前在两端各留一段 10 cm 的顺直光纤,用夹具固定好再放电,能显著减少熔接点应力和偏移。
6. 进阶:LP22 与 LP03 简并时,用一个重叠积分排序拆开简并组
LP22 和 LP03 的截止频率同为 7.0156,在 V 数刚过截止时传播常数差得非常小。商用求解器按特征值大小输出模式,会把这两个模式排在一起,而且排序顺序随网格变化抖动——上一版还是 LP22 在前,加密网格后 LP03 跑到前面去了。这种黑匣子行为坑过不少人。
我的做法是永远不信任求解器的模式序号,只用重叠积分来认模式。具体操作是:先用 3.2 节的标量求解器算出 LP22 和 LP03 的参考场,然后把 COMSOL 或 Lumerical 导出的原始模式场(不管它叫 Mode 几)逐一和两个参考场做重叠积分,按分数重新排序。
# ref22 和 ref03 是标量求解器重建的参考场,modes 是矢量求解器导出的场 for i, mode in enumerate(modes): ov22 = np.abs(np.sum(np.conj(ref22) * mode)) / np.sum(np.abs(mode)**2) ov03 = np.abs(np.sum(np.conj(ref03) * mode)) / np.sum(np.abs(mode)**2) print(f"mode {i}: <LP22>={ov22:.2f} <LP03>={ov03:.2f}")逻辑说明:归一化方式这里做了简化,实际严格做法是两边都功率归一化后再算复重叠积分。分数接近 1 的模式就是目标模式。如果 mode 3 的 LP22 分数是 0.92,LP03 分数是 0.03,那基本可以判定 mode 3 就是 LP22,哪怕求解器把它排在 mode 5。
这套方法在做模式复用系统时特别有用。少模光纤里高阶模数量一多,简并组内传播常数差小于 1e-6 量级是常事,靠特征值排序迟早翻车。按重叠积分追踪模式的好处是结果不随网格变化,换个网格密度重新导出,排序结果还是同一个。代价是你得先有标量参考场——所以 3.2 节那个 brentq 求解器我一直在用,它是后面所有模式识别的锚点。
最后一句话是我踩过最深的一个坑换来的:不管仿真还是实测,永远别用肉眼看图认模式,跑一遍重叠积分再说话。希望帮到你。
本文还有配套的精品资源,点击获取