Files
vd-analysis/docs/filter-coefficient-79-vs-64.md
T
wangfq 55a39f740a docs(front-end): 图纸取证钉死 CD4060 分频比 = ÷32(Q5);勘误 PD132T 捕获时钟 0.75MHz→3MHz
- 依据用户口径「PD136 与 PD132 接 CD4060 的电路相同」,对仓内 PD132T 逻辑图纸做像素取证:
  800dpi 逐行游程扫描确认 10 个 Q 输出中仅 Q5(pin5) 引出(476px)→ 网络 LP → MCU U2 pin9=CEX1/T1/P3.5,
  与固件 CMOD=0x04 捕获配置吻合 ⇒ 分频比 = ÷32
- 独立佐证:PD136HA 窗(400~2030)/PD132L 窗(320~1620)=1.25 = 捕获时钟比(1.5/1.2MHz) ⇒ N 相同
- 勘误:PD132T PCA 时钟 = SYSCLK/4 = 3MHz(TH0=252 + AUXR=0xC0 + T1 5ms 定时反证 SYSCLK=12MHz),
  测量节拍 43.7ms→10.92ms;连带修正 6 处派生量(IIR τ、基线周期、响应时间、对比结论)
- 同步 5 份受影响文档并加日期勘误标注;阈值/百分比口径不受影响(N×f_cap 乘积不变)
2026-09-11 03:23:28 +08:00

10 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%
21/256 = 0.0820 11.68 12.19 +4.3%
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 10.92 ms(勘误) 35.4 ms 43.7 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 @10.92ms,勘误)
τ(产品线口径) 32 ms 35~44 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=120ms   (α79→τ22ms vs α21→τ117ms, V4.04) ✓
[release] fast=150ms slow=350ms  差 200ms ✓

V4.03 初版 α18 实测 fast=30ms slow=140ms / 差 260ms——α21 收敛到 200ms 更贴近 PD132T(见 §4.4 V4.04 修正)。

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

  • 新增独立慢滤波 loop1_CAPVD_slowRELEASE_ALFA=21 @10ms → 精确 τ≈117msV4.03 初版 α18 精确 τ≈137ms 偏慢)
    • 2026-09-11 勘误:原依据「对齐 PD132T α79 @43.7ms ⇒ τ≈118ms」不成立 —— PD132T 捕获时钟实为 3MHz ⇒ 节拍 10.92ms ⇒ 精确 τ(α79) = 29.6ms。即 V4B 慢滤波(117ms)实际比 PD132T 慢约 4×,属「以慢换稳」的实调结果而非对齐结果;现场表现与此相符(V4B 释放更晚、金属板工况复测已通过)⇒ 是否回调由现场复测定(建议先实测 PD132T 侧真实节拍)
  • 离开判定用慢滤波值,进入路径不变(快滤波保触发响应)
  • 开关 USE_SLOW_RELEASE0=回退原快滤波释放)
  • V4.04 进入 snap 修正:进入确认瞬间 loop1_CAPVD_slow = loop1_CAPVD——进入线(档3 0.032%)恒深于离开线(0.021%),snap 后释放条件结构性为假,消除"定在 HR0/2 保持即释放"的进入瞬态假释放窗口(2026-09-01 仿真+现场复核)
  • 调参(2026-09-11 勘误后重算):若现场 PD132T SET_FLT=ON(α64 → 精确 τ≈38.0ms @10.92ms),对齐值改为 RELEASE_ALFA=59(精确 τ≈38ms @10ms);旧稿「调 15」基于 43.7ms 节拍,已作废

τ 口径教训(2026-09-01:跨代替换对齐必须用精确口径 τ = T/ln(1−α)。α=79 时产品线口径 T×256/α 高估 19.6%——方案A 初版按产品线口径把 α18 当"对齐 PD132T 142ms",实际 PD132T 精确只有 118ms、α18 精确 137ms,反而慢 16%,导致释放偏高。α21(精确 117ms)才真正对齐。

2026-09-11 追加勘误:上述「α21 对齐 PD132T 118ms」的整体前提已失效 —— PD132T 节拍不是 43.7ms 而是 10.92ms(捕获时钟 3MHz),其精确 τ(α79) 只有 29.6ms。⇒ V4B 现役 α21117ms)比 PD132T 慢约 4×,「慢 16% 导致释放偏高」的推理链需按新节拍重做。固件暂不动:现场(金属板/慢速抬板)复测在 α21 下已通过,且「释放更晚」与观察一致 —— 是否重调请以现场实测 PD132T 节拍为准。

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),别共用进入系数。