3. 精密信号链的误差预算建模

误差预算(Error Budget)是精密信号链设计中最具工程价值的一步。它把“这个电路精度够不够”这种模糊问题,转化为一张可计算、可追溯、可优化的表格:每一类误差贡献多少、在总误差中占多大比例、哪一项是主导项、改哪一项最划算。本节以 ADI 典型精密信号链(如 ADI 精密运放 + 基准 + ADC 构成的采集通道)为对象,讲清误差分解方法,并给出用 Excel 或 Python 建立预算表、定位主导误差项的具体做法。

一、先约定参照系与误差口径

误差预算最容易出错的地方不是算错,而是口径不统一。开始建模前必须先固定三件事:

  • 参照点:所有误差统一折算到“输入端(RTI)”还是“输出端(RTO)”。工程上推荐先全部折算到 RTI,再乘以增益得到 RTO,避免增益放大关系混乱。
  • 误差类型:区分“失调型(固定偏移,可用校准消除)”与“增益型(比例误差,随信号大小变化)”,以及“随机型(噪声,用 RSS 合成)”与“系统型(温漂、非线性,用代数合成)。
  • 统计口径:噪声按均方根(RSS)合成;系统误差按最坏情况(Worst-Case)线性相加,或按 RSS 合成并注明置信度。两种口径不能混用。

本节统一采用:RTI 折算、噪声 RSS、系统误差最坏情况相加。温度范围示例取 −40 ℃~+85 ℃,参考温度 25 ℃。

二、误差分解:五类来源与折算公式

精密信号链的直流精度主要由五类误差构成,它们对总误差的贡献方式不同:

误差类别典型来源折算到 RTI 的方式合成方式
初始失调 VOS运放输入失调电压直接为 RTI 值代数相加
失调温漂VOS 的温度系数TC×ΔT代数相加
增益误差电阻容差、运放增益非线性增益误差×满量程输入代数相加
基准误差基准初始精度、温漂折算到输入满量程代数相加
噪声运放电压/电流噪声、电阻热噪声谱密度×√ENBWRSS

以增益 G=100 的运放电路为例,RTI 折算关系为:

V_OS_RTI   = V_OS
V_OS_TC_RTI = TC_VOS × ΔT
Gain_Err_RTI = (ΔG/G) × V_FS_in
Ref_Err_RTI  = (ΔV_REF/V_REF) × V_FS_in
Vn_RTI     = e_n × sqrt(ENBW)   (折合到输入)
I_n_RTI    = i_n × R_eq

其中 ENBW(等效噪声带宽)对一阶低通为 1.57×f−3dB,对多阶滤波需按砖墙因子修正。这一步是噪声预算中最容易被低估的环节。

三、用 Excel 建立预算表

Excel 适合快速迭代和团队共享。建议按以下列结构建表:

项目 | 符号 | 典型值 | 最大值 | 单位 | 折算系数 | RTI值 | 合成方式 | 占比
初始失调 | Vos | 25u | 100u | V | 1 | =C2*F2 | 代数 | =G2/$G$总
失调温漂 | TC_Vos | 0.5u | 2u | V/℃ | ΔT=60 | =D3*60 | 代数 | ...
增益误差 | dG/G | 0.05% | 0.2% | - | VFS=10m | =D4*0.01 | 代数 | ...
基准误差 | dVref | 0.05% | 0.1% | - | VFS=10m | =D5*0.01 | 代数 | ...
噪声 | Vn | - | 1.2u | Vrms | - | =D6 | RSS | ...

关键公式:系统误差合计 = Σ(RTI 代数项);噪声合计 = √(Σ Vn²);总误差 = 系统合计 + 噪声合计(保守)或 √(系统² + 噪声²)(统计)。占比列用“单项 RTI / 总 RTI”计算,占比超过 30% 的项即为主导误差项。

四、用 Python 建立可复用预算模型

Python 适合参数化、批量扫描和自动定位主导项。下面是一段可直接运行的示例(参数为教学假设值,非实测):

import numpy as np

# 教学示例参数(假设值)
Vos_max   = 100e-6      # V
TC_Vos    = 2e-6        # V/℃
dT        = 60          # ℃
dG_over_G = 0.002       # 0.2%
VFS_in    = 10e-3       # V
dVref_over_Vref = 0.001 # 0.1%
en        = 20e-9       # V/√Hz
ENBW      = 1.57*10e3   # Hz

items = {
 "初始失调": Vos_max,
 "失调温漂": TC_Vos*dT,
 "增益误差": dG_over_G*VFS_in,
 "基准误差": dVref_over_Vref*VFS_in,
}
noise = en*np.sqrt(ENBW)

sys_sum = sum(items.values())
total   = sys_sum + noise
for k,v in items.items():
    print(f"{k}: {v*1e6:.2f} uV, 占比 {v/total*100:.1f}%")
print(f"噪声: {noise*1e6:.2f} uVrms, 占比 {noise/total*100:.1f}%")
print(f"总误差(RTI): {total*1e6:.2f} uV")

运行后可立即看到哪一项占比最大。若“失调温漂”占比最高,说明应选低 TC_Vos 的运放或增加温度校准;若“噪声”占比最高,则应降低 ENBW 或选低 en 器件。这就是“定位主导误差项”的实际含义。

精密信号链误差预算分解与主导项定位 误差来源(RTI) 初始失调 V_OS 100 µV 失调温漂 TC×ΔT 120 µV 增益误差 ΔG/G 20 µV 基准误差 ΔVref 10 µV 噪声 e_n×√ENBW 0.79 µVrms 合成方式 系统误差 代数相加 100+120+20+10 = 250 µV 噪声 RSS 合成 √(ΣVn²) = 0.79 µVrms 总误差与主导项定位 总误差(RTI) ≈ 250.8 µV 失调温漂占比 47.8% ← 主导误差项 初始失调占比 39.9% 次主导项 增益+基准+噪声 合计占比 12.3% 优化方向:低 TC_Vos 运放 或增加温度校准

五、定位主导误差项后的工程决策

预算表的价值在于指导选型与优化。以上述示例结果为例:失调温漂占比 47.8%,是主导项。此时有三种可行路径:

  1. 换器件:选择 TC_Vos 更低的精密运放(如从 2 µV/℃ 降到 0.5 µV/℃),温漂项从 120 µV 降到 30 µV,总误差降至约 160 µV。
  2. 缩窄温区:若实际工作温度只需 0~50 ℃,ΔT 从 60 ℃ 降到 25 ℃,温漂项降至 50 µV。
  3. 系统校准:在 25 ℃ 和 85 ℃ 两点校准失调,可把初始失调和部分温漂从预算中扣除,但需评估校准成本与残余非线性。

若噪声成为主导项,则应优先降低 ENBW(如降低滤波器截止频率)或选择低 en 器件,而不是盲目提高增益。若增益误差主导,则应改用 0.01% 精密电阻或匹配电阻网络。

建议在预算表中增加“优化后”一列,对每个候选方案重新计算总误差和占比,形成可对比的决策依据。ADI 官网的运放参数筛选工具和噪声计算器可作为参数来源,但最终预算表应基于实际工作条件自行建立。
常见错误:把噪声与系统误差直接代数相加,导致总误差被高估;或把 RTI 与 RTO 混用,导致增益项被重复放大。建模前务必统一口径,并在表中显式标注参照点。

误差预算不是一次性的计算,而是贯穿选型、原理图设计、PCB 布局和测试验证的迭代过程。建议在原理图阶段就建立初版预算表,在样机测试后用实测值回填并修正模型,使预算表逐步逼近真实系统行为。这样,当最终精度不达标时,你能快速回答“是哪一项超了、为什么超、改哪里最有效”,而不是靠反复换器件试错。