4. 医疗设备数据预处理与质量控制

医疗设备采集的原始信号几乎不可能直接用于诊断或算法推理。以监护仪为例,ECG 电极接触不良会产生基线漂移,患者翻身会造成运动伪影,SpO₂ 探头脱落会输出无效值,网络抖动还会导致数据包丢失。预处理与质量控制的任务,就是在数据进入算法之前,把“脏数据”识别出来、修复或剔除,并给出可信度标签。本章围绕一条完整的数据处理链展开:异常值检测 → 缺失值处理 → 信号滤波 → 伪影去除 → 数据质量评估。

一、异常值检测:先定义“正常”的边界

异常值检测不是简单设一个上下限。医疗信号中,异常可能来自生理真实事件(如室性早搏),也可能来自传感器故障。因此需要区分“生理异常”和“技术异常”。常用方法有三类:

  • 阈值法:对心率、SpO₂、体温等参数设定生理合理范围。例如成人 HR 合理范围 30–220 bpm,SpO₂ 合理范围 70%–100%。超出范围标记为可疑,但不立即删除。
  • 统计法:对滑动窗口计算均值 μ 和标准差 σ,将 |x−μ| > 3σ 的点标记为离群点。适合基线稳定的信号,但对真实突变敏感。
  • 物理约束法:利用信号自身特性判断。例如 ECG 的 R 峰间隔不应小于 200 ms(对应 300 bpm),若检测到更短间隔,说明存在误检或噪声。

实际工程中通常组合使用:先用阈值法做粗筛,再用统计法在窗口内精筛,最后用物理约束做一致性校验。标记结果写入质量字段,而不是直接覆盖原始值。

二、缺失值处理:区分“没采到”和“采到但无效”

缺失值有两种来源:一是传输丢包,时间戳不连续;二是设备输出无效标记(如 SpO₂ 显示“--”)。处理策略取决于缺失比例和信号类型:

  • 短时缺失(< 3 个采样点):线性插值或前值保持。对 ECG 这类高频信号,线性插值可能引入伪影,建议用样条插值。
  • 中等缺失(3–10 个点):对慢变参数(体温、SpO₂)可用滑动平均填充;对 ECG 不建议填充,应标记为无效段。
  • 长时缺失(> 10 个点):不填充,直接标记为数据空洞,并在质量评估中扣分。
注意:缺失值填充会引入虚假信息。对诊断级应用,填充后的数据必须携带“已填充”标记,算法应能区分原始值与填充值。

三、信号滤波:保留生理频带,抑制噪声

不同生理信号的频带不同,滤波参数必须按信号类型选择。以下是常见参数的示例配置(教学示例,非实测):

信号有效频带推荐滤波器典型参数
ECG0.5–40 Hz带通 + 50 Hz 陷波0.5–40 Hz 巴特沃斯,Q=30
PPG0.5–5 Hz低通 + 带通0.5–5 Hz,4 阶
呼吸0.1–0.5 Hz低通0.5 Hz 截止
体温0–0.1 Hz滑动平均窗口 30 s

以 ECG 为例,50 Hz 工频干扰用 IIR 陷波器抑制,基线漂移用 0.5 Hz 高通滤除。滤波顺序建议先高通去基线,再低通去高频,最后陷波。若先陷波,基线漂移可能使陷波器工作点偏移,降低抑制效果。

四、伪影去除:识别并隔离非生理成分

伪影与噪声的区别在于:噪声是随机叠加,伪影是特定事件造成的结构化干扰。常见伪影包括:

  • 运动伪影:患者活动导致电极位移,表现为 ECG 基线剧烈波动或 PPG 波形畸变。检测方法:计算滑动窗口内的信号能量突增,或利用加速度计辅助判断。
  • 电极脱落伪影:ECG 出现饱和或平线,阻抗检测可辅助识别。
  • 电刀干扰:手术中高频电刀产生宽带噪声,表现为 ECG 完全淹没。此时应标记该段为不可用,而非强行滤波。

伪影去除的核心原则是“先检测,后处理”。检测到伪影段后,优先选择剔除或标记,而不是用滤波强行恢复。因为滤波可能把伪影能量扩散到邻近正常段,造成二次污染。

五、数据质量评估:给每段数据一个可信度分数

质量评估的输出应是一个可量化的指标,便于后续算法加权或告警。一个实用的质量评分模型包含四个维度:

  • 完整性:有效采样点占比。例如 10 s 窗口内应有 2500 个 ECG 点,实际有效 2300 个,完整性 = 92%。
  • 异常率:被标记为异常值的点占比。异常率 > 5% 时质量降级。
  • 信噪比:信号功率与噪声功率之比。可用高频段能量与低频段能量比值估算。
  • 伪影占比:被标记为伪影的时长占比。伪影占比 > 10% 时该段不可用于诊断。

综合评分可采用加权求和:Q = 0.3×完整性 + 0.2×(1−异常率) + 0.3×信噪比归一化 + 0.2×(1−伪影占比)。评分低于 0.6 的数据段应触发告警或丢弃。

医疗设备数据预处理与质量控制链路 原始信号 ECG / PPG / SpO₂ 异常值检测 阈值 + 3σ + 物理约束 标记可疑点 缺失值处理 插值 / 前值 / 标记空洞 区分丢包与无效 信号滤波 带通 + 陷波 + 低通 按频带选参数 伪影去除 运动 / 脱落 / 电刀 先检测,后隔离 数据质量评估 完整性 / 异常率 信噪比 / 伪影占比 质量标签输出 Q 分数 + 可信度 可用 / 降级 / 丢弃 质量不达标 → 回溯调整检测/滤波参数 示例参数速查(教学示例) ECG:带通 0.5–40 Hz,陷波 50 Hz,Q=30;R-R 间期 < 200 ms 判为误检 PPG:带通 0.5–5 Hz,4 阶巴特沃斯;SpO₂ 有效范围 70%–100% 缺失处理:<3 点线性插值;3–10 点滑动平均;>10 点标记空洞 质量评分:Q = 0.3×完整性 + 0.2×(1−异常率) + 0.3×SNR + 0.2×(1−伪影占比),Q < 0.6 告警

六、案例:一段 10 秒 ECG 的完整处理过程

假设从监护仪取出一段 10 秒 ECG,采样率 250 Hz,共 2500 个点。处理过程如下:

  1. 异常值检测:滑动窗口 1 秒,计算 μ 和 σ。发现第 3.2 秒处有 5 个点超出 3σ,标记为可疑。同时 R 峰检测发现一个 R-R 间期 150 ms,低于 200 ms 物理下限,标记为误检。
  2. 缺失值处理:检查时间戳,发现第 5.0–5.04 秒有 10 个点丢失(约 40 ms),属于短时缺失,用三次样条插值填充,并打上“已填充”标记。
  3. 信号滤波:先 0.5 Hz 高通去基线漂移,再 40 Hz 低通去高频噪声,最后 50 Hz 陷波去工频。滤波后波形基线平稳,R 峰清晰。
  4. 伪影去除:计算滑动窗口能量,发现第 7.5–8.0 秒能量突增 3 倍,结合加速度计数据判断为患者翻身,标记该段为运动伪影,不参与后续诊断。
  5. 质量评估:完整性 = 2490/2500 = 99.6%;异常率 = 5/2500 = 0.2%;信噪比估算为 18 dB(归一化 0.75);伪影占比 = 0.5/10 = 5%。综合 Q = 0.3×0.996 + 0.2×0.998 + 0.3×0.75 + 0.2×0.95 = 0.299 + 0.200 + 0.225 + 0.190 = 0.914,质量良好,可用于后续心率变异性分析。
工程建议:预处理链的每一步都应保留中间结果和标记,便于回溯。质量评分不是一次性的,应随数据流持续更新。对于多参数监护,各参数的质量评分可加权融合,形成整体数据可信度。

总结来说,医疗设备数据预处理的核心不是“把数据变干净”,而是“把数据变可信”。异常值检测、缺失值处理、信号滤波、伪影去除和质量评估,共同构成一条可追溯、可量化、可复现的处理链。只有每一步都留下标记和依据,后续算法才能做出正确的判断。