当前位置: 首页 > news >正文

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

目录

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%
平均PPV95.32%94.21%84.97%
平均准确率(Acc)91.66%94.00%84.89%
平均位置偏差0.45±1.382.12±1.400.45±1.33
平均幅值偏差0.07±0.08-0.99±0.170.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:有代码实现需求,请见主页信息,谢谢支持!~)

http://www.lryc.cn/news/614683.html

相关文章:

  • C语言编译流程讲解
  • 【Open3D】基础操作之三维数据结构的高效组织和管理
  • 内网穿透原理与部署实战指南:从理论到企业级应用
  • 第七章:数据持久化 —— `chrome.storage` 的记忆魔法
  • 2025 蓝桥杯C/C++国B 部分题解
  • 设计一个 Java 本地缓存组件
  • java分布式定时任务
  • 秋招笔记-8.8
  • BGP协议笔记
  • 6_基于深度学习的火灾检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
  • 腾讯前端面试真题
  • 锯床自动长度检测与参数闭环补偿系统
  • 坚鹏:AI智能体辅导是知行学成为AI智能体创新应用引领者的保障
  • 计算机网络:到底什么是可变长子网掩码VLSM?
  • Linux初级阶段性练习
  • 移动端开发中类似腾讯Bugly的产品推荐与比较-5款APP异常最终产品推荐-卓伊凡|bigniu
  • A100用transformers推理gpt-oss
  • 第六章第四节 PWM驱动LED呼吸灯 PWM驱动舵机 PWM驱动直流电机
  • 校招秋招春招小米在线测评小米测评题库|测评解析和攻略|题库分享
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘huggingface_hub’问题
  • Numpy科学计算与数据分析:Numpy高效数据处理与优化
  • Mac 电脑放在环境变量中的通用脚本
  • 免费PDF批量加密工具
  • 从零掌握 Java AWT:原理、实战与性能优化
  • 【沉浸式解决问题】pycharm关闭科学模式
  • 杰理ac791 [Info]: [LL_S]Recv - LL_CHANNEL_MAP_REQ
  • Python从入门到精通计划Day07: Python数据卷轴术:文件魔法与防御结界全指南
  • nlp-语义分析
  • 在 Vue 中使用 ReconnectingWebSocket实现即时通讯聊天客服功能
  • Java 使用 SSHJ 执行 SSH 命令和 SFTP 文件上传和下载