发明内容
本发明的目的在于提供一种心电信号处理方法,解决了心电信号中R波受到的干扰大,R波位置不易检测的技术问题。
本发明的另一目的在于提供一种心电信号处理装置,解决了现有技术中的心电信号处理装置检测R波算法复杂,检测精度对信号的依赖性较强的技术问题。
为了解决上述技术问题,本发明的一种心电信号处理方法,包括以下步骤:
S1、获取心电信号x(n)并对其做预处理得到第一信号 ,其中,n为不同时刻的时间序列,n∈{0,1,2,…,N};
S2、对第一信号做差分运算得到第二信号y(n);
S3、令第二信号y(0)=0,令第二信号y(-n)等于0或者第二信号y(-n)=y(n),根据如下公式将第二信号y(n)重新组合得到第三信号以放大心电信号x(n)中的R波大小:
其中, M为预设的第一常数。
作为本发明上述心电信号处理方法的进一步改进,所述第一常数满足下式:
其中,SampleRate为心电信号x(n)的采样率。
作为本发明上述心电信号处理方法的进一步改进,所述第一常数。
作为本发明上述心电信号处理方法的进一步改进,所述步骤S1中对心电信号x(n)做预处理包括去除心电信号x(n)中的直流成分和/或对心电信号x(n)进行带通滤波。
作为本发明上述心电信号处理方法的进一步改进,在所述步骤S2后还包括通过截止频率为A的低通滤波器对第二信号y(n)进行滤波,其中。
作为本发明上述心电信号处理方法的进一步改进,所述方法还包括以下步骤:
S411、第三信号根据以下公式计算得到第四信号:
S412、第四信号利用移动平均滤波算法得到第五信号;
S413、通过第五信号确定R波的位置,对第五信号设定周期为K,并确定每周期内的最大极值点为R波的位置,在人体心率最小周期到最大周期之间,其中,K为预设的第二常数,SampleRate为心电信号x(n)的采样率;
S414、检测确定的任意两个相邻的R波时间间隔小于人体心率的最小周期时,保留其中幅值大的R波位置删除其中幅值小的R波位置。
作为本发明上述心电信号处理方法的进一步改进,所述步骤S413 中确定R波的位置通过计算第五信号中斜率为零的极大值点作为R波的位置。
作为本发明上述心电信号处理方法的进一步改进,所述方法还包括以下步骤:
S421、根据如下公式将第三信号转换为第六信号z(n):
其中,T1为正阀值,T2为负阀值,以删除第三信号中偏离R波位置的非零极值点得到第六信号z(n);
S422、通过第六信号z(n) 确定R波的位置,对第六信号z(n)设定周期为L,在人体心率最小周期到最大周期之间,其中,L为预设的第五常数,SampleRate为心电信号x(n)的采样率;
第六信号z(n)具有正信号、负信号,确定正信号中的非零极大值点,确定负信号中的非零极小值点;
S423、判断正信号中相邻两个非零极大值点的时间序列差如果小于等于L,保留其中绝对值大的非零极大值点删除其中绝对值小的非零极大值点,如果大于L,保留两个非零极大值点;
S424、判断负信号中相邻两个非零极小值点的时间序列差如果小于等于L,保留其中绝对值大的非零极小值点删除其中绝对值小的非零极小值点,如果大于L,保留两个非零极小值点;
S425、判断相邻的正信号中的非零极大值点和负信号中的非零极小值点的时间序列差如果小于等于L,保留其中非零极大值点和非零极小值点,如果大于L,删除其中非零极大值点和非零极小值点;
S426、确定正信号中保留的非零极大值点为R波位置。
作为本发明上述心电信号处理方法的进一步改进,T1、T2分别满足下面的公式:
其中,a、b为可调节的系数,1≤a≤2,1≤b≤2,U为预设的第三常数,V为预设的第四常数。
作为本发明上述心电信号处理方法的进一步改进,所述第三常数、第四常数满足至少大于一个人体心率周期。
为了解决上述技术问题,本发明的一种心电信号处理装置,包括:
接收单元,用于获取心电信号x(n)并对其做预处理得到第一信号,其中n为不同时刻的时间序列,n∈{0,1,2,…,N};
差分运算单元,用于对第一信号做差分运算得到第二信号y(n);
重组单元,用于令第二信号y(0)=0,令第二信号y(-n)等于0或者第二信号y(-n)=y(n),根据如下公式将第二信号y(n)重新组合得到第三信号以放大心电信号x(n)中的R波大小:
其中, M为预设的第一常数;
R波确定单元,用于确定放大后的R波位置。
作为本发明上述心电信号处理装置的进一步改进,所述心电信号处理装置还包括:
心率处理单元,用于选取若干个相邻两个R波的时间间隔进行加权平均以计算人体心率。
与现有技术相比,本发明通过特定的算法将差分后的心电信号x(n)重新组合后以放大心电信号x(n)中的R波大小。本发明降低了检测算法的复杂度,具有较高的稳健性且对原始数据的依赖性较小,具有较高的R波检测精度,成本低,实现简单。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
需要说明的是,在不同的实施方式中,可能使用相同的标号或标记,但这些并不代表结构或功能上的联系,并且,各实施方式中所提到的“第一”、“第二”、“第三”、“第四”、“第五”、“第六”、“第七”也并不代表结构或功能上的绝对区分关系,这些仅仅是为了描述的方便。
如图1所示,本发明一实施方式中心电信号处理方法流程图。心电信号处理方法包括步骤S1、步骤S2、步骤S3。在步骤S1中,获取心电信号x(n),心电信号x(n)与n对应,其中n为不同时刻的时间序列,n∈{0,1,2,…,N}。获取的心电信号x(n)通常具有一些毛刺噪声,为了改善信号的信噪比和去除上述的毛刺噪声,以达到后续检测的稳健性,对获取的心电信号x(n)进行预处理得到第一信号。其中,对心电信号x(n)做预处理包括按照如下公式去除心电信号x(n)中的直流成分:
其中,const为一个可调节的常数,表示对心电信号的直流电平估计,通过对直流信号的去除可以减少直流成分对心电信号的R波检测的干扰。
对心电信号x(n)做预处理还包括对心电信号进行带通滤波,滤去高、低频信号,保留中频信号,带通滤波优选的截止频率范围为0.05-100Hz。
在步骤S2中,对第一信号 做差分运算得到第二信号y(n),差分运算得到第二信号y(n)可以根据如下公式计算:
其中,从上式定义的一阶差分看,第二信号y(n)在n时刻采样点的差分信号,等于第一信号在n时刻采样点的值减去其前一时刻(n-1时刻)采样点的值。
在更多的实施方式中,差分运算得到第二信号y(n)还可以采用高阶差分运算,得到第二信号y(n)可以根据如下公式计算:
在第二信号y(n)中,y(1)=0,当的第二信号y(n)按照如上的差分公式计算。差分运算的作用在于可以减少对极限漂移的敏感度。
人体心电信号的频率范围通常在0.05-100Hz之间,优选地,第二信号y(n)通过截止频率为A的低通滤波器对第二信号进行滤波,其中。这样可以滤除那些频率变化较高但幅度较低的信号。
在步骤S3中,对第二信号y(n)进行重新组合,令第二信号y(0)=0。令第二信号y(-n)等于0或者第二信号y(-n)=y(n),即y(-n),…,y(-2),y(-1)=0或者y(-n)=y(n),…, y(-2)=y(2),y(-1)=y(1)。上述补全的信号值用于计算第三信号。计算第三信号每一个时刻采样点的信号值需要有一组与该时刻采样点对应的数列。如下所述列出每一组数列,每一组数列包括第二信号y(n)在n时刻采样点的信号值及n时刻左右对称范围内的信号值:
以0时刻采样点的数列为例,补全信号值之前,第二信号y(n)在定义域小于零的情况下没有信号值,因为时刻采样点n不可能为负,通过补全:
根据如下公式将第二信号y(n)重新组合得到第三信号以放大心电信号x(n)中的R波大小:
其中, M为预设的第一常数。心电信号的优化及R波的检测是一个调节搜索的过程,本领域技术人员可以通过输出最终波形的完美状况来判断是否调节到位,而对于最终波形是否完美可以根据本领域技术人员公知的经验来判别,算法的优化可以保证调节搜索的过程更准确更快速。
优选地,第一常数M满足以下的区间关系:
其中,SampleRate为心电信号x(n)的采样率。
不同的人的心率状况不尽相同,但是大多数人的心率状况比较相近,针对大多数心电信号提高优化的精度,第一常数M还可以根据下面公式来计算:
通过上述信号的重新组合可以放大R波,减小其他信号对R波的干扰,解决了R波位置不易检测的技术问题。
由于上述方法使处理后的第三信号对R波信号的优化,本发明可以在第三信号的基础上检测R波的位置。在不同的实施方式中,还会对步骤S3中得到的第三信号做进一步处理,并对处理后的信号选取每周期的最大正极值点或者选取斜率为零的极大值点作为R波的位置,以下将主要介绍两种实施方式,但并不以其两种实施方式为限。
在实现检测R波位置的一实施方式中,在心电信号处理方法得到第三信号的基础上,还包括步骤S411、S412、S413、S414。其中,在步骤S411中,计算第三信号的包络信号,第三信号根据以下公式计算得到第四信号:
在步骤S412中,第四信号利用移动平均滤波算法得到第五信号,优选地,移动平均滤波算法可以满足下式:
其中,N为移动平均的窗口宽度,为预设的第六常数,优选地,第六常数满足以下的区间:。在更多的实施方式中,采用的移动平均窗的类型和第六常数N的取值可以根据实际信号经验设定,比如可以采用Hamming窗,第六常数可以由下面公式简单计算得到:
移动平均的算法可以提高信号的稳定性,移动平均后的信号可以突出R波的特征信息。
在步骤S413中,对步骤S412中得到的第五信号进行R波信号的检测,通过第五信号确定R波的位置。对第五信号设定周期为K,在人体心率最小周期到最大周期之间,其中,K为预设的第二常数,SampleRate为心电信号x(n)的采样率。设定后的每个周期内会存在最大极值点,确定每周期内最大极值点为R波的位置。如图2所示,第五信号以每K个时间序列为一个周期,记录每个周期范围内最大极值点为R波位置,因为人体的心率在一定的范围内的,正常情况下,人体心率的范围在一定的区间内,最大周期为1.2s,最小周期为0.3s,即0.3s≤≤1.2s,实际操作过程中,为了调节的简单方便,优选地可以采用以下公式来调节K值,
其中,Coefficient为一个可调节的常数系数以使得满足0.3s≤≤1.2s。
另外,确定R波的位置还可以通过计算第五信号中斜率为零的极大值点作为R波的位置,因为通过上述移动平均等算法的优化,剩下的极大值点在理想状态下就是R波的位置。
在步骤S414中,检测确定的任意两个相邻的R波时间间隔小于人体心率的最小周期时,正常情况下即0.3s, 保留其中绝对值大的R波位置删除其中绝对值小的R波位置。通常情况下, 人体心率分布在50BPM(Bit Per Minute,每分钟节拍数)到200BPM之间,即相邻两个R波之间的时间间隔在0.3s到1.2s的范围之内。因此,对于那些幅值相对较小且和相邻R波的时间间隔低于0.3s确定的R波位置,其实并不是真实的R 波位置,予以舍弃。
在本发明的另一实施方式中,实现检测R波位置,在心电信号处理方法得到第三信号 的基础上,还包括步骤S421、S422、S423、S424、S425、S426。其中,在步骤S421中,根据如下公式将第三信号转换为第六信号z(n):
其中,T1为正阀值,T2为负阀值,设置T1和T2的阈值的目的是为了找到正确的正负极值点。但是,如果这两个极值点的值设置的太小,则在心电信号的R-R间隔之间将会有很多非零点,所以正负极值点不容易找到。另一方面,如果这两个极值点的值设置的太大,则在心电信号中可能去除许多R波的波峰,所以不能找到正确的正负极值点。因此设置T1、T2以删除第三信号中偏离R波位置的非零极值点得到第六信号z(n),通常可以采用由多次实验确定的第三信号正负波幅的平均值。而本发明优选的一个实施方式中,T1、T2分别满足下面的公式:
其中,a、b为可调节的系数,1≤a≤2,1≤b≤2,U为预设的第三常数,V为预设的第四常数。U和V的选取通常为经验常数,、的理想值为一个心率周期,SampleRate为心电信号x(n)采样率。优选地,第三常数、第四常数满足、至少大于一个人体心率周期。在无法预知输入信号的心动周期时,通常选取足够长的U和V以使其包含足够多的心率周期,比如:
在步骤S422中,通过第六信号z(n) 确定R波的位置,对第六信号z(n)设定周期为L,在人体心率最小周期到最大周期之间,通常情况下,0.3s≤≤1.2s,其中,L为预设的第五常数,SampleRate为心电信号x(n)采样率。实际操作过程中,为了调节的简单方便,优选地可以采用以下公式来调节L值,
其中,Coefficient为一个可调节的常数系数以使得满足0.3s≤≤1.2s。第六信号z(n)具有正信号、负信号,确定正信号中的非零极大值点,确定负信号中的非零极小值点。如果某一周期区间内不存在非零极值,那么这个区间可以被忽略。
如图3所示,为本发明一实施方式中第六信号z(n)的波形图,正信号中相邻两个非零极大值点之间具有时间序列差,负信号中相邻两个非零极小值点之间具有时间序列差,相邻的正信号中的非零极大值点和负信号中的非零极小值点之间具有时间序列差。
在步骤S423中,判断正信号中相邻两个非零极大值点的时间序列差如果小于等于L,保留其中绝对值大的非零极大值点删除其中绝对值小的非零极大值点,如果大于L,保留两个非零极大值点,即如下面公式:
在步骤S424中,判断负信号中相邻两个非零极小值点的时间序列差如果小于等于L,保留其中绝对值大的非零极小值点删除其中绝对值小的非零极小值点,如果大于L,保留两个非零极小值点,即如下面公式:
在步骤S425中,判断相邻的正信号中的非零极大值点和负信号中的非零极小值点的时间序列差如果小于等于L,保留其中非零极大值点和非零极小值点,如果大于L,删除其中非零极大值点和非零极小值点,即如下面公式:
在步骤S426中,确定正信号中保留的非零极大值点为R波位置。
为了更精确地确定R波位置,在本实施方式中,步骤S426后同样可以采取实现检测R波位置的第一个实施方式中步骤S414中的方法,在此就不再赘述。
为了输出R波信号R(n),基于上述两种实施方式中已确定的R波位置,设定一个第七信号,第七信号根据如下公式定义:
R波信号R(n)根据如下公式得到:
其中,x(n)为心电信号。因此,的非零值所在位置即为心电信号的R波位置。
如图4所示,本发明一实施方式中心电信号处理装置示意图。心电信号处理装置包括接收单元10、差分运算单元20、重组单元30、R波确定单元40。
接收单元10,用于获取心电信号x(n),心电信号x(n)与n对应,其中n为不同时刻的时间序列,n∈{0,1,2,…,N}。获取的心电信号x(n)通常具有一些毛刺噪声,为了改善信号的信噪比和去除上述的毛刺噪声,以达到后续检测的稳健性,对获取的心电信号x(n)进行预处理得到第一信号。其中,对心电信号x(n)做预处理包括按照如下公式去除心电信号中的直流成分:
其中,const为一个可调节的常数,表示对心电信号的直流电平估计,通过对直流信号的去除减少直流成分对心电信号的R波检测的干扰。
对心电信号x(n)做预处理还包括对心电信号进行带通滤波,滤去高、低频信号,保留中频信号,带通滤波优选的截止频率范围为0.05-100Hz。
差分运算单元20,用于对第一信号做差分运算得到第二信号y(n),差分运算得到第二信号y(n)可以根据如下公式计算:
其中,从上式定义的一阶差分看,第二信号y(n)在n时刻采样点的差分信号,等于第一信号在n时刻采样点的值减去其前一时刻(n-1时刻)采样点的值。
在更多的实施方式中,差分运算得到第二信号y(n)还可以采用高阶差分运算,得到第二信号y(n)可以根据如下公式计算:
在第二信号y(n)中,y(1)=0,当的第二信号按照如上的差分公式计算。差分运算的作用在于可以减少对极限漂移的敏感度。
人体心电信号的频率范围通常在0.05-100Hz之间,优选地,第二信号y(n)通过截止频率为A的低通滤波器对第二信号进行滤波,其中。这样可以滤除那些频率变化较高但幅度较低的信号。
重组单元30,用于对第二信号y(n)进行重新组合,令第二信号y(0)=0。令第二信号y(-n)等于0或者第二信号y(-n)=y(n),即y(-n),…,y(-2),y(-1)=0或者y(-n)=y(n),…, y(-2)=y(2),y(-1)=y(1)。上述补全的信号值用于计算第三信号。计算第三信号每一个时刻采样点的信号值需要有一组与该时刻采样点对应的数列。如下所述列出每一组数列,每一组数列包括第二信号y(n)在n时刻采样点的信号值及n时刻左右对称范围内的信号值:
以0时刻采样点的数列为例,补全信号值之前,第二信号y(n)在定义域小于零的情况下没有信号值,因为时刻采样点n不可能为负,通过补全:
根据如下公式将第二信号y(n)重新组合得到第三信号以放大心电信号x(n)中的R波大小:
其中, M为预设的第一常数。心电信号的优化及R波的检测是一个调节搜索的过程,本领域技术人员可以通过输出最终波形的完美状况来判断是否调节到位,而对于最终波形是否完美可以根据本领域技术人员公知的经验来判别,算法的优化可以保证调节搜索的过程更准确更快速。
优选地,第一常数M满足以下的区间关系:
其中,SampleRate为心电信号x(n)的采样率。
不同的人的心率状况不尽相同,但是大多数人的心率状况比较相近,针对大多数心电信号提高优化的精度,第一常数M还可以根据下面公式来计算:
R波确定单元40,用于确定R波的位置。确定R波位置具体实现方式可以参照上述检测R波位置的两个实施方式,在此不再赘述。
优选地,上述心电信号处理装置可以确定R波的位置,R波是心脏的除极波,心脏的除极过程很短,显示为R波时程短且有明显的波折且起点明显,因此可以通过R波来设计一个心率测量装置。心电信号处理装置还包括心率处理单元,心率处理单元用于选取若干个相邻两个R波的时间间隔进行加权平均以计算人体心率。为了心率的准确性,通常选取1-10个周期的R波进行计算。
综上所述,本发明通过特定的算法将差分后的心电信号x(n)重新组合后以放大心电信号x(n)中的R波大小。本发明降低了检测算法的复杂度,具有较高的稳健性且对原始数据的依赖性较小,具有较高的R波检测精度,成本低,实现简单。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。