在心电信号(ECG)处理中,R波的检测是一个关键步骤,因为它直接影响到心率计算和心律失常的检测。Pan-Tomkins算法是一种经典的实时QRS波检测算法,广泛应用于ECG信号处理中。本文将详细介绍Pan-Tomkins算法的原理及其实现过程。
一、Pan-Tompkins算法
Pan-Tomkins算法是一种基于滤波和动态阈值的QRS波检测算法。其主要步骤包括信号预处理、动态阈值检测和R波定位。算法的核心思想是通过滤波去除噪声,增强QRS波的特征,并通过自适应阈值来检测R波。该算法的具体步骤为:带通滤波、差分放大、平方运算、移动窗口积分、阈值检测以及R波定位。
1.1 信号预处理
ECG的主要特征波中QRS波群的频率范围大致为0~100Hz。ECG的噪声主要包括工频干扰、基线漂移、肌电干扰及电极移动产生的噪声。基线漂移和电极移动所产生的干扰通常小于5Hz,工频干扰一般在50Hz左右。肌电干扰是由于病人肌肉紧张,产生不规则的高频电干扰所致,表现为不规则的快速变化波形,频率范围宽,一般在5Hz~2kHz之间。
(1)带通滤波
利用汉明窗设计级联的低通滤波器和高通滤波器,将信号的通带频率限制在5-15Hz。这一步可以有效去除基线漂移(通常小于5Hz)和高频噪声(如肌电干扰,频率范围为5Hz~2kHz)。
(2)微分处理
为了进一步增强QRS波的特征,滤波后的信号经过微分处理,提取信号的斜率信息。微分后的信号能够更好地突出R波的上升沿和下降沿。
差分方程如公式所示。
其中,N是积分窗口宽度中的样本数。
(3)平方运算
微分后的信号经过平方运算,进一步增强R波的幅度,同时抑制其他低频成分。
(4)滑动窗口积分
通过移动窗口积分(窗口长度为0.150秒)对信号进行平滑处理,减少噪声的影响。
其中,N是积分窗口宽度中的样本数。
1.2 动态阈值检测
动态阈值检测是Pan-Tomkins算法的核心部分,其目的是通过自适应阈值来区分QRS波群和噪声。
对移动窗口积分后提取预处理之后所有的峰值C1 ,取两秒内信号峰值最大值的三分之一作为初始信号阈值ST1 和信号水平SL1 ,取两秒内峰值平均值的二分之一作为初始噪声阈值NT1 和噪声水平NL1 。同理提取经过滤波器处理后的所有峰值C2 ,初始信号阈值ST2 和信号水平SL2 ,初始噪声阈值NT2 和噪声水平NL2 。判断每个峰值和阈值之间的关系,可分为以下几种情况:
(1)当峰值C1 大于信号阈值ST1 时,即可认定为R波峰,同时依据下列公式更新信号水平SL1 。
(2)当峰值C1 小于信号阈值ST1 时,对ST1 进行减半判断,当C1 大于0.5ST1 时,即认定为R波峰,同时依据下列公式更新信号水平SL1 。
(3)当峰值C1 小于0.5ST1 时,即认定为噪声峰值,同时依据下列公式更新信号水平SL1 和噪声水平NL1 。
在进行下次判断时,依据下列公式更新信号阈值ST1 。
同理,按照以上规则以及ST2 、SL2 及NL2 判断出C2 所有峰值。只有当同一时刻的C1 和C2 均被认为是R峰值时,此刻的峰值才被认为是R峰,否则被认为是噪声峰值,按照此规则执行直至信号被全部判断完毕。
动态阈值法的的流程图如图2所示。
图1:动态阈值法流程图
动态阈值法会产生误检和漏检的问题,会降低检测的准确率。产生错检的原因如下:
误检产生的形态如图2所示。在QRS波群中,误检的产生是由于阈值设定过低,阈值无法及时调整,导致如b、f及g点被误检。
图2:误检产生的形态
漏检产生形态如图3所示。由于b点峰值过高,而阈值无法快速降低,从而b点到c点之间会出现漏检点。
图3:漏检产生形态
1.3 R波定位
在动态阈值检测的基础上,Pan-Tomkins算法通过以下步骤精确定位R波:
(1)搜索回溯:如果在一段时间内没有检测到R波峰,算法会假设漏检了一个QRS波群,并在该时间段内搜索最大峰值作为漏检的QRS波群。
-
最小时间间隔为1.66倍的当前R峰到R峰的时间间隔(RR间隔)。
-
漏检的QRS波群假设为该时间段内位于阈值之间的最高峰值
(2)消除多重检测:在200ms的不应期内,不可能出现合法的QRS波群。算法会删除在此期间检测到的QRS波群,以减少误检。
(3)T波判别:如果一个QRS候选波群出现在前一个QRS波群之后的360ms内,算法会通过比较波形的平均斜率来判断这是QRS波群还是异常的T波。
-
如果当前波形的平均斜率小于前一个QRS波群平均斜率的一半,则认为是T波;否则,认为是QRS波群。
二、Matlab代码实现
2.1 算法实现结果
以下是Pan-Tomkins算法的Matlab代码实现结果。实验使用了MIT-BIH心电数据库中的100号记录信号,采样频率为360Hz。
图4:心电信号R波定位
图5:心电信号R波检测
2.2 实验结果小结
从上述结果可以看到,带通滤波成功去除了基线漂移和高频噪声,使QRS波群特征更加明显,滤波后的信号更加平滑。差分放大进一步增强了QRS波群的斜率变化,使其在信号中更加突出,便于后续检测。平方运算则进一步提升了QRS波群的幅度。移动窗口积分有效平滑了信号,进一步减少了噪声的干扰,使QRS波群的特征更加突出。
算法成功检测到了心电信号中的R波位置,检测结果准确,误检和漏检率低,证明了Pan-Tomkins算法在心电信号处理中的高效性和实用性,适用于实时心电信号监测和分析。
Tips:下一讲,我们将进一步探讨,心电信号的心率变异性分析。
以上就是Pan-Tomkins算法(R波定位与检测)的全部内容啦~
我们下期再见,拜拜(⭐v⭐) ~
(Ps:有代码实现需求,请见主页信息,谢谢支持!~)