本发明涉及医疗计算机辅助领域,尤其是一种心电信号特征检测方法及其系统。
背景技术:
心血管疾病发病率越来越高,已成为目前对人类生命构成最大危害的疾病之一。心电图(ecg)作为心脏状态的重要表征,在检测心脏疾病时起到非常重要的作用。ecg信号(即心电信号)通常包括p波、q波、r波、s波和t波,少数情况下还包括u波。
技术实现要素:
本发明的目的在于提供一种心电信号特征检测方法,用于准确地检测出ecg信号中的p波、q波、r波、s波和t波的波峰;本发明采用的技术方案是:
一种心电信号特征检测方法,包括以下步骤:
对ecg信号采样序列进行平滑处理;
对平滑后的ecg信号采样序列中采样点计算斜率;
检测ecg信号的有效性,排除无效信号;
搜索ecg信号采样序列中ecg信号上半部的所有波峰;
对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰;
通过r波波峰左侧的斜率数据确定q波波峰;
通过r波波峰右侧的斜率数据确定s波波峰;
通过搜索q波波峰左侧设定范围内采样点数据的最大值确定p波波峰;
通过搜索s波波峰右侧设定范围内采样点数据的最大值确定t波波峰。
具体地,采用高斯滤波处理来对ecg信号采样序列进行平滑处理。
具体地,采用中心差分方式计算ecg信号采样序列中采样点的斜率数据;
具体地,所述检测ecg信号的有效性,具体包括:计算ecg信号采样序列中采样点数据的最大值与最小值的差,作为第一差值,以及计算ecg信号采样序列中采样点斜率数据中的最大值与最小值的差,作为第二差值;如果第一差值和第二差值都大于设定的相应阈值,则认为ecg信号有效。
具体地,所述搜索ecg信号采样序列中ecg信号上半部的所有波峰,具体包括:
搜索出ecg信号采样序列中采样点数据的所有波峰值和一个最小值,将每个波峰值与最小值求差值,当求得的差值大于设定阈值时,确定为满足条件的波峰值,得到对应的波峰位置。
具体地,所述对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰,具体包括:
对于计算出的ecg信号上半部的每一个波峰,分别在波峰的左侧和右侧设定范围内对相应的斜率数据进行搜索,若同时满足波峰左侧存在斜率大于设定正向斜率阈值且右侧存在斜率小于负向斜率阈值的条件,则表示确定了r波波峰位置。
具体地,所述通过r波波峰左侧的斜率数据确定q波波峰,具体包括:
从r波波峰向左侧搜索,当相邻两个采样点的斜率,满足左侧采样点的斜率小于或者等于0,并且右侧采样点的斜率大于或者等于0的条件,则确定q波波峰位置。
具体地,所述通过r波波峰右侧的斜率数据确定s波波峰,具体包括:
从r波波峰向右侧搜索,当相邻两个采样点的斜率,满足左侧采样点的斜率小于或者等于0,并且右侧采样点的斜率大于或者等于0的条件,则确定s波波峰位置。
本发明还提出一种心电信号特征检测系统,包括:
队列缓存单元,用于缓存ecg信号采样序列;
斜率计算单元,用于对ecg信号采样序列中采样点计算斜率;
信号有效性检测单元,用于检测ecg信号的有效性,排除无效信号;
上半部波峰搜索单元,用于搜索ecg信号采样序列中ecg信号上半部的所有波峰;
r波波峰检测单元,用于对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰;
q波波峰检测单元,用于通过r波波峰左侧的斜率数据确定q波波峰;
s波波峰检测单元,用于通过r波波峰右侧的斜率数据确定s波波峰;
p波波峰检测单元,用于通过搜索q波波峰左侧设定范围内采样点数据的最大值确定p波波峰;
t波波峰检测单元,用于通过搜索s波波峰右侧设定范围内采样点数据的最大值确定t波波峰。
以及,信号预处理单元,用于在计算斜率前对ecg信号采样序列进行平滑处理。
本发明的优点在于:本发明提高了心电信号特征检测的可靠性和准确性,对于检测心脏疾病起到了非常重要的作用。
附图说明
图1为本发明的检测方法流程图。
图2为本发明的检测系统示意图。
图3为本发明的ecg导联线悬空信号示意图。
图4为本发明的检测实验一示意图。
图5为本发明的检测实验二示意图。
具体实施方式
下面结合具体附图和实施例对本发明作进一步说明。
本发明提出一种心电信号特征检测方法,用于对采样获得的ecg信号采样序列进行处理,以便准确的识别其中的p波、q波、r波、s波和t波;
可通过一ecg信号采集模块实现ecg信号采样序列的采集;ecg信号采集模块通常包括ecg导联线、ecg信号采集专用芯片、fpga芯片等;三根ecg导联线接到人体上,ecg信号采集专用芯片完成ecg信号的采样、放大、模数转换等;fpga芯片进行基线漂移处理、增益控制、降低干扰处理等;ecg信号采集模块并非本发明的重点,在此仅简要阐述;
所采集的ecg信号采样序列的采样点数(即采样点数据的数量)必须达到一定的数量;在心电信号特征检测系统中,设置一队列缓存单元,用于缓存ecg信号采样序列;采样点数主要和三个参数有关:系统的ecg信号采样率、心动周期数、系统支持的最小心率;
系统的ecg信号采样率是ecg信号采集模块每秒钟上传给上位机的采样点数;本发明中,心电信号特征检测系统设置在上位机上;对于心动周期数,至少需要大于一个周期,通常采用3~6个心动周期的心电信号;需要确定一个系统设计支持的最小心率,考虑到大多数情况,这个最小心率定为40次/分钟;通过分析,可通过公式(1)确定ecg信号采样序列的长度:
采样序列的长度=60÷最小心率×心动周期数×ecg信号采样率(1)
心电信号进行分析中的首要的关键问题是qrs波群的检测,只有在qrs波群确定之后,才有可能计算心率并进行心率变异分析,才能检测st段的参数和分析心电的其他细节信息;其中,qrs波群是一个心电周期中最显著的部分,它具有较高的幅度、斜率,并且具有一定的宽度、而r波是qrs波群中幅度最大的波应该先检测r波;
当上位机进行一次ecg信号采集,将采集到的ecg信号采样点数据添加到ecg信号采样序列中,当采样序列满,则将ecg信号采样序列中所有采样点数据提交给信号预处理单元处理;
本发明提出的心电信号特征检测方法,如图1所示,基本流程是:
对ecg信号采样序列进行平滑处理;
对平滑后的ecg信号采样序列中采样点计算斜率;
检测ecg信号的有效性,排除无效信号;
搜索ecg信号采样序列中ecg信号上半部的所有波峰;
对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰;
通过r波波峰左侧的斜率数据确定q波波峰;
通过r波波峰右侧的斜率数据确定s波波峰;
通过搜索q波波峰左侧设定范围内采样点数据的最大值确定p波波峰;
通过搜索s波波峰右侧设定范围内采样点数据的最大值确定t波波峰。
(一)对ecg信号采样序列进行平滑处理;
本发明中,具体采用高斯滤波处理来对ecg信号采样序列进行平滑处理;高斯滤波属于根据高斯函数的形状来选择权值的线性平滑滤波;高斯平滑处理是通过利用高斯函数计算出的高斯核与ecg信号进行卷积运算,得到较为平滑的信号,滤除ecg信号中的高频部分;高斯平滑处理后,对于斜率计算也会更有意义,可以避免异常噪声对斜率计算的影响;通过公式(2)对ecg信号采样序列进行高斯平滑处理:
其中,
(二)对平滑后的ecg信号采样序列中采样点计算斜率;
由于ecg信号波形中的r波波峰幅值最高,故对应的r波波峰左右的斜率数据会出现正的极大值和负的极大值,并且比其它波峰左右的斜率数据的值更大;根据这一特征,可以辅助检测r波波峰的位置,提高r波检测的准确性;
ecg信号采样序列中采样点的斜率通过差分运算实现;差分运算的结果能够反映离散变量之间的变化,是一种离散信号处理的工具,相应于连续信号处理中的微分运算,离散信号处理的差分分为向前差分、向后差分及中心差分三种;而实际系统应用中,中心差分应用最为广泛;本发明采用中心差分方式计算ecg信号采样序列中采样点的斜率数据;斜率数据ed的计算如公式(3)所示:
es()为平滑处理后ecg信号采样序列,ed(n)为ecg信号采样序列中第n个采样点的斜率;
(三)检测ecg信号的有效性,排除无效信号;
考虑到实际情况,存在ecg导联线悬空,接触不良等异常情况,为了避免这种情况对心电信号特征检测形成干扰,需要提前判别出来;发现ecg导联线悬空时的输入信号比较随机,没有明显的特征波形,有的时候存在明显的随机抖动,有的时候抖动不明显,接近于直线,如图3所示;
计算ecg信号采样序列中采样点数据的最大值与最小值的差,作为第一差值,以及计算ecg信号采样序列中采样点斜率数据中的最大值与最小值的差,作为第二差值;如果第一差值和第二差值都大于设定的相应阈值,则认为ecg信号有效,否则本次算法处理结束;具体如下:
(1)计算ecg信号采样序列中采样点数据的最大值maxe,最小值mine,通过公式(4)计算第一差值diffe;
diffd=maxd-mind(4)
(2)计算ecg信号采样序列中采样点的斜率数据中最大值maxd,最小值mind,通过公式(5)计算第二差值diffd;
diffd=maxd-mind(5)
(3)通过diffe确定ecg信号采样序列中采样点数据的最大值与最小值差值的有效性evalid,如果diffe大于阈值thecg,则设evalid为1,否则设为0,具体判断参考公式(6);
(4)通过diffd确定ecg信号采样序列中采样点斜率数据中的最大值与最小值差值的有效性dvalid,如果diffd大于阈值thder,则设dvalid为1,否则设为0,具体判断参考公式(7);
(6)通过evalid和dvalid确定ecg信号的有效性ecgvalid,如果evalid和dvalid都为1,则设ecgvalid为1,否则设为0,具体参考公式(8);
(四)搜索ecg信号采样序列中ecg信号上半部的所有波峰;
由于qrs波群在一个周期的ecg信号波形中特征最明显,qrs波群紧密连接,r波波峰向上最高,r波左侧紧连向下的q波波峰,r波右侧紧连向下的最低s波波峰;所以优先检测出r波,是检测出其他波的基础;
搜索出ecg信号采样序列中采样点数据的所有波峰值和一个最小值,将每个波峰值peak与最小值mine求差值,当求得的差值大于设定阈值thpeak时,确定为满足条件的波峰值,得到对应的波峰位置,将波峰检测有效性peakvalid设为1,否则设为0;具体参考公式(9);对于满足条件的波峰值,还要增加重复性检测,避免较短区间内出现干扰的波峰;
(五)对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰;
由于r波波峰最高,对应的斜率数据,在r波波峰的左侧会出现正向的最大斜率数据,在r波波峰的右侧会出现负向的最大斜率数据,通过此特征,可以准确的确定r波波峰;
对于计算出的ecg信号上半部的每一个波峰,分别在波峰的左侧和右侧设定范围内对相应的斜率数据进行搜索,若同时满足波峰左侧存在斜率大于设定正向斜率阈值且右侧存在斜率小于负向斜率阈值的条件,则表示确定了r波波峰位置;
(六)通过r波波峰左侧的斜率数据确定q波波峰;
q波波峰是在r波波峰位置左侧的一个向下的波峰,对应的斜率数据经过0点,由于r波波峰位置已经确定,只需要从r波的波峰位置向左检测斜率数据;
从r波波峰向左侧搜索,当相邻两个采样点的斜率,满足左侧采样点的斜率小于或者等于0,并且右侧采样点的斜率大于或者等于0的条件,则确定q波波峰位置;q波波峰就在该两个采样点之间或在其中某个采样点(若该采样点的斜率为0);具体参考公式(10),当右侧采样点的斜率derln大于等于0并且左侧采样点的斜率derln-1小于等于0,将q波波峰检测有效性qvalid设为1,确定q波波峰位置,否则继续向左检测;
(七)通过r波波峰右侧的斜率数据确定s波波峰;
s波波峰是在r波波峰位置右侧的一个向下的波峰,幅值比q波低,对应的斜率数据经过0点,由于r波波峰位置已经确定,只需要从r波的波峰位置向右检测斜率数据;
从r波波峰向右侧搜索,当相邻两个采样点的斜率,满足左侧采样点的斜率小于或者等于0,并且右侧采样点的斜率大于或者等于0的条件,则确定s波波峰位置;s波波峰就在该两个采样点之间或在其中某个采样点(若该采样点的斜率为0);具体参考公式(11),当右侧采样点的斜率derln大于等于0并且左侧采样点的斜率derln-1小于等于0,将s波波峰检测有效性svalid设为1,确定s波波峰位置,否则继续向右搜索;
(八)通过搜索q波波峰左侧设定范围内采样点数据的最大值确定p波波峰;
p波波峰是在q波波峰左侧一段区间内的采样点数据中最大值对应的波峰;所以,通过搜索q波波峰左侧设定范围内采样点数据的最大值就可以确定p波波峰位置。
(九)通过搜索s波波峰右侧设定范围内采样点数据的最大值确定t波波峰;
t波波峰是在s波波峰右侧一段区间内的采样点数据中最大值对应的波峰;所以,通过搜索s波波峰右侧设定范围内采样点数据的最大值就可以确定t波波峰位置。
根据上述心电信号特征检测方法,本发明在上位机中设置一心电信号特征检测系统,包括:
队列缓存单元,用于缓存ecg信号采样序列;
信号预处理单元,用于对ecg信号采样序列进行平滑处理;
斜率计算单元,用于对平滑后的ecg信号采样序列中采样点计算斜率;
信号有效性检测单元,用于检测ecg信号的有效性,排除无效信号;
上半部波峰搜索单元,用于搜索ecg信号采样序列中ecg信号上半部的所有波峰;
r波波峰检测单元,用于对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰;
q波波峰检测单元,用于通过r波波峰左侧的斜率数据确定q波波峰;
s波波峰检测单元,用于通过r波波峰右侧的斜率数据确定s波波峰;
p波波峰检测单元,用于通过搜索q波波峰左侧设定范围内采样点数据的最大值确定p波波峰;
t波波峰检测单元,用于通过搜索s波波峰右侧设定范围内采样点数据的最大值确定t波波峰。
根据本发明的心电信号特征检测方法,进行了一些实验,实验结果如下:
正常ecg信号,可以准确检测出p、q、r、s、t波波峰位置,如图4所示;
对于起始波形异常的ecg信号,也能够比较准确地检测出p、q、r、s、t波波峰位置,如图5所示;
对于ecg导联线悬空时的信号,上述方法未检测出有效波形,与实际情况吻合。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
1.一种心电信号特征检测方法,其特征在于,包括以下步骤:
对ecg信号采样序列进行平滑处理;
对平滑后的ecg信号采样序列中采样点计算斜率;
检测ecg信号的有效性,排除无效信号;
搜索ecg信号采样序列中ecg信号上半部的所有波峰;
对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰;
通过r波波峰左侧的斜率数据确定q波波峰;
通过r波波峰右侧的斜率数据确定s波波峰;
通过搜索q波波峰左侧设定范围内采样点数据的最大值确定p波波峰;
通过搜索s波波峰右侧设定范围内采样点数据的最大值确定t波波峰。
2.如权利要求1所述的心电信号特征检测方法,其特征在于,
采用高斯滤波处理来对ecg信号采样序列进行平滑处理。
3.如权利要求1所述的心电信号特征检测方法,其特征在于,
采用中心差分方式计算ecg信号采样序列中采样点的斜率数据。
4.如权利要求1所述的心电信号特征检测方法,其特征在于,
所述检测ecg信号的有效性,具体包括:计算ecg信号采样序列中采样点数据的最大值与最小值的差,作为第一差值,以及计算ecg信号采样序列中采样点斜率数据中的最大值与最小值的差,作为第二差值;如果第一差值和第二差值都大于设定的相应阈值,则认为ecg信号有效。
5.如权利要求1所述的心电信号特征检测方法,其特征在于,
所述搜索ecg信号采样序列中ecg信号上半部的所有波峰,具体包括:
搜索出ecg信号采样序列中采样点数据的所有波峰值和一个最小值,将每个波峰值与最小值求差值,当求得的差值大于设定阈值时,确定为满足条件的波峰值,得到对应的波峰位置。
6.如权利要求1所述的心电信号特征检测方法,其特征在于,
所述对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰,具体包括:
对于计算出的ecg信号上半部的每一个波峰,分别在波峰的左侧和右侧设定范围内对相应的斜率数据进行搜索,若同时满足波峰左侧存在斜率大于设定正向斜率阈值且右侧存在斜率小于负向斜率阈值的条件,则表示确定了r波波峰位置。
7.如权利要求1所述的心电信号特征检测方法,其特征在于,
所述通过r波波峰左侧的斜率数据确定q波波峰,具体包括:
从r波波峰向左侧搜索,当相邻两个采样点的斜率,满足左侧采样点的斜率小于或者等于0,并且右侧采样点的斜率大于或者等于0的条件,则确定q波波峰位置。
8.如权利要求1所述的心电信号特征检测方法,其特征在于,
所述通过r波波峰右侧的斜率数据确定s波波峰,具体包括:
从r波波峰向右侧搜索,当相邻两个采样点的斜率,满足左侧采样点的斜率小于或者等于0,并且右侧采样点的斜率大于或者等于0的条件,则确定s波波峰位置。
9.一种心电信号特征检测系统,其特征在于,包括:
队列缓存单元,用于缓存ecg信号采样序列;
斜率计算单元,用于对ecg信号采样序列中采样点计算斜率;
信号有效性检测单元,用于检测ecg信号的有效性,排除无效信号;
上半部波峰搜索单元,用于搜索ecg信号采样序列中ecg信号上半部的所有波峰;
r波波峰检测单元,用于对于ecg信号上半部的所有波峰,通过波峰左右两侧斜率限定检测r波波峰;
q波波峰检测单元,用于通过r波波峰左侧的斜率数据确定q波波峰;
s波波峰检测单元,用于通过r波波峰右侧的斜率数据确定s波波峰;
p波波峰检测单元,用于通过搜索q波波峰左侧设定范围内采样点数据的最大值确定p波波峰;
t波波峰检测单元,用于通过搜索s波波峰右侧设定范围内采样点数据的最大值确定t波波峰。
10.如权利要求9所述的心电信号特征检测系统,其特征在于,还包括:
信号预处理单元,用于在计算斜率前对ecg信号采样序列进行平滑处理。
技术总结