「ECG信号处理——(22)Pan-Tompkins & Findpeak 阈值检测 & 差分阈值算法——三种R波检测算法对比分析」2025年8月8日

发布于:2025-08-09 ⋅ 阅读:(30) ⋅ 点赞:(0)

目录

1、引言

2、算法原理

(1)Pan-Tompkins 算法(方法1)

(2)Findpeak 阈值检测算法(方法2)

(3)差分阈值算法(方法3)

3、算法性能评估

(1)评估指标

(2)实验结果对比

(3)综合分析与结论

1、引言

        心电图(ECG)是临床诊断心脏疾病的重要工具,R波检测作为其中的关键步骤,其准确性直接影响后续的心律失常分析等诊断过程。本文档介绍三种 R 波检测算法及其性能评估。

2、算法原理

(1)Pan-Tompkins 算法(方法1)

相关内容详情见我博客👇

「ECG信号处理——(10)Pan-Tompkins算法(R峰检测)」2025年3月17日-CSDN博客

(2)Findpeak 阈值检测算法(方法2)

  基于信号局部极大值特性,通过双阈值约束实现R波定位。其核心思想是找到信号中满足特定条件的局部极大值点。通过设置最小峰间距(MinPeakDistance)和最小峰高(MinPeakHeight)两个关键参数来筛选潜在的 R 波位置。

  • 幅值阈值:设置最小峰值高度MinPeakDistance=round(0.2×fs),过滤低幅噪声。

  • 位置阈值:设置最小峰间距MinPeakHeight=0.5(对应最大心率300bpm)。

        其中,fs 表示采样频率,MinPeakDistance是为了确保 R-R 间隔至少为 0.2 秒,MinPeakHeight是根据信号幅度设定的最小阈值。

(3)差分阈值算法(方法3)

        该方法通过信号微分和动态阈值调整来检测 R 波。基本流程如下:

  • 信号微分处理:对原始 ECG 信号进行微分操作,突出信号的突变部分,公式为:

diff_ecg=diff(ecg)

  • 移动平均滤波:对微分后的信号取绝对值并进行移动平均平滑处理,窗口长度设为 0.12 秒对应的采样点数,公式为:

smoothed=movmean(∣diff_ecg∣,window_length)

  • 动态阈值调整:在信号的前 10 秒学习阶段内,计算平滑信号的最大值并乘以 0.6 作为初始阈值,公式为:

threshold=0.6×max(smoothed(1:learning_phase))

  • 阈值检测与峰值确认:通过比较平滑信号与阈值确定潜在 R 波区间,并在每个区间内找到原始信号的最大值点作为 R 波位置。

3、算法性能评估

(1)评估指标

  • 灵敏度(Sen):衡量实际 R 波被正确检测的比例,公式为:

Sen=TP​/(TP+FN)×100%

  • 阳性预测值(PPV):衡量检测到的 R 波中实际正确的比例,公式为:

PPV=TP​/(TP+FP)×100%

  • 准确率(Acc):衡量整体检测的准确程度,公式为:

Acc=TP​/(TP+FP+FN)×100%

        其中,TP 表示真阳性数量,FN 表示假阴性数量,FP 表示假阳性数量。

(2)实验结果对比

        以下是上述三种R波检测算法在MIT-BIH心律失常数据库\mit-bih-arrhythmia-database-1.0.0上的性能评估结果。

图1:R波检测示例1

图2:R波检测示例2

表1:MIT-BIH心律失常数据库部分数据结果对比

整体性能对比:

评价指标 1、Pan-Tompkins法 2、Findpeaks法 3、差分阈值法
平均灵敏度(Se) 94.94% 99.94% 99.91%
平均PPV 95.32% 94.21% 84.97%
平均准确率(Acc) 91.66% 94.00% 84.89%
平均位置偏差 0.45±1.38 2.12±1.40 0.45±1.33
平均幅值偏差 0.07±0.08 -0.99±0.17 0.06±0.07

灵敏度对比:

  • Findpeaks与差分阈值法表现相当(99.94% vs 99.91%)

  • Pan-Tompkins法在记录106出现严重漏检(Sen=65.56%)

  • 极端案例:记录106中差分阈值法保持100%灵敏度,而Pan-Tompkins降至65.56%

定位精度
  • 差分阈值法定位最精准(平均偏差0.45样本点)

  • Findpeaks法存在系统定位延迟(平均+2.12样本点)

  • 记录102中Findpeaks定位偏差最大(5.44±5.42样本点)

幅值估计
  • Findpeaks法存在显著幅值低估(平均-0.99mV)

  • 差分阈值法幅值偏差最小(0.06±0.07mV)

  • 记录107中Findpeaks幅值偏差达-1.51±0.25mV

(3)综合分析与结论

        方法3(差分阈值法)在多数数据集上表现最佳,具有较高的灵敏度和最佳的检测精度;方法1在时间准确性上表现较好,但在幅值准确性上稍差;方法2在某些数据集上表现优异,但在其他数据集上存在不稳定性。

        根据具体应用场景的需求:

  • 对灵敏度和检测精度要求极高时,选择方法3(差分阈值法);

  • 更注重时间准确性时,选择方法1(Pan-Tompkins法);

  • 需要在不同数据集上保持较好的稳定性时,选择方法3(差分阈值法)。

Tips:下一讲,我们将进一步探讨,心电信号处理与应用的其他部分。

以上就是Pan-Tompkins & Findpeak 阈值检测 & 差分阈值算法——三种R波检测算法对比分析的全部内容啦~

我们下期再见,拜拜(⭐v⭐) ~

(Ps:有代码实现需求,请见主页信息,谢谢支持!~)


网站公告

今日签到

点亮在社区的每一天
去签到