一种运动过程中异常心电信号的识别方法

文档序号:30068649发布日期:2022-05-18 01:33阅读:89来源:国知局
一种运动过程中异常心电信号的识别方法

1.本发明属于动态心电信号处理的技术领域,具体涉及一种运动过程中异常心电信号的识别方法。


背景技术:

2.随着心血管类疾病日益增长的患病率,其逐渐成为研究的热点课题。对于心血管类疾病主要通过心电图(ecg)进行检测,心电图是一种电位波形图,描绘了心脏激动过程中体表上产生周期性的电变化活动。目前常规的心电诊断技术仍是医生通过静态心电图结合临床经验来判断患者是否异常,但是伴随着移动智能设备的快速发展,实时的心电信号异常检测任务亟待解决。比如通过电子手环可以实时监测人体的心电信号,若能动态的对这些信号进行异常识别,便可以实现预防心血管类疾病的功能。
3.在心电信号异常识别的研究中,主要可以分为三个板块:(i)心电信号去噪,主要应用经验模态分解(emd)、小波阈值去噪以及滤波器等方法;
4.(ii)心电信号特征提取,时域特征一般提取qrs波群相关特征,频域特征常通过傅里叶变换、小波变换等信号处理方法;(iii)心电信号分类算法,主要应用机器学习和深度学习分类算法。
5.数据质量对分类效果具有直接的影响。emd方法是信号去噪的常用方法之一,目前研究人员在使用emd对心电信号进行去噪时,会结合阈值去噪方法对分解后得到的imf分量系数进行筛选进而重构实现去噪。但是这个过程中往往忽略掉emd在心电信号上分解时存在的模态混叠问题,即使通过加入白噪声的eemd方法也无法解决,这是由于qrs波群过窄且过陡的性质,加入的白噪声会被其覆盖。imf分量中模态混叠问题的存在,会导致后续确定阈值时存在偏差,影响去噪效果,亟需一种新的分解方法来解决eemd在心电信号分解上的模态混叠问题。
6.近几年来,研究人员不再局限于序列数据分析,而是提取其二维特征,比如转化为二维图像或者通过相关信号分析手段提取频域二维特征,然后构建基于cnn的图分类模型。深度学习是近年来机器学习领域的热点课题,在自然语言处理和计算机视觉领域取得了重要的成果,其中2017年提出的基于自注意力机制的transformer模型大放异彩,在自然语言处理上效果显著。近两年,研究人员逐渐将其迁入到计算机视觉领域,提出了vision transformer(vit)模型,也证明其在大批量数据集上表现良好。


技术实现要素:

7.有鉴于此,本发明提供了一种运动过程中异常心电信号的识别方法,能够解决eemd算法在心电信号分解上的模态混叠问题,通过傅里叶变换自动划分心拍,实现高准确率。
8.实现本发明的技术方案如下:
9.一种运动过程中异常心电信号的识别方法,包括以下步骤:
10.步骤1:获取用于训练和测试的运动过程中的心电信号,获得心电信号的类别标签,并对其进行数据预处理;
11.步骤1.1:设计改进eemd算法,对心电信号进行分解;
12.步骤1.2:通过阈值和阈值函数对分解后的imf分量进行去噪,并重构得到去噪信号;
13.步骤2:心拍自动划分;
14.步骤2.1:对去噪后的心电信号进行傅里叶变换,得到该心电信号的周期特征;
15.步骤2.2:通过差分法定位r波位置后进行心拍划分;
16.步骤3:构建vit分类模型,提取步骤2划分后的心拍的频域特征输入到分类模型中进行训练并分类;
17.步骤3.1:提取心拍序列的二维频域特征;
18.步骤3.2:搭建vision transformer分类模型;
19.步骤3.3:将训练数据集划分为80%的训练集、20%的验证集,将训练集输入到vit模型中进行训练,通过验证集对模型进行调参,得到分类模型;
20.步骤3.4:计算分类模型在测试集上的准确率、召回率和精准率,评价模型的分类效果。
21.进一步地,步骤1.1具体为:
22.(1)得到原始信号采样序列{x(tn)},n=1,2,...,n,其中n为序列长度,计算原始序列的一阶差分序列其中其中
23.(2)计算一阶差分序列的绝对值的中位数,作为是否进行插值的判断阈值,即
24.(3)对一阶差分序列的值进行判断,若差分值大于判断阈值,即则在对应原信号位置处开始加入kg=|x(t
n+1
)-x(tn)|/θ个扰动插值,g表示插值次数的计数值,插值使用线性插值y(t)=at+b+ε,其中a=[x(t
n+1
)-x(tn)]/(t
n+1-tn),b=x(tn)-[x(t
n+1
)-x(tn)]/(t
n+1-tn)tn,ε为服从正态分布的随机数,得到插值信号序列k为插值总个数,并记录原信号在插值信号中的位置;
[0025]
(4)生成与插值信号序列同等长度n+k的高斯白噪声序列,向插值信号序列中加入高斯白噪声,进行噪声辅助分析,得到
[0026]
(5)计算序列的极值点,通过三次样条插值对分别对上极值点、下极值点拟合上下包络线;
[0027]
(6)对上下包络线求均值,得到局部均值曲线,就是第一个imf分量
[0028]
(7)重复步骤(5)和(6),直到余项的极值点个数小于2,
得到q个imf分量,即将信号分解为得到q个imf分量,即将信号分解为
[0029]
进一步地,步骤1.2具体为:
[0030]
(1)对步骤1.1分解后得到的q个imf分量,确定出以噪声为主导的分量,计算每个imf分量的过零率pi,i=1,...,q,然后计算相邻两个imf分量的过零率比值f
i’=pi/p
i+1
,i’=1,..,q-1,当f
i’第一次达到极大值点时,定义其为以噪声为主导的分量和以信号为主导的分量的分界处;
[0031]
(2)对以噪声为主导的imf分量进行系数筛选,使用通用阈值(2)对以噪声为主导的imf分量进行系数筛选,使用通用阈值其中n+k为imf分量的长度,选择软阈值函数:
[0032][0033]
对imf分量系数进行筛选;
[0034]
(3)根据步骤1.1中(3)记录的原始信号的位置,对去噪后的以噪声为主导的imf分量和以信号为主导的imf分量进行相应位置重构,得到去噪信号序列{x’(tn)},n=1,2,...,n。
[0035]
进一步地,步骤2.1具体为:
[0036]
(1)对去噪后的心电信号序列{x’(tn)},n=1,2,...,n进行离散傅里叶变换
[0037]
(2)找到其傅里叶变换f(ω)的极大值点f
max
(ω)及其对应的频率ω
max
,得到心电信号序列的周期t=n/ω
max
,其中n为序列长度。
[0038]
有益效果:
[0039]
本发明方法根据心电信号的波形特征,设计了基于插值的改进eemd方法,能实现对心电信号的有效分解,进而提高了去噪效果,在保证原始信号特征的情况下提高信噪比,提高数据质量以为分类打下良好基础;使用傅里叶变换对心拍进行自动划分,打破了以往依赖先验进行划分的限制;通过vit模型进行分类,实现了较好的心电信号异常识别效果,准确度达到93%。
附图说明
[0040]
图1为改进eemd算法对心电信号分解流程图。
[0041]
图2为仿真信号与去噪后信号图像。
[0042]
图2(a)表示仿真带噪信号图;
[0043]
图2(b)表示基于改进eemd去噪后的信号图像;
[0044]
图3为去噪效果对比图。
[0045]
图4为本发明通过傅里叶变换自动划分出的心拍示意图。
[0046]
图4(a)表示傅里叶变换后的频谱;
[0047]
图4(b)表示单个心拍示意图;
[0048]
图5为单个心拍的stft图像。
[0049]
图6为vit模型的结构图。
具体实施方式
[0050]
下面结合附图并举实施例,对本发明进行详细描述。
[0051]
一种运动过程中异常心电信号的识别方法,包括以下步骤:
[0052]
步骤1:获取用于训练和测试的运动过程中心电信号,获得心电信号的类别标签,并对其进行数据预处理。
[0053]
步骤1.1:设计改进eemd算法,对心电信号进行分解。
[0054]
具体地:
[0055]
针对eemd算法在心电信号qrs波群的陡脉冲信号中无法添加有效添加白噪声导致出现模态混叠这一问题,提出改进的eemd算法,具体步骤如下:(1)得到原始信号采样序列{x(tn)},n=1,2,...,n,其中n为序列长度,计算原始序列的一阶差分序列其中其中
[0056]
(2)计算一阶差分序列的绝对值的中位数,作为是否进行插值的判断阈值,即
[0057]
(3)对一阶差分序列的值进行判断,若差分值大于判断阈值,即(3)对一阶差分序列的值进行判断,若差分值大于判断阈值,即则在对应原信号位置处开始加入kg=|x(t
n+1
)-x(tn)|/θ个扰动插值,g表示插值次数的计数值,插值使用线性插值y(t)=at+b+ε,其中a=[x(t
n+1
)-x(tn)]/(t
n+1-tn),b=x(tn)-[x(t
n+1
)-x(tn)]/(t
n+1-tn)tn,ε为服从正态分布的随机数,得到插值信号序列k为插值总个数,并记录原信号在插值信号中的位置;
[0058]
(4)生成与插值信号序列同等长度n+k的高斯白噪声序列,向插值信号序列中加入高斯白噪声,进行噪声辅助分析,得到
[0059]
(5)计算序列的极值点,通过三次样条插值对分别对上极值点、下极值点拟合上下包络线;
[0060]
(6)对上下包络线求均值,得到局部均值曲线,就是第一个imf分量
[0061]
(7)重复步骤(5)和(6),直到余项的极值点个数小于2,得到q个imf分量,即将信号分解为得到q个imf分量,即将信号分解为图1为改进eemd算法对心电信号分解流程图。
[0062]
步骤1.2:通过阈值和阈值函数对分解后的imf分量进行去噪,并重构得到去噪信号。
[0063]
具体地:
[0064]
(1)对步骤1.1分解后得到的q个imf分量,确定出以噪声为主导的分量,因为心电信号中噪声主要为高频噪声,主要集中在前面的imf分量中。计算每个imf分量的过零率pi,i=1,...,q,然后计算相邻两个imf分量的过零率比值f
i’=pi/p
i+1
,i’=1,..,q-1,当f
i’第
一次达到极大值点时,定义其为以噪声为主导的分量和以信号为主导的分量的分界处。
[0065]
(2)对以噪声为主导的imf分量进行系数筛选,使用通用阈值(2)对以噪声为主导的imf分量进行系数筛选,使用通用阈值其中n+k为imf分量的长度,选择软阈值函数:
[0066][0067]
对imf分量系数进行筛选。
[0068]
(3)根据步骤1.1中(3)记录的原始信号的位置,对去噪后的以噪声为主导的imf分量和以信号为主导的imf分量进行相应位置重构,得到去噪信号序列{x’(tn)},n=1,2,...,n,图2为仿真信号与去噪后信号图像。
[0069]
(4)评价去噪效果,使用指标包括:信噪比(4)评价去噪效果,使用指标包括:信噪比相关系数和均方根误差其中cov(x,x’)表示协方差,d(x)表示方差。图3为去噪效果对比结果图。
[0070]
步骤2:心拍自动划分。
[0071]
步骤2.1:对去噪后的心电信号进行傅里叶变换,计算得到该心电信号的周期特征。
[0072]
具体地:
[0073]
(1)对去噪后的心电信号序列{x’(tn)},n=1,2,...,n进行离散傅里叶变换
[0074]
(2)找到其傅里叶变换f(ω)的极大值点f
max
(ω)及其对应的频率ω
max
,得到心电信号序列的周期t=n/ω
max
,其中n为序列长度。
[0075]
步骤2.2:通过差分法定位r波位置后进行心拍划分。
[0076]
具体地:
[0077]
(1)通过差分法定位r波位置,步骤如下:
[0078]

计算去噪信号序列{x’(tn)},n=1,2,...,n的一阶差分序列)},n=1,2,...,n的一阶差分序列其中
[0079]

从起始点开始以时间窗w截取一段心电数据,求出极大值点记为r1;
[0080]

找出一阶差分序列的最大值位置t
max
和最小值位置t
min
,比较[t
min
,t
max
]间的数据,找到极大值点记为r’,令r1=r’,则该点就是第一个r波位置;否则在第一和第二个r波时,将极大值点位置记为r波,其他通过计算r1r与rr’间期差,差值小的记为r波;
[0081]

以第一个r波位置为起点,按照步骤



找出第二个r波位置,依此类推。
[0082]
(2)对于检测到的r波位置,分别向前向后提取2t/5、3t/5个采样点,记为单个心拍,至此,将心电信号序列全部划分为单个心拍序列拍,至此,将心电信号序列全部划分为单个心拍序列图4为划分出的单个心拍数据图像。
[0083]
步骤3:构建vit分类模型,提取步骤2划分后的心拍的频域特征输入到分类模型中进行训练并分类。
[0084]
步骤3.1:提取心拍序列的二维频域特征。
[0085]
具体地:
[0086]
搭建对步骤2划分后的心拍序列进行离散短时傅里叶变换其中g
*
(
·
)为窗函数,得到二维频域特征图。图5为stft图像。
[0087]
步骤3.2:搭建vision transformer分类模型。
[0088]
具体地:
[0089]
vision transformer是使用基于self-attention机制的传统transformer的架构,对二维图像数据进行分类,对于大批量数据的效果要高于传统的基于cnn的模型。图6为vit模型的结构图。
[0090]
(1)图像分块与降维。采用切块的方式将x∈h
×w×
c的连续的图像转换为类似nlp任务中的一个个token,变成一个x
p
∈n
’×
(p2·
c)的展平的二维块序列,其中h
×
w为二维图像大小,c为通道数,p为块的大小,n’=hw/p2表示二维块的个数,每个块的维度是(p2·
c)。
[0091]
(2)patch embedding。对每个向量做一个线性变换(全连接层),记为e,将向量压缩,它的输入维度大小是(p2·
c),输出维度大小是d,常用256。然后在第一个位置加入一个可学习的嵌入向量x
class
,再加上可学习的位置向量e
pos
,即得到最终的输入
[0092]
(3)将输入送到encoder,执行多头注意力机制z’l
=msa(ln(z
l-1
))+z
l-1
,l=1,...,l,其中ln(
·
)为layer normalization,是指在通道方向上进行归一化,msa(
·
)为多头自注意力过程。然后执行z
l
=mlp(ln(z’l
))+z’l
,l=1,...,l和通过反向传播训练模型。
[0093]
步骤3.3:将训练数据集划分为80%的训练集、20%的验证集,将训练集输入到vit模型中进行训练,通过验证集对模型进行调参,得到分类模型。
[0094]
具体地:
[0095]
(1)本发明使用电子设备采集到的运动心电训练数据共375m,将其划分为80%的训练集共300m、20%的验证集75m,使用vit模型进行大数据的预训练。随机初始化权重,使用adam优化器,minibatch大小为64,学习率初始化为0.001。
[0096]
(2)通过20%的验证集进行调参,即通过网格搜索与人工调整的方式来调整网络架构和优化算法的超参数,最终得到训练好的分类模型。
[0097]
步骤3.4:计算分类模型在测试集上的准确率、召回率和精准率,评价模型的分类效果。
[0098]
具体地:
[0099]
本发明使用电子设备采集到的运动心电测试数据共75m,使用训练好的分类模型对测试数据进行分类预测,计算分类结果的准确率、召回率、精准率和f1,主要以准确率作为评价指标评价模型的分类效果。
[0100]
结果表明,通过改进eemd的去噪方法能更好的去除心电信号中的噪声,为分类模型提供了更高质量的数据;通过傅里叶变换识别周期特征可以很好的划分出单个心拍;搭建的vit模型能够很好的提取心电信号的特征并实现异常心拍与正常心拍的识别,准确率达到93%,本发明所提供的方法在心电信号动态异常识别领域具有良好的表现。
[0101]
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1