本发明涉及医学信号处理技术领域,更确切地说一种心电信号的qrs点检测方法。
背景技术:
心电信号是人们最早研究并且最熟悉,应用最熟练的生理信号之一,其在心脏功能检测,心血管疾病预防和诊断等方面都有着重要的应用。而qrs波作为心电信号最显著的特征之一,其准确实时预测与否,直接影响到心脏疾病检测和诊断的准确性。qrs波反应了左、右心室除极电位和时间的变化,其对室性早搏,心室肥厚、急性心肌梗死等疾病的预测有着极其重要的参考价值。不仅如此,qrs波的精准检测对于心电信号的其他波形如p波,u波等的检测也有非常重要的参考作用。
而由于在心电信号的采集过程可能会受到环境噪声,工频噪声,肌电噪声等多种噪声的干扰,使得心电信号qrs波检测有一定困难。而目前的检测方法如形态学滤波,小波变换,阈值法等虽然能较好的检测到小数据量心电信号的qrs波,但大都运算复杂,去噪类型单一,难以满足现如今大数据量的qrs波精确实时检测。
技术实现要素:
本发明的目的是为解决由于噪声干扰,大数据量心电信号的qrs波识别精度低的问题,而提供一种心电信号的qrs点检测方法。
心电信号qrs点检测方法,它包括:
1)原始心电信号的去噪
输入一组原始心电信号,对原始心电信号进行切比雪夫
2)生成过检测类qrs点
对去噪信号矩阵x进行希尔伯特变换,得到变换后信号矩阵x1,对变换后信号矩阵x1取绝对值,得到去噪信号的包络信号矩阵x2。识别包络信号矩阵x2波峰点,并将包络信号矩阵x2的波峰点集合作为该条心电信号的过检测类qrs点的包络幅度值存入矩阵h_place1,并将包络信号矩阵x2的波峰点下标集合作为该条心电信号的过检测类qrs点的坐标点,存入矩阵r_place1。其中矩阵r_place1和矩阵h_place1的元素是一一对应的。
3)去除过检测类qrs点中的非qrs点
a.去除矩阵r_place1和h_place1中的利用不应期检测到的非qrs点,此处的利用不应期检测到的非qrs点是指矩阵r_place1两相邻元素r1,r2差值小于b,b为不应期取值范围为0至300之间的任意整数,且在矩阵h_place1里两个相邻元素h1,h2数值较小的元素,继而得到矩阵r_place2和h_place2。其中元素r1在矩阵r_place1的下标与元素h1在矩阵h_place1的下标相同,元素r2在矩阵r_place1的下标与元素h2在矩阵h_place1的下标相同。
c.计算矩阵h_place2所有元素的平均值,然后乘以0.26,得到阈值thr。
d.去除矩阵h_place2中小于thr的包络幅度值以及在的矩阵r_place2中对应的坐标点,分别得到矩阵r_place3和h_place3。
4)精确qrs点坐标
a.取原始心电信号的波峰,波谷下标位置集合,存入矩阵p。
b.依取r_place3中的每一个元素,与矩阵p中的元素比较,当元素差值最小时,用在矩阵p中差值最小的元素替换r_place3中取的元素。最终矩阵r_place3即为本专利检测出的心电信号的qrs点。
c.精确qrs点坐标
将矩阵r_place3的一个元素与矩阵peaks相减,得到矩阵pdif。利用matlab内置函数abs()求矩阵pdif的绝对值apdif,利用matlab的内置函数min()计算apdif的最小值并返回坐标h。将矩阵r_place3中下标为h的的元素赋值给当前r_place3的元素,以完成过检测类qrs点的坐标精确。重复循环以上步骤,遍历矩阵r_place3,完成所有过检测类qrs点的坐标精确,最终得到的矩阵r_place3即为本专利检测到的心电信号的qrs点。
本发明提供了心电信号qrs点检测方法,它包括:1)原始心电信号的去噪;2)生成过检测类qrs点;3)去除过检测类qrs点中的非qrs点;4)精确qrs点坐标;本发明只使用两通道中的第一个通道的心电信号,参考qrs点只使用正常搏动,左束支传导阻滞,右束支传导阻滞,异常房性早搏,室性早搏,心室融合心跳,交界性早搏,房性早搏,室上性早搏或异常,室性逸搏,交界性逸搏,起搏心跳和未分类心跳类型的qrs点共100717个;在本发明中,通过工作在计算机上的软件系统和行业内所周知的matlab仿真环境进行实现;有益效果:解决了由于噪声干扰,大数据量心电信号的qrs波识别精度低的问题。
具体实施方式
实施例1心电信号的qrs点检测方法
下面结合具体的实施方式对本发明作进一步说明。
具体实例为mit-bih心律失常数据库。该数据库的数据及使用说明公开于行业内周知的physionet.org网站。数据库包含48个两通道动态心电信号。摘录自bih心律失常实验室在1975年至1979年之间研究的47位受试者。数据库的心电信号每通道的采样频率为360hz,在10mv范围内以11位分辨率数字化,每条信号的长度为65万个采样点。每个记录由两位或更多心脏病专家独立注释;以获取数据库中包含的每个节拍的参考qrs点(总共约110,000个)。本实验中只使用两通道中的第一个通道的心电信号,参考qrs点只使用正常搏动,左束支传导阻滞,右束支传导阻滞,异常房性早搏,室性早搏,心室融合心跳,交界性早搏,房性早搏,室上性早搏或异常,室性逸搏,交界性逸搏,起搏心跳和未分类心跳类型的qrs点共100717个。在本实例中,通过工作在计算机上的软件系统(windowslinux)和行业内所周知的matlab仿真环境进行实现。
本实施例的详细步骤如下:
一、原始心电信号的去噪
1)变量设置及数据准备
将数据库中的44条心电数据分别用load函数加载到环境变量中,每个人的心电信号加载后的变量为大小为2*650000的矩阵var,分别从每个人的var矩阵中截取第一行1*650000大小的矩阵,横向拼接组成44*650000的变量ecg,其中每一行即为数据库的每一个人心电数据的第一通道心电信号。
2)切比雪夫
新建44*650000的变量y,用于储存用切比雪夫
具体操作如下:
当i取1到44时
二、生成过检测类qrs点
1)变量设置及数据准备
新建大小为1*65000的暂存去噪信号矩阵b,用于暂时存放步骤(2)遍历矩阵y时截取的滤波后的信号。新建大小为1*44大小的元组r_place1用于存放检出的过检测类qrs点坐标点。其中元组r_place1的每一个元素均为从数据库的一个心电数据的第一通道心电信号检测出的过检测类qrs点坐标点矩阵。新建大小为1*44大小的元组h_place1用于存放检出的过检测类qrs点幅度值,其中元组h_place1的每一个元素均为从数据库的一个心电数据的第一通道心电信号检测出的过检测类qrs点幅度值矩阵。
当i=1,2,3…44时执行步骤2):
2)暂存去噪信号矩阵令b=y(i,:),利用matlab内置函数hilbert()对暂存去噪信号矩阵b求希尔伯特变换,得到变换后信号x1,对变换后信号x1取绝对值,得到去噪信号的包络信号x2。并将包络信号存入矩阵y_ah(i,:)中。利用matlab内置函数fingpeaks()对包络信号x2识别波峰点坐标作为该条心电信号的过检测类qrs点坐标点集合以及幅度值集合,前者存入r_place1{i}中,后者存入h_place1{i}中;
具体操作如下:
三、筛选去除qrs点坐标位置集合中的非qrs点的坐标位置
当i=1,2,3…44时执行步骤(1)(2)(3)(4):
1)数据准备
新建矩阵r_place等于r_place1{i},新建矩阵r_place2等于r_place1{i}新建矩阵e等于y_ah(i,:),人为设定的不应期x设为108,新建矩阵h_place等于h_place1{i}。新建空矩阵pr用于存放非qrs点。
2)不应期去除非qrs点
利用matlab内置函数min()寻找h_place的最小值p,并返回最小值p的在矩阵h_place1的下标pm,遍历数组r_place2,寻找到与r_place(pm)相同的元素并返回元素下标pm1,利用matlab内置函数diff()计算元素r_place2(pm1)与其相邻元素的差值,返回矩阵dif。如果矩阵dif的所有元素中有小于人为设定的不应期x的,则元素r_place2(pm1)为非r点元素,删除。然后删除矩阵r_place1和h_place1中下标为pm的元素,以保证在矩阵h_place1寻找最小值时能顺利更新最小值以及矩阵r_place1和h_place1元素保持一致。顺序循环以上步骤直到r_place1{i}的每相邻两个元素的差值都小于b。
3)计算阈值
在包络信号x2中取以矩阵r_place2的元素作为下标的qrs点包络幅度值集合,存入矩阵h_place2。利用matlab内置函数mean()计算矩阵h_place2所有元素的均值然后乘以0.26得到阈值thr。
4)阈值去除非r点
遍历矩阵h_place2,删除矩阵h_place2中小于thr的元素,同时删除对应坐标下矩阵r_place2的元素。并将r_place2重新赋值给r_place1{i},并将h_place2重新赋值给h_place1{i},以更新过检测类qrs点。
四、精确qrs点坐标
当i=1,2,3…44时执行步骤(1)(2)(3):
1)数据准备
创建矩阵r_place3,并将r_place1{i}的所有元素赋值给矩阵r_place3。创建矩阵f,并将ecg(i,:)的所有元素赋值给矩阵f。创建矩阵g并将ecg(i,:)的所有元素的相反数赋值给矩阵g。计算矩阵r_place3的元素个数,记为k。
2)取心电信号的波峰波谷下标
利用matlab内置函数findpeaks()寻找矩阵f的波峰,并将返回值赋值给矩阵peaks1,利用matlab内置函数findpeaks()寻找矩阵g的波峰,并将返回值赋值给矩阵peaks2,,由于矩阵g和矩阵f的对应下标的元素互为相反数,则矩阵peaks2即为矩阵f的波谷。将矩阵peaks1和矩阵peaks2纵向合并为矩阵peaks。
3)精确qrs点坐标
将矩阵r_place3的一个元素与矩阵peaks相减,得到矩阵pdif。利用matlab内置函数abs()求矩阵pdif的绝对值apdif,利用matlab的内置函数min()计算apdif的最小值并返回坐标h。将矩阵r_place3中下标为h的的元素赋值给当前r_place3的元素,以完成过检测类qrs点的坐标精确。重复循环以上步骤,遍历矩阵r_place3,完成所有过检测类qrs点的坐标精确,最终得到的矩阵r_place3即为本专利检测到的心电信号的qrs点。
具体操作如下:
当j取1到k时