Files
vd-analysis/docs/filter-coefficient-79-vs-64.md
T
wangfq bbb5496860 docs(analysis): 滤波系数与时间常数详解 v2 — 公式推导 + 触发/释放双影响 + 方案A案例
2026-08-31 更新 filter-coefficient-79-vs-64.md:
- §2 时间常数公式详解: 离散 IIR 阶跃响应推导, 精确口径(-T/ln(1-α)) vs
  产品线口径(T/α)对比表(α越大偏差越大, 小系数几乎一致)
- §4 释放影响(新增): 释放=恢复过程, 阈值浅(进入20%)放大τ差异;
  V4B τ32ms vs PD132T τ142~175ms → 释放高度差实测案例
- 数学验证: gcc 单测 fast=150ms/slow=410ms 差260ms
- 方案A范式: 进入保79快响应, 释放独立慢滤波(RELEASE_ALFA=18 τ≈142ms)对齐对手
- §6 结论: 释放路径按交付对手的τ独立对齐, 别共用进入系数

同步: cross-model-comparison 引用标注 v2
2026-08-31 18:14:18 +08:00

8.1 KiB
Raw Blame History

滤波系数与时间常数详解(对触发/释放的影响)

日期:2026-08-31(v2,扩展公式推导 + 释放影响 + 方案 A 案例) 依据:M1H/PD132L/PD132T/PD136HA 参考代码 + DLD154V4B/154Pro 现行实现 + 2026-08-31 现场金属板测试 数据:确定性数学计算 + gcc 单测(DLD154V4B/tests/test_release_slow_filter.c),时间常数含产品线口径(256/α)与精确口径(ln)两套


1. 滤波系数是什么

DLD 血统参考代码(M1H → PD132L → PD132T → PD136HA → DLD154V4B)的检测通道 IIR 系数:

#define ALFA_CAP1  79   // 检测通道 IIR —— 增强滤波(响应快)
#define ALFA_CAP2  64   // 检测通道 IIR —— 普通滤波(更平滑)

滤波公式(PD132L 源码确认,Δ×Flt_Reg>>8 双向):

if (Value > CAPVD) CAPVD += (Value - CAPVD) * Flt_Reg >> 8;
else               CAPVD -= (CAPVD - Value) * Flt_Reg >> 8;

即一阶 IIRy[n] = y[n1] + α·(x[n] y[n1]),α = Flt_Reg/256,每个测量节拍执行一次。

各型号实际生效系数

型号 生效系数 说明
M1H (8051, 2008) 恒 79 ALFA_CAP2 定义了但 main 恒用 79DLD 血统源头
PD132T (8051, 2021) 拨码 SET_FLT 切换 79/64 唯一给用户开关的型号
PD136HA (M0+, 2021) 恒 64 INIT_VD 置 79,主循环强制 ALFA_CAP2SET_FLT 分支已注释
DLD154V4B / vd960Loop (M4) 恒 79 外加 5% 斜率限幅 + 进入确认 3 次(M4 优化)
DLD154Pro (RISC-V) 恒 79 @8.74ms τ≈28ms

基线通道 ALFA_ORG1/2=64 与检测通道无关:低频温漂两者都拦不住(0.5Hz 以下增益≈0dB),漂移由基线跟踪(有车冻结 + 冻结超时 + 漂移监测)处理。


2. 时间常数公式详解

2.1 离散一阶 IIR 的阶跃响应

单位阶跃输入(x=1, y[0]=0):

y[n] = 1  (1−α)^n

达到 63.2%11/e 所需样本数即时间常数:

(1−α)^n = e^(1)  →  n = 1/ln(1−α)

2.2 精确口径 vs 产品线口径

口径 公式 说明
精确 τ = T / ln(1−α) 离散系统严格解
产品线 τ = T / α 小 α 近似(ln(1−α) ≈ −α),工程口径

两口径差异(α 越大差越多):

α 精确 τ/T 产品线 τ/T 偏差
79/256 = 0.3086 2.709 3.241 +19.6%
64/256 = 0.2500 3.476 4.000 +15.1%
18/256 = 0.0703 13.83 14.22 +2.8%
15/256 = 0.0586 16.60 17.07 +2.8%

产品线口径(256/α)简单直观,α 越大偏差越大但工程上无碍(对比用);小系数(如方案 A 的 18)两口径几乎一致。文档统一用产品线口径,标注"τ ≈ T/α"

2.3 各型号节拍下的 τ(产品线口径)

型号 测量节拍 T τ(α=79) τ(α=64)
M1H 32.8 ms 106 ms 131 ms
PD132L 27.3 ms 88 ms 109 ms
PD132T 43.7 ms 142 ms 175 ms
PD136HA 21.8 ms 71 ms 87 ms(实际生效)
DLD154V4B 10 ms 32 ms 40 ms
DLD154Pro 8.74 ms 28 ms 35 ms

3. 对触发(进入)的影响

3.1 阶跃响应越线时间

车辆进入(Origin=131072,中档 dlt=216,信号深 2×dlt=432):

采样点 α=79 输出 α=64 输出
0 131072 131072
1 130939 130964
2 130847 ← 越线 130883
3 130783 130822 ← 越线
  • 越线(进入触发)79 第 2 样本 = 20ms64 第 3 样本 = 30ms,差 10ms
  • 95% 收敛79 = 81ms64 = 104ms,差 23ms
  • 叠加进入确认 3 次(V4B)后:79 ≈ 50ms64 ≈ 60ms——确认机制本身 30ms,把滤波差异摊薄一半

3.2 触发为什么对滤波差异"不敏感"(现场观察)

  • 触发阈值(进入表 {300,60,32,21},档0 = 0.458% Δf/f
  • 金属板接近时信号深入快,滤波滞后折算成高度差小(τ 差 × 手速 ≈ 1~2mm)
  • V4B 进入确认 3 次(+30ms)进一步抵消快滤波的提前量

结论:触发手感对滤波系数不敏感,快/慢滤波在触发路径上几乎无感。


4. 对释放(离开)的影响 (本版新增,方案 A 案例)

4.1 释放是"恢复"过程,对滤波更敏感

释放判定:CAPVD 恢复到 (Origin dlt_leave) 即释放。关键差异:

  1. 释放阈值极浅(离开表 {60,32,21,14} = 进入的 20%,档0 = 0.092% Δf/f
  2. 金属板离开时,CAPVD 从"有车深度"向基线恢复,恢复速度 = f(τ)
  3. 慢滤波(大 τ)→ CAPVD 恢复慢 → 要金属板离得更远(信号恢复更多)才到阈值 → 释放高度高(晚释放)
  4. 快滤波(小 τ)→ CAPVD 几乎实时跟上 → 刚离开就恢复过阈值 → 释放高度低(早释放)

释放阈值浅是放大器CAPVD 只需恢复到基线 0.092% 以内就释放,慢滤波下这段恢复要等很久;同样 τ 差异在触发(深阈值)路径上几乎不可见,在释放(浅阈值)路径上被放大成明显高度差。

4.2 实测案例(2026-08-31PD132T 替换交付)

金属板从上往下接近触发、从下往上离开释放:

V4B(α79 @10ms PD132T(α79/64 @43.7ms
τ 32 ms 142~175 ms
触发高度 一致 ✓ 一致
释放高度 刚离开触发位置即释放 需离得更远才释放

根因:V4B CAPVD 恢复速度是 PD132T 的 4.4~5.5×,释放阈值浅(进入 20%)放大差异。

4.3 数学验证(gcc 单测 test_release_slow_filter.c

模拟:Origin=100000,离开阈值 60→dlt=91,金属板离开信号每 10ms 恢复 +80:

[tau]     fast=30ms  slow=140ms   (α79→τ32ms vs α18→τ142ms) ✓
[release] fast=150ms slow=410ms  差 260ms ✓

4.4 方案 A:释放慢滤波对齐(V4B V4.03)

  • 新增独立慢滤波 loop1_CAPVD_slowRELEASE_ALFA=18 @10ms → τ≈142ms,复刻 PD132T α79 @43.7ms 恢复速度)
  • 离开判定用慢滤波值,进入路径不变(快滤波保触发响应)
  • 开关 USE_SLOW_RELEASE0=回退原快滤波释放)
  • 调参:若现场 PD132T SET_FLT=ON(α64 → τ≈175ms),RELEASE_ALFA15(τ≈170ms

4.5 释放/触发灵敏度对照(滤波系数影响全景)

路径 阈值深度 对滤波 τ 的敏感度 表现
触发(进入) 深(0.458% 快/慢滤波触发时机差 ~10ms,手感无感
释放(离开) 浅(0.092% τ 差 4× → 释放高度差明显(260ms 等效)
释放(确认次数) 3×10ms 固定延迟,不随 τ 变化

5. 噪声抑制(64 的卖点,数据很弱)

噪声类型 79 64 64 多压的
白噪声 RMS 7.4 dB 8.5 dB 1.1 dB
50 Hz 工频 @10ms 15.1 dB 16.9 dB 1.8 dB
10 Hz 慢拍 5.6 dB 7.5 dB 1.8 dB
5 Hz 1.5 dB 3.4 dB 1.8 dB
0.5 Hz 以下(温漂) ≈0 dB ≈0 dB 都拦不住

6. 结论与选型指南

  1. 触发路径:无脑 79——触发快 10ms、收敛快 23ms,代价仅少压 ~1dB 噪声;防误触发靠斜率限幅 + 进入确认,不在 α 上抠。
  2. 释放路径:滤波系数决定"释放手感"(本版新增)——释放阈值浅,τ 差异直接放大成释放高度差;跨代替换交付(如 PD132T→V4B)必须评估释放路径的 τ 对齐,否则触发一致、释放手感不一致。
  3. 方案 A 是"释放路径单独调 τ"的范式:进入保 79(快响应),释放独立慢滤波(复刻对手恢复速度),一个开关切换,互不干扰。
  4. PD136HA 恒 64 是保守派:SET_FLT 注释死,主动放弃响应换 1.1dB 平滑,数据看不划算。
  5. 基线通道恒 64 是另一回事:温漂两者都拦不住,靠冻结 + 漂移监测处理。

建议:检测通道进入恒 79;释放路径按交付对手的 τ 独立对齐(RELEASE_ALFA),别共用进入系数。