一种心电信号的R波提取方法及***
技术领域
本发明属于医学技术领域,尤其涉及一种心电信号的R波提取方法及***。
背景技术
心电图(electrocardiogram,ECG)是反映心脏兴奋的电活动过程,它对心脏的基本功能及其病例研究方面具有重要的参考价值。心电图可以分析和鉴别各种心律失常、也可反映心肌受损的程度和心房心室功能结构情况,在指导心脏手术进行及指示必要药物处理上也具有一定的参考价值。
心电图主要受到以下几种噪声的干扰:肌电干扰、工频干扰、皮肤表面电极移动引起的运动伪迹以及被测对象的呼吸或肢体活动等所引起的基线漂移。例如:在心电监护***中,采集的心电数据由于被监护对象的日常活动(比如呼吸)干扰而会出现严重的漂移,常规的心电图可以等基线稳定以后再进行记录,而在出现重大病情突发变化时,等待将耽误抢救时机,所以心电图波形的基线漂移在线实时处理十分必要。
QRS波是心电信号的主要特征,只有在确定QRS波群后下才能计算心率、检测心率变异,并进一步检测心电信号的其他细节。目前通常采用小波变换方法来检测R波,小波变换法对R波的提取效果虽然很好,但运算大,运算复杂。
发明内容
本发明实施例提供了一种心电信号的R波提取方法及***,旨在解决现有技术中R波检测的运算较复杂的问题。
本发明实施例是这样实现的,一种心电信号的R波提取方法,包括:
采集原始的心电信号;
对采集的心电信号进行滤波处理,获得处理信号;
采用自适应阈值算法从所述处理信号对应的序列中提取R波。
优选地,所述采用自适应阈值算法从所述处理信号对应的序列中提取R波具体包括:
判断当前是否已提取至少两个R波;
若当前已提取至少两个R波时,基于前两个R波对应的幅度值获取基准阈值,并提取当前R波;
当还存在下一R波时,以当前提取的R波作为前一个R波,返回到前述基于前两个R波对应的幅度值获取基准阈值,继续提取下一R波的步骤。
优选地,所述若当前已提取至少两个R波时,基于前两个R波对应的幅度值获取基准阈值,并提取当前R波具体包括:
比较前两个R波对应的幅度值,基于比较结果计算基准阈值;
基于该基准阈值提取当前R波。
优选地,所述比较前两个R波对应的幅度值,基于比较结果计算基准阈值具体包括:
采用第一公式比较前两个R波对应的幅度值,所述第一公式为:y(index(i-1))>y(index(i-2))/0.8,其中,所述index(i-1)及index(i-2)分别为前两个R波所在位置,所述y(index(i-1))及y(index(i-2))分别表示前两个R波对应的幅度值,所述i为大于0的自然数;
当所述第一公式成立时,以y(index(i-2))/0.8作为基准阈值;
当所述第一公式不成立时,以y(index(i-1))*0.8作为基准阈值。
优选地,所述基于该基准阈值提取当前R波具体包括:
基于所述基准阈值及第一预设序列段获取初始阈值,所述第一预设序列段为:从index(i-1)所在位置到index(i-1)+0.28(index(i-1)-index(i-2))所在位置之间的序列段;
基于所述初始阈值在第二预设序列段内提取当前R波,所述第二预设序列段为:从index(i)所在位置到index(i)+0.05fs所在位置,其中,所述index(i)为当前R波所在位置,fs为采样频率,所述i为大于或等于2的自然数。
优选地,基于所述基准阈值及第一预设序列段获取初始阈值具体包括:
判断在第一预设序列段是否存在大于所述基准阈值的点;
若存在,则选择大于该基准阈值的值作为初始阈值;
若不存在,则选择所述基准阈值作为初始阈值。
优选地,所述基于所述初始阈值在第二预设序列段内提取当前R波具体包括:
判断在第二预设序列段中是否存在大于所述初始阈值的点;
若存在,则以大于所述初始阈值的点所在位置作为当前R波所在位置;
若不存在,则以所述初始阈值所在位置作为R波所在位置。
优选地,所述判断当前是否已提取至少两个R波之后还包括:
若当前未提取至少两个R波时,则在第三预设序列段获取预设阈值,基于所述预设阈值提取R波,所述第三预设序列段为:从index(i)所在位置到index(i)+1.5fs所在位置,所述index(i)为当前R波所在位置,fs为采样频率,所述i为小于2的自然数。
优选地,若当前未提取至少两个R波时,则在第三预设序列段获取初始阈值,基于该初始阈值提取R波具体包括:
在所述第三预设序列段获取最大值,并获取最大值的修正值;
判断在第四预设序列段中是否存在幅度值大于所述修正值的点;
若存在,则以所述点作为当前R波所在的位置;
若不存在,则以所述最大值对应的点所在位置作为当前R波所在的位置。
优选地,对采集的心电信号进行滤波处理,获得处理信号具体为:采用三级联的数学型态滤波器对所采集的心电信号进行滤波处理,所述三级联的数学型态滤波器包括三级滤波器结构,分别为:五点的三角窗、三十点的汉宁窗及九十点的三角窗。
本发明还提供一种心电信号的R波提取***,包括:采集模块、与所述采集模块连接的处理模块、与所述处理模块连接的提取模块,其中:
采集模块,用于采集原始的心电信号;
处理模块,用于对采集的心电信号进行滤波处理,获得处理信号;
提取模块,用于采用自适应阈值算法从所述处理信号对应的序列中提取R波。
在本发明实施例中,采用自适应阈值算法提取R波,即后续提取R波的参考阈值基于前一个R波的参数来调整,可一定程度上提高提取R波的准确性;在提取R波之前进行滤波处理,可有效地消除初始心电信号存在的噪声及避免基线漂移的问题,进一步提高提取R波的精度。
附图说明
图1是本发明第一实施例提供的一种心电信号的R波提取方法的流程图;
图2是本发明第一实施例提供的一种心电信号的R波提取方法的步骤S3的具体流程图;
图3是本发明第一实施例提供的一种心电信号的R波提取方法的步骤S32的具体流程图;
图4是本发明第一实施例提供的一种心电信号的R波提取方法的步骤S322的具体流程图;
图5是本发明第一实施例提供的一种心电信号的R波提取方法的步骤S401的具体流程图;
图6是本发明第一实施例提供的一种心电信号的R波提取方法的步骤S402的具体流程图;
图7是本发明第一实施例提供的一种心电信号的R波提取方法的步骤S33的具体流程图;
图8是本发明第二实施例提供的一种心电信号的R波提取***的结构图;
图9是本发明第二实施例提高的一种心电信号的R波提取***的提取模块3的具体结构图;
图10是本发明第二实施例提高的一种心电信号的R波提取***的第一提取单元32的具体结构图;
图11是本发明第二实施例提供的一种心电信号的R波提取***的第二提取单元33的具体结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,一种心电信号的R波提取方法,包括:采集原始的心电信号;对采集的心电信号进行滤波处理,获得处理信号;采用自适应阈值算法从所述处理信号对应的序列中提取R波。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种心电信号的R波提取方法的流程图,包括:
步骤S1、采集原始的心电信号;
其中,采集原始的心电信号,采集频率fs可根据实际情况而设,优选地,本实施例的采样频率fs为250Hz。具体地,采集的心电信号包括若干采样点,每个采样点对应一个幅度值及时间点,而采样点可能是需要提取的R波,即每个R波携带对应幅度值及时间点的数据。
步骤S2、对采集的心电信号进行滤波处理,获得处理信号;
具体地,由于所采集的原始的心电信号可能因各种外在或内在因素(例如呼吸、身体状况等)干扰而出现偏移,因此需要对采集的原始的心电信号进行滤波处理。本实施例中,可采用滤波器来剔除噪声。
进一步地,设定所述心电信号的频率为fM,采样频率为fS,由模拟信号得到的数字信号周期长度(数据点数)为M=fS/fM,滤波器结构元长度为N,选择不同周期长度的信号通过不同结构元长度的滤波器,随着比值K=N/M增大,信号的衰减幅度增大,特别地,当K>0.5,即结构元素的横向尺寸(元素个数)大于或等于要滤波除去的分量的横向宽度(即采样个数),信号将完全被滤除掉(A=-∞),信号的衰减幅度由信号数字频率与结构元长度的比值唯一决定。
在本实施例的一个优选方案中,采用腐蚀及膨胀算法来进行滤波,具体为:
设f(n),(n=0,1,…,N-1)及k(m),(m=0,1,…,M-1)分别为一维离散函数,N>>M,N及M均为大于0的自然数,所述f(n)为待处理的心电信号序列,k(m)为结构元素。
采用f(n)关于k(m)的腐蚀运算,腐蚀算法为其中,
接着进行f(n)关于k(m)的膨胀运算,运算公式为:其中,所述n=M-1,M,…,N-1。
需要说明的是,本实施例不局限于先进行腐蚀运算后进行膨胀运算,可以是先膨胀运算后腐蚀运算,或者腐蚀运算与膨胀运算同时进行,此处对此不作限制。
在本实施例的另一变形方案中,采用以下处理方式:
f(n)关于k(m)的开运算:及
f(n)关于k(m)的闭运算:
具体地,开运算和闭运算分别是在心电信号的下方和上方移动结构元素,并在每一点记录结构元素的最高点和最低点。开运算可消去信号中的波峰,闭运算可填充信号中的波谷。
在本实施例的又一变形方案中,采用三级联的数学型态滤波器对所采集的心电信号进行滤波处理,所述三级联的数学型态滤波器包括三级滤波器结构,分别为:五点的三角窗、三十点的汉宁窗及九十点的三角窗。
具体地,采用开闭及闭开滤波器的结合:
所述OC为开闭型态,所述CO为闭开型态,所述f为待处理信号的序列,k为结构元素。
采用上述开闭和闭合滤波器结合对应的算法如下:
本实施例中,开运算的收缩性使得开闭滤波器的输出幅值较小,闭运算的扩张性使得闭开滤波器的输出幅值较大,可有效抑制心电信号出现单向偏移的现象。此外,由于心电信号中实际被滤除的成分与运算中所采用的结构元素有关,如结构元素的宽度为M,信号中波峰或波谷的宽度为N,则有N>M,信号被保留;N<M,信号被滤除。采用上述开闭及闭合滤波器结合可同时去除信号中的正负两种脉冲噪声。
步骤S3、采用自适应阈值算法从所述处理信号对应的序列中提取R波。
优选地,如图2所示,为本发明第一实施例提供的一种心电信号的R波提取方法的步骤S3的具体流程图,上述步骤S3具体包括:
步骤S31、判断当前是否已提取至少两个R波,若当前已提取至少两个R波时转到步骤S32,否则转到步骤S33;
步骤S32、基于前两个R波对应的幅度值获取基准阈值,并提取当前R波;
步骤S33、基于预设阈值提取R波。
在本实施例的一个优选方案中,上述步骤S32之后还可包括:
步骤S34,判断是否还存在下一个R波,当存在时转到步骤S32,继续下一个R波的提取,否则结束进程。
具体地,可统计当前遍历的采样点的数量,与心电信号对应的采样点数量进行比较,若当前遍历的采样点为最后一个采样点时,则表示不存在下一R波,若当前遍历的采样点不属于最后一个采样点,则表示可能存在下一R波,转到步骤S32。
需要说明的是,从开始提取R波时,前两个R波的提取可采用步骤S33的方法提取,而第三个R波开始则采用步骤S32的方法提取,后续逐个遍历,直到完全提取,即后续提取R波的过程与步骤S32的是一致的,都是基于当前R波的前两个R波的幅度值等数据来提取当前R波,后续进程则根据相同的提取方法遍历后续序列段的采样点来提取每一个R波,直到提取完成。
优选地,如图3所示,为本发明第一实施例提供的一种心电信号的R波提取方法的步骤S32的具体流程图,上述步骤S32具体包括:
步骤S321、比较前两个R波对应的幅度值,基于比较结果计算基准阈值;
具体地,由于当前已经提取两个以上R波,此时可采用第一公式比较前两个R波对应的幅度值,所述第一公式为:y(index(i-1))>y(index(i-2))/0.8,其中,index(i)为当前R波所在位置,而所述index(i-1)及index(i-2)分别为前两个R波所在位置,即前两个R波(index(i-1)与index(i-2))之间的时间区间,y(index(i-1))及y(index(i-2))分别表示前两个R波对应的幅度值,此时的i为大于2的自然数;
当所述第一公式成立时,以y(index(i-2))/0.8作为基准阈值,即选择前一个R波index(i-1)的前一个R波index(i-2)对应的幅度值,并对该幅度值进行修正,得到y(index(i-2))/0.8,以修正后的数值作为基准阈值;
当所述第一公式不成立时,以y(index(i-1))*0.8作为基准阈值,及选择前一个R波index(i-1)对应的幅度值,并对该幅度值进行修正,得到y(index(i-1))/0.8,以修正后的数值作为基准阈值;
在本实施例的另一个优选方案中,当所述第一公式不成立时,以y(index(i-1))*0.7作为基准阈值,及选择前一个R波index(i-1)对应的幅度值,并对该幅度值进行修正,得到y(index(i-1))/0.7,以修正后的数值作为基准阈值。
步骤S322、基于该基准阈值提取当前R波。
如图4所示,为本发明第一实施例提供的一种心电信号的R波提取方法的步骤S322的具体流程图,上述步骤S322具体包括:
步骤S401、基于基准阈值及第一预设序列段获取初始阈值;
具体地,所述第一预设序列段为:从index(i-1)所在位置到index(i-1)+0.28(index(i-1)-index(i-2))所在位置之间的序列段,即index(i-1)到index(i-1)+0.28(index(i-1)-index(i-2))之间的时间区间。
步骤S402、基于初始阈值在第二预设序列段内提取当前R波;
所述第二预设序列段为:从index(i)所在位置到index(i)+0.05fs所在位置,即index(i)与index(i)+0.05fs之间的时间区间,将上述范围内对每个采样点对应的幅度值与所获取的初始阈值进行比较,在该时间区间内提取当前R波。其中,所述index(i)为当前R波所在位置,fs为采样频率,此时的i为大于或等于2的自然数。
如图5所示,为本发明第一实施例提供的一种心电信号的R波提取方法的步骤S401的具体流程图,上述步骤S401具体包括:
步骤S4011、判断在第一预设序列段是否存在大于所述基准阈值的点,若存在转到步骤S4012,否则转到步骤S4013;
具体地,从index(i-1)所在位置到index(i-1)+0.28(index(i-1)-index(i-2))所在位置之间的序列段中获取每个采样点对应的幅度值,选择幅度值最大的采样点,将该最大幅度值与上述基准阈值进行比较,判断该最大幅度值是否大于该初始阈值,当判断大于时,转到步骤S4012,否则转到步骤S4013;
步骤S4012、选择大于该基准阈值的幅度值作为初始阈值;
此时存在大于基准阈值的幅度值,则选择该幅度值作为初始阈值,用于后续提取R波。
步骤S4013、选择所述基准阈值作为初始阈值。
当不存在时表示最大阈值小于或等于基准阈值,则以该基准阈值作为初始阈值,用于后续提取R波。
如图6所示,为本发明第一实施例提供的一种心电信号的R波提取方法的步骤S402的具体流程图,上述步骤S402具体包括:
步骤S4021、判断在第二预设序列段中是否存在大于初始阈值的点;
具体地,在从index(i)所在位置到index(i)+0.05fs所在位置范围对应的序列段中获取所有采样点对应的幅度值,判断是否有大于上述初始阈值的幅度值,若存在转到步骤S4022,否则转到步骤S4023。
步骤S4022、以大于初始阈值的点所在位置作为当前R波所在位置;
具体地,当存在时,选择上述幅度值大于初始阈值的采样点所在位置作为当前R波所在位置。
步骤S4023、以初始阈值所在位置作为R波所在位置。
具体地,当不存在时,说明上述范围内不存在幅度值大于该初始阈值的采样点,则选择该初始阈值对应采样点所在位置作为当前R波所在位置。
当存在幅度值大于该初始阈值的点时,以该幅度值对应的点作为当前R波所在位置,若不存在幅度值大于该初始阈值的采样点时,以该初始阈值对应的采样点所在位置作为当前R波所在位置,提取当前R波。
上述步骤S33具体为:在第三预设序列段获取预设阈值,基于所述预设阈值提取R波,所述第三预设序列段为:从index(i)所在位置到index(i)+1.5fs所在位置,所述index(i)为当前R波所在位置,fs为采样频率,此时的i为小于2的自然数。
以fs为250Hz为例,当i等于0时,index(i)为起始点,例如采样频率fs为250Hz,从index(i)所在位置到index(i)+1.5fs所在位置的范围为1.5fs,即为375个采样点,从上述375个采样点中获取R波。
如图7所示,为本发明第一实施例提供的一种心电信号的R波提取方法的步骤S33的具体流程图,上述步骤S33具体包括:
步骤S331、在第三预设序列段获取最大值,并获取最大值的修正值;
具体地,在上述375个采样点中获取具有最大幅度值max(1)的采样点,并对该最大幅度值进行修正。优选地,修正系数为0.8,即0.8max(1)为修正值。
步骤S332、判断在第四预设序列段中是否存在幅度值大于所述修正值的点,若存在转到步骤S333,否则转到步骤S334;
具体地,所述第四预设序列段为从index(i)所在位置到index(i)+0.05fs所在位置,即在index(i)到index(i)+0.05fs之间的时间区间,其中,所述index(i)为当前R波所在位置,fs为采样频率,此时的i为小于2的自然数。本实施例中,采样频率fs为250Hz,0.05fs为12.5个采样点(四舍五入为13个采样点),该第四预设序列段即为从当前R波所在位置往后的13个采样点之间的区间段。若该区间内存在幅度值大于修正值的采样点,则转到步骤S333,否则转到步骤S334。
步骤S333、以该采样点作为当前R波所在的位置;
具体地,当存在幅度值大于修正值的采样点时,以该采样点所在位置作为当前R波所在位置,提取该R波。
步骤S334、以最大值对应的采样点所在位置作为当前R波所在的位置。
具体地,当不存在幅度值大于修正值的采样点时,则以上述第三预设序列段中的最大幅度值对应的采样点所在位置作为R波所在位置,提取该R波。
需要说明的是,步骤S33针对当前未提取过R波或者仅提取了一个R波的情况,当未提取过R波时,第三预设序列段为心电信号对应序列的起点开始到375(采用频率fs为250Hz时)个采样点之间的区间,而当已经提取一个R波时,第三预设序列段为第一个R波所在位置开始计算,到第375个采样点之间的区间,但提取第一个及第二个R波采用的方法一致。
需要说明的是,提取R波的过程具体如下:首先采用相同的方法(如步骤S33)提取第一个R波及第二个R波,接着采用另外的方法(如步骤S32)提取第三个、第四个、、、第i个,第三个R波开始则根据前两个R波自适应调整阈值,根据调整的阈值提取R波。
本实施例中,采用自适应阈值算法提取R波,即后续提取R波的参考阈值基于前一个R波的参数来调整,可一定程度上提高提取R波的准确性;在提取R波之前进行滤波处理,可有效地消除初始心电信号存在的噪声及避免基线漂移的问题,进一步提高提取R波的精度。
此外,提取R波的算法简单,涉及比较及加减,运算过程简单,提高R波提取效率。
再者,采用三级联的数学型态滤波器对所采集的心电信号进行滤波处理,可消除初始心电信号中的基线漂移、脉冲噪声等现象,避免上述现象干扰R波提取,一定程度提高R波提取的准确性。
实施例二:
图8示出了本发明第二实施例提供的一种心电信号的R波提取***的结构图,包括:采集模块1、与采集模块1连接的滤波模块2、与滤波模块2连接的提取模块3,其中:
采集模块1,用于采集原始的心电信号;
其中,采集原始的心电信号,采集频率fs可根据实际情况而设,优选地,本实施例的采样频率fs为250Hz。具体地,采集的心电信号包括若干采样点,每个采样点对应一个幅度值及时间点,而采样点可能是需要提取的R波,即每个R波携带对应幅度值及时间点的数据。
第一获取模块2,用于对采集的心电信号进行滤波处理,获得处理信号;
具体地,由于所采集的原始的心电信号可能因各种外在或内在因素(例如呼吸、身体状况等)干扰而出现偏移,因此需要对采集的原始的心电信号进行滤波处理。本实施例中,可采用滤波器来剔除噪声。
进一步地,设定所述心电信号的频率为fM,采样频率为fS,由模拟信号得到的数字信号周期长度(数据点数)为M=fS/fM,滤波器结构元长度为N,选择不同周期长度的信号通过不同结构元长度的滤波器,随着比值K=N/M增大,信号的衰减幅度增大,特别地,当K>0.5,即结构元素的横向尺寸(元素个数)大于或等于要滤波除去的分量的横向宽度(即采样个数),信号将完全被滤除掉(A=-∞),信号的衰减幅度由信号数字频率与结构元长度的比值唯一决定。
在本实施例的一个优选方案中,采用腐蚀及膨胀算法来进行滤波,具体为:
设f(n),(n=0,1,…,N-1)及k(m),(m=0,1,…,M-1)分别为一维离散函数,N>>M,N及M均为大于0的自然数,所述f(n)为待处理的心电信号序列,k(m)为结构元素。
采用f(n)关于k(m)的腐蚀运算,腐蚀算法为
接着进行f(n)关于k(m)的膨胀运算,运算公式为:其中,所述n=M-1,M,…,N-1。
需要说明的是,本实施例不局限于先进行腐蚀运算后进行膨胀运算,可以是先膨胀运算后腐蚀运算,或者腐蚀运算与膨胀运算同时进行,此处对此不作限制。
在本实施例的另一变形方案中,采用以下处理方式:
f(n)关于k(m)的开运算:及
f(n)关于k(m)的闭运算:
具体地,开运算和闭运算分别是在心电信号的下方和上方移动结构元素,并在每一点记录结构元素的最高点和最低点。开运算可消去信号中的波峰,闭运算可填充信号中的波谷。
在本实施例的又一变形方案中,采用三级联的数学型态滤波器对所采集的心电信号进行滤波处理,所述三级联的数学型态滤波器包括三级滤波器结构,分别为:五点的三角窗、三十点的汉宁窗及九十点的三角窗。
具体地,采用开闭及闭开滤波器的结合:
所述OC为开闭型态,所述CO为闭开型态,所述f为待处理信号的序列,k为结构元素。
采用上述开闭和闭合滤波器结合对应的算法如下:
本实施例中,开运算的收缩性使得开闭滤波器的输出幅值较小,闭运算的扩张性使得闭开滤波器的输出幅值较大,可有效抑制心电信号出现单向偏移的现象。此外,由于心电信号中实际被滤除的成分与运算中所采用的结构元素有关,如结构元素的宽度为M,信号中波峰或波谷的宽度为N,则有N>M,信号被保留;N<M,信号被滤除。采用上述开闭及闭合滤波器结合可同时去除信号中的正负两种脉冲噪声。
提取模块3,用于采用自适应阈值算法从所述处理信号对应的序列中提取R波。
优选地,如图9所示,为本发明第二实施例提高的一种心电信号的R波提取***的提取模块3的具体结构图,上述提取模块3具体包括:数量判断单元31、与数量判断单元31连接的第一提取单元32及第二提取单元33,其中:
数量判断单元31,用于判断当前是否已提取至少两个R波,当已提取时,反馈给第一提取模块32,否则向第二提取模块33反馈;
第一提取单元32,用于在当前是否已提取至少两个R波时,基于前两个R波对应的幅度值获取基准阈值,并提取当前R波;
第二提取单元33,用于在当为未提取至少两个R波时,基于预设阈值提取R波。
在本实施例的一个优选方案中,上述R波提取***可包括:
与第一提取单元32及第二提取单元33连接的R波判断单元34,用于判断是否还存在下一个R波,当存在时反馈给第一提取单元32,继续下一个R波的提取,否则结束进程。
具体地,可统计当前遍历的采样点的数量,与心电信号对应的采样点数量进行比较,若当前遍历的采样点为最后一个采样点时,则表示不存在下一R波,若当前遍历的采样点不属于最后一个采样点,则表示可能存在下一R波,反馈给第一提取单元32。
需要说明的是,从开始提取R波时,前两个R波的提取可使用第二提取单元33来提取,而第三个R波开始则采用第一提取单元32来提取,后续逐个遍历,直到完全提取,即后续提取R波的过程是一致的,都是基于当前R波的前两个R波的幅度值等数据来提取当前R波,后续进程则根据相同的提取方法遍历后续序列段的采样点来提取每一个R波,直到提取完成。
优选地,如图10所示,为本发明第二实施例提高的一种心电信号的R波提取***的第一提取单元32的具体结构图,该第一提取单元32具体包括:比较子单元321、与比较子单元321连接的第一提取子单元322,其中:
比较子单元321,用于比较前两个R波对应的幅度值,基于比较结果计算基准阈值;
具体地,由于当前已经提取两个以上R波,此时可采用第一公式比较前两个R波对应的幅度值,所述第一公式为:y(index(i-1))>y(index(i-2))/0.8,其中,index(i)为当前R波所在位置,而所述index(i-1)及index(i-2)分别为前两个R波所在位置,即index(i-1)与index(i-2)之间的时间区间,y(index(i-1))及y(index(i-2))分别表示前两个R波对应的幅度值,i为大于2的自然数;
当所述第一公式成立时,以y(index(i-2))/0.8作为基准阈值,即选择前一个R波index(i-1)的前一个R波index(i-2)对应的幅度值,并对该幅度值进行修正,得到y(index(i-2))/0.8,以修正后的数值作为基准阈值;
当所述第一公式不成立时,以y(index(i-1))*0.8作为基准阈值,及选择前一个R波index(i-1)对应的幅度值,并对该幅度值进行修正,得到y(index(i-1))/0.8,以修正后的数值作为基准阈值。
第一提取子单元322,用于基于该基准阈值提取当前R波。
具体地,该第一提取子单元322具体包括:初始阈值获取子单元及与初始阈值获取子单元连接的R波提取子单元,其中:
初始阈值获取子单元,用于基于所述基准阈值及第一预设序列段获取初始阈值,所述第一预设序列段为:从index(i-1)所在位置到index(i-1)+0.28(index(i-1)-index(i-2))所在位置之间的序列段,即index(i-1)到index(i-1)+0.28(index(i-1)-index(i-2))之间的时间区间。
R波提取子单元,用于基于所述初始阈值在第二预设序列段内提取当前R波;所述第二预设序列段为:从index(i)所在位置到index(i)+0.05fs所在位置,即index(i)与index(i)+0.05fs之间的时间区间,将上述范围内对每个采样点对应的幅度值与所获取的初始阈值进行比较,在该时间区间内提取当前R波。其中,所述index(i)为当前R波所在位置,fs为采样频率,此时的i为大于或等于2的自然数。
在本实施例的一个优选方案中,上述初始阈值获取子单元具体包括:阈值比较子单元及与该阈值比较子单元连接的选择子单元,其中:
阈值比较子单元,用于判断在第一预设序列段是否存在大于所述基准阈值的点;
选择子单元,用于在第一预设序列段存在大于所述基准阈值的采样点时,选择大于该基准阈值的幅度值作为初始阈值;且用于在第一预设序列段不存在大于所述基准阈值的采样点时,选择所述基准阈值作为初始阈值。
在本实施例的另一优选方案中,上述R波提取子单元具体包括:阈值判断子单元及与其连接的R波确认子单元,其中:
阈值判断子单元,用于判断在第二预设序列段中是否存在大于所述初始阈值的点;
具体地,在从index(i)所在位置到index(i)+0.05fs所在位置范围对应的序列段中获取所有采样点对应的幅度值,并判断是否有大于上述初始阈值的幅度值;
R波确认子单元,用于在第二预设序列段中存在幅度值大于初始阈值的采样点时,确认以大于所述初始阈值的采样点所在位置作为当前R波所在位置;还用于在第二预设序列段中不存在幅度值大于初始阈值的采样点时,以所述初始阈值所在位置作为R波所在位置。
即当存在幅度值大于该初始阈值的点时,以该幅度值对应的点作为当前R波所在位置,若不存在幅度值大于该初始阈值的采样点时,以该初始阈值对应的采样点所在位置作为当前R波所在位置,提取当前R波。
在本实施例中,第二提取模块33具体用于:在第三预设序列段获取预设阈值,基于所述预设阈值提取R波,所述第三预设序列段为:从index(i)所在位置到index(i)+1.5fs所在位置,所述index(i)为当前R波所在位置,fs为采样频率,此时的i为小于2的自然数。
以fs为250Hz为例,当i等于0时,index(i)为起始点,例如采样频率fs为250Hz,从index(i)所在位置到index(i)+1.5fs所在位置的范围为1.5fs,即为375个采样点,从上述375个采样点中获取R波。
优选地,如图11所示,为本发明第二实施例提供的一种心电信号的R波提取***的第二提取单元33的具体结构图,该第二提取单元33具体包括:修正值获取子单元331及与该修正值获取子单元331连接的幅度值判断子单元332、与幅度值判断子单元332连接的R波定位子单元333,其中:
修正值获取子单元331,用于在所述第三预设序列段获取最大值,并获取最大值的修正值;
具体地,在上述375个采样点中获取具有最大幅度值max(1)的采样点,并对该最大幅度值进行修正。优选地,修正系数为0.8,即0.8max(1)为修正值。
幅度值判断子单元332,用于判断在第四预设序列段中是否存在幅度值大于所述修正值的点;具体地,所述第四预设序列段为从index(i)所在位置到index(i)+0.05fs所在位置,即在index(i)到index(i)+0.05fs之间的时间区间。其中,所述index(i)为当前R波所在位置,fs为采样频率,所述i为小于2的自然数。本实施例中,采样频率fs为250Hz,0.05fs为12.5个采样点(四舍五入为13个采样点),该第四预设序列段即为从当前R波所在位置往后的13个采样点之间的区间段。
R波定位子单元333,用于若该区间内存在幅度值大于修正值的采样点时,以该采样点作为当前R波所在的位置;还用于在该区间内不存在幅度值大于修正值的采样点时,以所述最大值对应的点所在位置作为当前R波所在的位置。
具体地,当存在幅度值大于修正值的采样点时,以该采样点所在位置作为当前R波所在位置,提取该R波,当不存在幅度值大于修正值的采样点时,则以上述第三预设序列段中的最大幅度值对应的采样点所在位置作为R波所在位置,提取该R波。
需要说明的是,第二提取单元33针对当前未提取过R波或者仅提取了一个R波的情况,当未提取过R波时,第三预设序列段为心电信号对应序列的起点开始到375(采用频率fs为250Hz时)个采样点之间的区间,而当已经提取一个R波时,第三预设序列段为第一个R波所在位置开始计算,到第375个采样点之间的区间,但提取第一个及第二个R波采用的方法一致。
需要说明的是,提取R波的过程具体如下:首先利用第二提取单元33提取第一个R波及第二个R波,接着使用第一提取单元32提取第三个、第四个、、、第i个,第三个R波开始则根据前两个R波自适应调整阈值,根据调整的阈值提取R波。
本实施例中,采用自适应阈值算法提取R波,即后续提取R波的参考阈值基于前一个R波的参数来调整,可一定程度上提高提取R波的准确性;在提取R波之前进行滤波处理,可有效地消除初始心电信号存在的噪声及避免基线漂移的问题,进一步提高提取R波的精度。
此外,提取R波的算法简单,涉及比较及加减,运算过程简单,提高R波提取效率。
再者,采用三级联的数学型态滤波器对所采集的心电信号进行滤波处理,可消除初始心电信号中的基线漂移、脉冲噪声等现象,避免上述现象干扰R波提取,一定程度提高R波提取的准确性。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。
专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。