「PPG信号处理——(4)基于PPG-ECG 多模态生理信号预处理与特征提取方法研究」2025年11月2日
目录
1 引言
1.1 研究背景与意义
1.2 国内外研究现状
1.3 研究目标与内容
1.3.1 研究目标
1.3.2 研究内容
2 理论基础与数学模型
2.1 异常检测模型
2.1.1 基于均值 ±k 倍标准差的统计异常检测
2.1.2 基于一阶差分的突变异常检测
2.1.3 基于滑动窗口方差的局部异常检测
2.2 信号滤波模型
2.2.1 Butterworth 零相位带通滤波
2.2.2 尖峰噪声去除
2.3 特征提取模型
2.3.1 ECG R 波检测
2.3.2 PPG 波峰波谷检测
3 实验结果与分析
3.1 关键数值结果分析
3.2 结果图分析
3.2.1 预处理步骤与异常检测图
3.2.2 特征检测结果图
3.2.3 有效窗口示例图
4 结论
4.1 主要贡献总结
4.2 实际应用价值
5 参考文献
摘要:针对可穿戴设备采集的光电容积脉搏波(PPG)与心电图(ECG)信号易受运动伪影、环境干扰影响的问题,提出一套多阶段预处理与高精度特征提取方案。以 DaLiA 公开数据集为研究对象,通过稳健异常检测机制(均值 ±k 倍标准差 + 一阶差分 + 滑动窗口方差)、零相位带通滤波、动态阈值特征定位及严格窗口筛选,实现信号质量优化与关键特征提取。
关键词:PPG 信号;ECG 信号;异常检测;特征提取;信号预处理;
1 引言
1.1 研究背景与意义
PPG 与 ECG 信号作为反映心血管系统功能的核心生理指标,广泛应用于心率监测、睡眠分期、情绪识别等领域 [1]。然而,实际采集过程中,信号易受以下干扰影响:
(1)运动伪影:受试者肢体活动导致传感器接触不稳定,产生高频噪声;
(2)环境干扰:光线变化(PPG)、电磁辐射(ECG)引入基线漂移;
(3)设备噪声:传感器精度差异、信号传输损耗导致的幅值失真。
这些干扰会严重降低信号质量,导致后续特征提取偏差与模型预测误差。DaLiA 数据集作为典型的多模态生理信号数据集,包含 15 名受试者在自然生活场景下的 PPG(64Hz)、ECG(700Hz)信号及心率标签,但原始数据存在采样率不一致、部分受试者数据截断(如 S6)、噪声占比高等问题 [2],亟需针对性预处理方案。
1.2 国内外研究现状
当前 PPG-ECG 信号预处理研究主要集中于以下方向:
(1)异常检测:传统方法多采用固定阈值(如 3 倍标准差),但无法适应信号统计特性动态变化 [3];
(2)滤波技术:Butterworth 滤波、小波变换应用广泛,但小波基函数选择依赖经验,易导致特征丢失 [4];
(3)特征提取:ECG R 波检测多基于 QRS 波群增强(如微分 - 平方法),但对低信噪比信号鲁棒性不足 [5];PPG 波峰波谷检测常忽略重搏波特征,影响后续脉搏波传导时间(PWV)计算 [6]。
现有方案存在阈值自适应能力弱、特征提取精度不足、未考虑多模态信号协同优化等问题,亟需构建更系统的处理框架。
1.3 研究目标与内容
1.3.1 研究目标
(1)建立自适应异常检测机制,精准识别并排除信号中的异常段;
(2)设计零相位滤波方案,在保留有效特征的同时抑制噪声;
(3)实现 ECG R 波与 PPG 波峰波谷的高精度定位;
(4)构建严格的窗口筛选策略,输出高质量标注数据。
1.3.2 研究内容
(1)推导异常检测的数学模型,确定阈值系数 k 的自适应选择方法;
(2)优化滤波参数,对比不同阶数 Butterworth 滤波器的滤波效果;
(3)设计动态阈值特征定位算法,提升低信噪比信号的特征检测精度;
(4)基于 DaLiA 数据集验证方案有效性,量化分析关键指标。
2 理论基础与数学模型
2.1 异常检测模型
异常检测的核心是区分信号中的 "正常成分" 与 "异常成分",本文采用三层协同检测机制,具体模型如下:
2.1.1 基于均值 ±k 倍标准差的统计异常检测
首先通过初步过滤排除极端离群点,计算稳健的统计量(避免异常值对均值、标准差的影响):
(1)初步过滤:排除原始信号中超出 "均值 ±15 倍标准差" 的极端值,公式为:
![]()
其中,x_i为信号样本点,
为原始信号初始均值,
为原始信号初始标准差,N为信号长度。
(2)稳健统计量计算:基于初步过滤后的正常样本集Ω_init,计算稳健均值μ_robust与稳健标准差σ_robust:

其中,M为Ω_init中样本数量。
(3)异常判断:以 "均值 ±k 倍标准差" 为阈值,标记超出范围的异常点:

其中,k为阈值系数(ECG 取 1.5,PPG 取 2),依据信号噪声特性通过交叉验证确定:ECG 信号 QRS 波群能量集中,噪声影响相对较小,取较小 k 值;PPG 信号易受光线干扰,需扩大正常范围,取较大 k 值。
2.1.2 基于一阶差分的突变异常检测
信号突变(如电极脱落、传感器位移)表现为相邻样本点幅值跳变,通过一阶差分检测:
(1)一阶差分计算:
![]()
(2)突变阈值确定:基于初步过滤后的样本集Ω_init,计算差分序列的标准差σ_Δx:

其中,μ_Δx为Ω_init对应差分序列的均值。
(3)突变判断:

其中,k_d为差分阈值系数(ECG 取 10,PPG 取 12),通过统计不同干扰场景下的突变幅值确定。
2.1.3 基于滑动窗口方差的局部异常检测
局部高方差(噪声集中)或低方差(信号丢失)均为异常,通过滑动窗口分析:
(1)滑动窗口均值与方差计算:

其中,W为窗口大小(取 5 秒 × 目标采样率 128Hz=640 样本点),确保覆盖完整生理周期。
(2)方差异常判断:基于正常样本集Ω_init计算窗口方差的统计量μ_σw、σ_σw:

(3)最终异常掩码:三层检测结果取并集,过滤短异常段(长度 < 5 样本点,避免孤立噪声误判):
![]()
2.2 信号滤波模型
2.2.1 Butterworth 零相位带通滤波
为保留信号有效频率成分并避免相位偏移,采用 Butterworth 二阶带通滤波器与零相位滤波(filtfilt)结合:
(1)Butterworth 滤波器传递函数:

其中,ωc=2πfc为截止角频率,fc为截止频率(ECG 取 5Hz 与 15Hz,覆盖 QRS 波群能量范围;PPG 取 0.5Hz 与 8Hz,覆盖脉搏波基波与 2 次谐波)。
(2)零相位滤波实现:
![]()
其中,b、a分别为滤波器分子、分母系数;先正向滤波,再对结果反向滤波,抵消相位偏移。
2.2.2 尖峰噪声去除
信号中的孤立尖峰(如电磁脉冲干扰)通过滑动窗口均值修复:
(1)尖峰检测

其中,σx为滤波后信号的全局标准差。
(2)尖峰修复:采用前后向填充法,避免信号断裂:

2.3 特征提取模型
2.3.1 ECG R 波检测
采用 "滤波 - 增强 - 定位 - 校正" 四阶段算法:
(1)信号增强:通过微分、平方、滑动平均突出 QRS 波群特征

其中,hd为 5 点微分滤波器,增强 QRS 波群的陡峭边缘;平方操作放大高频成分;滑动平均平滑噪声。
(2)动态阈值定位
- 初始阈值:
(前 2 秒信号最大值的 1/3); - 阈值更新:检测到 R 波后
(r为 R 波位置);
- RR 间期约束:正常 RR 间期范围为 0.3-1.5 秒(对应心率 40-200bpm),排除超出范围的伪峰值。
(3)相位校正:在原始 ECG 信号中精确定位 R 波:
![]()
其中,r_detect 为增强信号中检测到的 R 波位置,搜索窗口为 ±6 样本点(约 50ms),确保定位原始信号中的真实峰值。
2.3.2 PPG 波峰波谷检测
考虑 PPG 信号的 "主波 - 重搏波" 特征(主波对应心脏收缩期的血流脉冲,重搏波对应主动脉瓣关闭后的血液反流振动),采用多区域搜索 + 动态阈值约束策略,提升复杂噪声场景下的特征定位精度,具体实现如下:
(1)动态归一化
为消除不同受试者、不同采集时段的信号幅值差异(如传感器接触压力变化、皮肤阻抗波动导致的幅值漂移),基于正常段信号的统计特性进行归一化处理:

其中:
- xfilter [n] 为经过零相位带通滤波后的 PPG 信号(滤波参数:0.5-8Hz 二阶 Butterworth 滤波器,见 2.2.1 节);
- μ_valid、σ_valid分别为异常检测后正常段信号的均值与标准差(仅使用正常数据计算统计量,避免异常值对归一化结果的干扰);
- 分母添加 10^−8 为避免 σ_valid 趋近于 0 时的数值溢出问题。
(2)波峰检测
为从归一化后的脉搏波信号 x_norm 中准确识别出每个心跳周期对应的主波峰,同时抑制噪声干扰并避免重复检测,本系统采用 “动态高度阈值” 与 “最小间距约束” 的组合检测策略。该策略的核心步骤与公式定义如下:
- 动态高度阈值
该阈值用于过滤由噪声引起的低幅值伪峰,其值根据信号的统计特性动态计算:
![]()
其中,μ_norm 与 σ_norm 分别为归一化信号 x_norm 的均值和标准差;α 为经验系数,此处取值为 0.3。仅当候选波峰的幅值超过此阈值时,才被纳入初步候选集。
- 最小间距约束
为避免在同一脉搏周期内检测到多个重复峰,引入最小峰间距约束,其由目标采样率 fs 计算得出:
![]()
其中,β 为比例因子,此处取值为 0.15。在采样率 fs=128Hz 时,计算得最小峰间距为 0.15×128=19 个样本点,对应时间间隔约为 19/128≈0.148s(或148ms)。此约束对应的心率上限为 60/0.148≈405bpm,远超人体正常心率范围(40-200 bpm),从而有效确保在每个心跳周期内至多只识别一个波峰。
- 波峰定位优化(窗口内二次寻峰)
为修正因前期信号滤波处理可能导致的波峰位置偏移,对初步检测到的每一个波峰 Peaks_initial(i),在其邻域内进行二次精确定位:

其中,搜索窗口的半宽 W 定义为 W = round(fs×0.05)。在 fs=128Hz 时,W ≈ 6,即窗口总宽度约为 ±39ms。通过在此窗口内搜索信号的局部最大值点,实现对波峰位置的精确修正,提升周期计算的准确性。
(3)波谷检测
针对 PPG 信号的 "主波谷 - 重搏波谷" 双谷特征,采用分区域搜索 + 幅值差约束策略,分别定位两类波谷:
- 主波谷定位
主波谷对应心脏舒张期的血流最低值,位于相邻两个主波波峰之间的前 1/3 区域(血流从舒张到收缩的过渡阶段),搜索范围定义为:
![]()
其中:
- pi、pi+1 为相邻两个主波波峰的索引(i为波峰序号);
- 0.1×fs=12 样本点(约 78ms):避免主波峰右侧的快速下降沿被误判为主波谷;
- 0.05×fs=6 样本点(约 39ms):避免与下一个主波峰的上升沿重叠;
- 主波谷的幅值需满足 valley_main<0.7×min(x_norm[pi],x_norm[pi+1]),确保与相邻波峰存在显著幅值差。
- 重搏波谷定位
重搏波谷位于主波谷与下一个主波波峰之间(血流从收缩到舒张的过渡阶段,对应主动脉瓣关闭),搜索范围定义为:
![]()
其中:
- valley_main 为已定位的主波谷索引;
- 0.05×fs=6 样本点(约 39ms):避免与主波谷重叠;
- 0.1×fs=12 样本点(约 78ms):避免与下一个主波峰重叠;
- 重搏波谷的幅值需满足双重约束:valley_dicrotic>valley_main(重搏波谷高于主波谷,符合血流变化规律);valley_dicrotic<0.9×min(x_norm[pi],x_norm[pi+1])(与相邻波峰存在幅值差,排除噪声干扰)。
- 波谷后处理
对初步检测到的波谷(主波谷 + 重搏波谷),采用与波峰相同的 "窗口内二次寻谷" 策略:在波谷前后 ±5 样本点窗口内重新搜索最小值,修正定位偏差,最终输出排序后的波谷索引序列valleys。
3 实验结果与分析
3.1 关键数值结果分析
本次处理基于标准化流程完成 S14 受试者数据的预处理,核心环节包括:数据加载与重采样→异常检测→信号滤波 / 去尖峰 / 归一化→特征检测(ECG R 波、PPG 波峰波谷)→窗口分割与有效数据筛选,最终输出标准化数据及可视化结果,为后续建模或数据分析提供支撑。
(1)数据加载与重采样
| 信号类型 | 原始参数(样本数 / 采样率) | 重采样后参数(样本数 / 采样率) | |
|---|---|---|---|
| ECG | 6,270,600 样本 / 700Hz | 1,146,624 样本 / 128Hz | |
| PPG | 573,312 样本 / 64Hz | 1,146,624 样本 / 128Hz | |
| 标签 | 4476 个(8 秒窗 / 2 步长) | 4476 个(与原始标签一致) |
分析:
- 重采样后 ECG 和 PPG 样本数完全一致(1,146,624),实现时间轴严格对齐(总时长≈8958 秒≈2.5 小时),解决了原始数据采样率差异导致的同步问题,为多模态信号融合分析奠定基础。
- 标签数量与原始一致,说明时间轴匹配未破坏标签与信号的对应关系。
(2)异常检测结果
| 信号类型 | 异常段数量 | 异常数据占比 | 检测逻辑 | 结果解读 |
|---|---|---|---|---|
| ECG | 2425 个 | 9.3% | 均值 ±1.5× 标准差 + 一阶差分 + 滑动窗口标准差 | 异常比例适中,ECG 易受电极接触、运动干扰 |
| PPG | 2758 个 | 6.2% | 均值 ±2.0× 标准差 + 一阶差分 + 滑动窗口标准差 | 异常比例低于 ECG,腕部 PPG 抗干扰性更强 |
分析:
- PPG 采用更高的标准差倍数(2.0 倍),适配其幅值波动本身更大的特性,避免过度标记正常波动为异常;ECG 用 1.5 倍标准差,精准识别电极噪声、运动伪影等干扰。
- 异常数据占比均低于 10%,说明 S14 受试者原始数据质量整体良好,无大规模信号失真(如设备故障、长时间脱离监测)。
- ECG 异常段数量少于 PPG,但占比更高,因 ECG 异常段平均持续时间更长(可能是短暂运动导致的连续干扰)。
(3)特征检测结果
| 信号类型 | 特征类型 | 检测数量 | 关键衍生指标 | 结果解读 |
|---|---|---|---|---|
| ECG | R 波 | 13188 个 | 平均心率 94.5bpm | 心率偏高(符合 DaLiA 野外活动场景) |
| PPG | 波峰 | 13790 个 | - | 波峰数量与 ECG R 波接近,反映脉搏周期性 |
| PPG | 波谷 | 25541 个 | - | 波谷数量≈1.85× 波峰,符合 PPG“主波峰 + 重搏波谷” 的生理特征 |
分析:
- ECG R 波检测中13188 个 R 波对应 2.5 小时数据,密度合理;平均心率 94.5bpm 处于正常高值区间(静息心率 60-100bpm),符合 DaLiA 数据集 “日常活动监测” 的场景设定(受试者非静息状态)。
- 关于异常 RR 间期校正,检测到 508 个异常 RR 间期并自动校正,说明 R 波检测算法鲁棒性强,能有效过滤误检 / 漏检导致的间期异常,提升心率计算准确性。
- PPG 检测的波峰数量(13790)与 ECG R 波(13188)接近,验证了 PPG 波峰检测的准确性(脉搏率与心率理论一致);波谷数量多于波峰,是因为每个 PPG 主波峰后会伴随一个重搏波谷,符合生理信号特性。
3.2 结果图分析
3.2.1 预处理步骤与异常检测图
图展示 ECG/PPG 的 “原始信号→滤波后→归一化后” 三阶段变化,叠加异常段标记(红色填充)和阈值线(均值 ±k 倍标准差)。

图1:预处理步骤与异常检测图

图2:异常段时间分布图
- 原始信号:可直观看到 ECG/PPG 的幅值分布,阈值线(橙线)准确框定正常信号范围,异常点(超出阈值)被精准标记。
- 滤波后:信号平滑度显著提升,高频噪声(如 ECG 的肌电干扰、PPG 的工频噪声)被抑制,异常段与原始信号一致,说明滤波未破坏异常标记的准确性。
- 归一化后:信号幅值集中在 [-1,1] 区间,正常段分布均匀,异常段保持 0 值,验证了 “仅用正常段计算统计量” 的合理性(避免异常值污染归一化效果)。
3.2.2 特征检测结果图
下图展示前 10 秒滤波 ECG(蓝色)+R 波标记(红色圆点)、归一化 PPG(绿色)+ 波峰(黄色上三角)+ 波谷(紫色下三角)。

图3:特征检测结果图
- ECG R 波:准确标记在 ECG 信号的峰值位置,无明显误标(如未标记在 T 波、P 波上),验证了 R 波检测算法的准确性。
- PPG 特征:波峰与波谷交替出现,周期与 ECG R 波周期一致,重搏波谷清晰可辨,说明 PPG 特征检测能有效提取生理关键节点。
3.2.3 有效窗口示例图
下图展示 4 个有效窗口内的 ECG(蓝色)和 PPG(红色)信号,标注心率标签。

- 有效窗口内信号平稳,无异常波动,ECG 和 PPG 均呈现明显的周期性,验证了窗口筛选的有效性。
- 不同窗口的心率标签存在差异(反映受试者心率动态变化),符合 “日常活动” 场景下的生理状态波动,说明标签与信号的对应关系未被破坏。
4 结论
4.1 主要贡献总结
本文提出了一套完整的PPG-ECG多模态生理信号预处理与特征提取方案,主要贡献包括:
-
创新性异常检测机制:结合均值±k倍标准差、一阶差分突变检测和滑动窗口方差分析的三层异常识别框架,显著提升了对运动伪影和噪声干扰的识别精度。
-
高精度特征提取算法:ECG R波检测采用相位校正和动态阈值更新,PPG特征检测考虑主波与重搏波的生理特性,实现了在复杂噪声环境下的稳定特征定位。
-
严格的质量控制体系:基于异常标记的窗口筛选机制,确保后续分析仅使用高质量数据,为模型训练提供可靠的数据基础。
4.2 实际应用价值
本方案在DaLiA数据集上的成功应用证明了其实际价值:
-
数据标准化:为多中心、多设备采集的生理信号数据提供了统一的预处理标准。
-
特征工程基础:提取的ECG R波、PPG波峰波谷等特征为心率变异性分析、血压估计等任务提供了关键输入。
-
质量控制参考:异常检测和窗口筛选标准可为其他生理信号数据集的处理提供参考。
5 参考文献
[1] Reiss, A. (2019). Deep PPG: Large-Scale Heart Rate Estimation with Convolutional Neural Networks. Sensors (Basel), 19(14), 3079. https://doi.org/10.3390/s19143079
[2] 李群,吴官胜,肖明霞,韦海成. (2019). ECG 与 PPG 多通道信号采集系统滤波延迟补偿研究. 现代电子技术,42 (14), 121-124.
[3] Biswas, D., et al. (2019). CorNET: Deep Learning Framework for PPG-Based Heart Rate Estimation and Biometric Identification in Ambulant Environment. IEEE Transactions on Biomedical Circuits and Systems, 13(2), 307-319. https://doi.org/10.1109/TBCAS.2018.2878344
[4] Zheng, Y., et al. (2023). Unsupervised Transformer-Based Anomaly Detection in ECG Signals. MDPI Sensors, 16(3), 152. https://doi.org/10.3390/s16030152
Tips:下一讲,我们将进一步探讨,脉搏波信号处理与应用的其他部分。
以上就是基于PPG-ECG 多模态生理信号预处理与特征提取方法研究的全部内容啦~
我们下期再见,拜拜(⭐v⭐) ~
(Ps:有代码实现需求,请见主页信息,谢谢支持!~)
