refactor(sensor): 重构采样策略,Butterworth 20Hz 滤波 + 50Hz 输出

- 采样次数 17→9 提升帧率至 ~100Hz(Nyquist 50Hz)
- 移除 CoP 级自适应 IIR,改为通道级二阶 Butterworth(fc=20Hz)
- 保留 8-10Hz 振动板信号(通过率 98%),抑制高频噪声
- 2:1 降采样实现 50Hz BLE 输出
- 迟滞阈值 5/2→3/1 kg,死区 1000→250 counts
- 新增 EMI 检测:采集异常短时触发寄存器恢复
This commit is contained in:
2026-05-19 14:50:10 +08:00
parent d95cce5cf2
commit a2d6ef8893
2 changed files with 64 additions and 43 deletions
+13 -6
View File
@@ -5,7 +5,7 @@
/* ─── 板面几何 & 传感器物理常量 ─── */
#define BOARD_HALF_WIDTH_CM 42.5f /* 传感器到板中心 X 方向距离 (cm) */
#define BOARD_HALF_WIDTH_CM 42.5f /* 传感器到板中心 X 方向距离 (cm) */
#define BOARD_HALF_LENGTH_CM 16.0f /* 传感器到板中心 Y 方向距离 (cm) */
/*
@@ -28,12 +28,19 @@
#define ADC_TO_FORCE_SCALE (SENSOR_RATED_LOAD_KG / ADC_COUNTS_AT_RATED)
/* CoP 有效判定:迟滞阈值,防止边界抖动 */
#define COP_FORCE_ENTER_THRESHOLD 5.0f /* 总力超过此值才判定有人 (kg) */
#define COP_FORCE_EXIT_THRESHOLD 2.0f /* 总力低于此值才判定离开 (kg) */
#define COP_FORCE_ENTER_THRESHOLD 3.0f /* 总力超过此值才判定有人 (kg) */
#define COP_FORCE_EXIT_THRESHOLD 1.0f /* 总力低于此值才判定离开 (kg) */
/* CoP IIR 低通:轻载平滑、重载直通 */
#define COP_LPF_ALPHA_LIGHT 0.3f /* 轻载平滑系数(越小越平滑) */
#define COP_HEAVY_FORCE 10.0f /* 超过此值视为重载,直通无延迟 (kg) */
/*
* 通道级二阶 Butterworth 低通:fc=20Hz, fs=100Hz
* 10Hz 通过 98%20Hz -3dB25Hz -6.6dB
* 保留 8-10Hz 振动板信号,同时为 50Hz 输出抗混叠
*/
#define LPF_B0 0.2065720838f
#define LPF_B1 0.4131441677f
#define LPF_B2 0.2065720838f
#define LPF_A1 (-0.3695273774f)
#define LPF_A2 0.1958157127f
/* ─── 标定常量 ─── */