4. 康复评估数据预处理工程

康复评估算法拿到的原始数据,几乎不可能是“干净”的。惯性测量单元(IMU)、表面肌电(sEMG)、测力台、关节角度传感器、视频姿态估计往往各自独立采集,采样率不同、时钟不同、量纲不同,还夹杂着工频干扰、运动伪迹、丢包和瞬时跳变。如果直接把这些数据送进特征提取或模型,得到的评分、分类或趋势判断很可能被噪声和错位主导。因此,预处理不是“可选的清洗步骤”,而是决定后续算法可信度的工程基础。本节围绕时间同步、去噪滤波、缺失值处理、异常检测与标准化五个环节,说明它们各自解决什么问题、按什么顺序衔接,以及在实际康复评估场景中如何落地。

一、时间同步:先让多源数据“对齐到同一根时间轴”

康复评估常同时使用多种设备。例如,一套步态评估系统可能包含:左右腿各一个 IMU(采样率 100 Hz)、一块测力台(1000 Hz)、四通道 sEMG(2000 Hz)以及一台摄像机(30 fps)。这些数据的时间戳来自不同时钟,若不做同步,膝关节角度峰值与地面反作用力峰值可能相差几十甚至上百毫秒,导致“支撑相”与“摆动相”的划分完全错位。

时间同步通常分两步。第一步是硬件或事件同步:用一个同步触发信号(如闪光标记、电压脉冲或软件广播的同步包)同时标记所有设备的起始时刻,记录各设备本地时间与统一参考时间的偏移量。第二步是软件重采样与对齐:以最低采样率或统一目标采样率为基准,将高频信号降采样、低频信号插值,生成等间隔时间序列。例如统一到 100 Hz,则测力台每 10 个点取一个均值,sEMG 每 20 个点取一个均值,摄像机则用线性插值补齐到 100 Hz。对齐后应检查关键事件(如足跟着地、动作起始)在各通道上的时间差,一般要求控制在 1~2 个采样周期内。

二、去噪与滤波:区分“有用信号”和“干扰成分”

去噪与滤波的目标不是把信号“磨平”,而是保留与康复评估相关的生理或运动成分。不同信号频段差异很大:sEMG 有效频段约 20~450 Hz,工频干扰集中在 50 Hz 及其谐波;IMU 加速度信号中,人体运动主频通常在 0.5~20 Hz,而高频振动和电磁噪声在 20 Hz 以上;关节角度信号则更平滑,主频多在 0~10 Hz。

常用处理方式包括:对 sEMG 先做 20~450 Hz 带通滤波,再用 50 Hz 陷波器抑制工频;对 IMU 加速度和角速度做 5~20 Hz 低通滤波;对关节角度做 6~10 Hz 低通或 Savitzky-Golay 平滑。滤波器的选择要关注相位延迟:康复评估中常关心峰值时刻和时序关系,若使用普通 IIR 滤波器,需采用零相位滤波(如 filtfilt)避免波形整体后移。下面给出一个典型的多通道滤波参数示例:

# 示例:不同通道的滤波配置(参数为教学示例,非实测结果)
sEMG:    bandpass 20-450 Hz + notch 50 Hz
IMU_Acc: lowpass 20 Hz, 4th order Butterworth
IMU_Gyro:lowpass 15 Hz, 4th order Butterworth
JointAngle: Savitzky-Golay, window=11, polyorder=2
ForcePlate: lowpass 50 Hz(保留冲击细节)

三、缺失值处理:先判断“为什么缺”,再决定“怎么补”

缺失值在康复数据中非常常见:传感器短暂脱落、蓝牙丢包、受试者动作超出量程、视频遮挡都会造成空值或无效标记。处理前应先区分缺失类型:完全随机缺失(如偶发丢包)、随机缺失(与动作强度相关)、非随机缺失(如某传感器在特定动作下必然失效)。不同类型对应不同策略。

对于短时丢包(如连续少于 5 个采样点),线性插值或样条插值通常足够;对于较长缺失(如超过 0.5 s),插值会制造虚假信号,更稳妥的做法是标记为无效段,在特征提取时跳过该窗口,或使用同侧肢体、相邻周期的数据进行合理替代。对于整段缺失,不应强行填补,而应在评估报告中标注数据质量。一个实用的判断规则是:缺失比例低于 5% 且为短时随机缺失,可插值;缺失比例高于 10% 或集中在关键动作阶段,应降权或剔除该次评估。

四、异常检测:识别跳变、漂移与生理不可能值

异常检测关注的是“明显不符合物理规律或生理范围”的数据点。常见异常包括:加速度瞬时超过 ±16 g、关节角度超出解剖活动范围、sEMG 出现持续饱和、信号长时间不变(传感器卡死)以及基线缓慢漂移。检测方法可以组合使用:

  • 阈值法:根据设备量程和生理范围设定硬阈值,如膝关节屈曲角 0°~150°。
  • 统计法:对滑动窗口计算均值和标准差,将偏离 3 倍标准差以上的点标记为异常。
  • 变化率法:相邻采样点差分超过设定斜率阈值时判为跳变,如角速度超过 1000 °/s。
  • 一致性法:利用冗余信息交叉验证,如左右腿 IMU 在步行中应呈现近似反相周期。

检测到异常后,处理方式应分级:单点跳变可用中值滤波替换;短时饱和可标记并插值;持续漂移则需回到原始信号检查传感器固定和校准,不能仅靠算法修补。

五、标准化:让不同量纲、不同受试者的数据可比较

标准化解决的是“量纲和个体差异”问题。不同通道的单位不同(m/s²、°/s、μV、N),不同受试者的信号幅值也差异很大。常见做法包括:

  • Z-score 标准化:对每个通道减去均值、除以标准差,使数据均值为 0、标准差为 1,适合后续使用距离或梯度类算法。
  • 最大最小值归一化:将数据缩放到 [0,1] 或 [-1,1],适合幅值范围已知且稳定的信号。
  • 生理参考归一化:sEMG 常用最大自主收缩(MVC)幅值做归一化,关节角度用静息位或解剖零位做参考,使结果具有生理可比性。

需要注意:标准化参数应只在训练集或基线段上估计,再应用到测试段,避免把测试信息泄漏进训练过程。对于在线评估,应使用固定基线或滑动窗口估计,并明确标注参考来源。

六、整体流程与顺序

上述五个环节并非随意排列。合理的工程顺序是:先做时间同步与重采样,保证各通道在同一时间轴上;再进行异常检测与缺失值处理,避免异常点污染滤波结果;然后进行去噪与滤波;最后做标准化。若顺序颠倒,例如先滤波再处理缺失值,插值会引入虚假频率成分;先标准化再异常检测,异常点会被缩放掩盖。下面用一张数据流图展示从多源原始数据到可用评估输入的完整链路。

康复评估多源数据预处理链路 IMU 100 Hz 加速度 / 角速度 sEMG 2000 Hz 4 通道肌电 测力台 1000 Hz 三维力 / 力矩 视频 30 fps 关节角度估计 时间同步 触发对齐 + 重采样 统一至 100 Hz 误差 ≤ 2 采样周期 异常检测 阈值 / 3σ / 变化率 缺失值插值或标记 先处理再滤波 去噪与滤波 带通 / 陷波 / 低通 零相位滤波 保留峰值时序 标准化 Z-score / MVC 归一 参数仅来自基线 避免信息泄漏 可用 评估 输入 处理顺序要点 ① 同步 → ② 异常/缺失 → ③ 滤波 → ④ 标准化 先滤波再插值会引入虚假频率成分 先标准化再异常检测会掩盖异常幅值 标准化参数只从基线/训练段估计

把这条链路走通之后,康复评估算法面对的就不再是“各自为政”的原始信号,而是一组时间对齐、噪声受控、缺失可解释、异常有标记、量纲统一的输入。后续的特征提取、评分计算和趋势分析,才有可能稳定复现。实际工程中,建议把每个环节的参数、缺失比例、异常点数量和同步误差都记录下来,形成数据质量报告,与评估结果一起归档,这样当评分出现异常时,才能快速判断问题出在算法还是数据。