基于心音信号计算心率的方法与流程

文档序号:20757900发布日期:2020-05-15 17:38阅读:997来源:国知局
基于心音信号计算心率的方法与流程

本发明涉及基于智能听诊器采集的实时心音信号来计算心率的方法。



背景技术:

听诊器已经有200多年的历史,自发明以来,就成为了医生的一个基础检查装置,并且在心肺疾病的初诊方面发挥重要的作用。然而传统听诊器是机械结构的,通过物理结构对声音进行放大,其主要缺点只能医生凭借经验判断疾病特征,并且人体的声音数据无法数字化保存。

随着移动互联网与人工智能的迅速发展,电子听诊器(智能听诊器)的出现,这个古老的行业有了全新的升级。电子听诊器利用电子技术放大身体的声音,在一定程度上克服了听诊器噪音高的问题,在保持传统声学听诊器的外观和感觉的基础上,能够提高声音信号的检测能力。

电子智能听诊器的问世大大地弥补了远程医疗中远程诊断工具的空缺并赋予患者更多的医疗参与感和主动权,让患者可以在家问诊、听诊并第一时间得到医生的帮助和建议。在互联网和智能硬件的配合下,医院和医生对于患者的服务时间及空间都得到极大的拓展,使诊前报警,诊后随访能力都得到了加强。同时也将患者听诊音信息作为电子数据,具有可存储性,为今后的医学新技术研发提供更丰富的数据支撑。因此,电子智能听诊器可以说是远程医疗、智能医疗的润滑剂,能让远程医疗更贴近传统的医患面对面,让远程医疗、智能医疗的作用能真正落地。听诊器从传统形式进入智能化、互联网化时代,使听诊器从一个医生的诊断工具延展成了患者的远程医疗工具,从医院拓展到了患者家里成为患者的自诊断武器。

现有的电子听诊器一般基于心音计算心率的方法主要是通过查找心音信号数据峰值来确定心率对应的s1、s2波峰,通过波峰之间的时间差t来计算心率,其要求的心音信号数据需要十分规范,需要有明确的心音s1、s2波峰,但在实际使用环境中无法规避环境噪音、设备摩擦音等异常声音带来的干扰,导致实际测量计算误差比较大,同时对操作手法、拾音设备设计、使用环境等要求相当高。

本发明涉及到的名词解释:

心音:心音(heartsound)指由心肌收缩、心脏瓣膜关闭和血液撞击心室壁、大动脉壁等引起的振动所产生的声音。它可在胸壁一定部位用听诊器听取,也可用换能器等仪器记录心音的机械振动,称为心音图。

心音s1、s2:心脏收缩舒张时产生的声音(即心脏跳动一次发出的两次声音),可用耳或听诊器在胸壁听到,亦可用电子仪器记录下来(心音图)。可分为第一心音(s1)第二心音(s2)。(正常情况下均可听到)。第三心音(s3通常仅在儿童及青少年可听到),第四心音(s4正常情况很少听到),本发明所指的相邻两个心音为s1和s2,本发明所指的相邻两个对应心音为两个s1或者两个s2。

智能听诊器:智能听诊器是一种取消了人耳与听头的物理连接,采用蓝牙无线等通信手段传输音频,配合智能算法,利用智能手机app为患者提供标准化听诊引导,并能将远程医生服务接入产品,让人在家智能远程听诊、看医生的智能医疗设备。

采样频率:采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机每秒钟采集多少个信号样本。



技术实现要素:

本发明为了解决上述现有技术心率计算误差较大、要求高的技术问题,提出一种基于心音信号计算心率的方法。

本发明提出的基于心音信号计算心率的方法是通过智能听诊器采集到的实时声音信号实现心率计算的方法,利用香农能量算法得出香农能量曲线,再利用香农包络算法计算出用于心率计算的心音包络,最后利用包络特征分析出有效心音包络计算出心率。

本发明具体包括如下步骤:

步骤1,接收实时心音信号并进行预处理;

步骤2,将预处理后的心音信号通过香农包络算法计算得到香农包络曲线数据并进行缓存;

步骤3,对缓存的香农包络曲线数据进行分帧和第一窗口滑动长度设置;

步骤4,对当前缓存的香农包括曲线数据的每一帧数据进行分析,得到一系列的心音包络数据;

步骤5,筛选出有效的心音包络数据;

步骤6,按照时间顺序取相邻两个对应心音中的包络峰值,根据两个包络峰值计算得到瞬时心率。

优选的,还包括步骤7:计算多个顺次的瞬时心率的平均值得到平均心率。

进一步,所述步骤1具体包括:

步骤1.1,将实时心音信号进行缓存,对缓存的心音信号数据进行分帧和第二窗口滑动长度设置;

步骤1.2,将每一帧心音信号数据进行归一化处理得到所述预处理后的心音信号;

步骤1.3,设置心音信号处理的窗口长度,和相邻窗口之间的重叠长度。

进一步,所述步骤1.1中,对缓存的心音信号数据进行分帧时的帧时长具体为可以确保每一帧心音信号数据至少包含一个心音周期的时长。

进一步,所述步骤1.2具体包括:

判断当前帧是否是第一帧心音信号数据,如果不是第一帧心音信号数据,则从缓存中向前滑动所述第二窗口滑动长度开始取一帧心音信号数据并继续下一步骤;否则,继续下一步骤;

将每一帧心音信号数据通过公式进行归一化处理,所述xnorm(t)为归一化处理得到时间t对应的所述预处理后的心音信号,所述s(t)为每一帧心音信号中的每一个时间t对应的数据,max(|s(t)|)为每一帧心音信号中所有数据的最大值。

进一步,所述步骤2具体包括:

将预处理后的心音信号中依次连续长度为心音信号处理的一个所述窗口长度的数据根据公式计算平均香农能量,其中,xnorm(i)为每一帧所述预处理后的心音信号,所述n为一个心音信号处理的窗口长度内的采样点数,es(t)为第t段窗口长度的心音信号的平均香农能量;

根据标准方差公式计算平均香农能量的标准方差s(es(t));

根据公式计算归一化平均香农能量得到香农包络曲线数据并进行缓存,所述p(t)为第t段窗口长度的心音信号对应的香农包络曲线数据,m(es(t))为es(t)的平均值。

进一步,所述步骤4具体包括:

设置包络阈值;

按照时间顺序依次将每一帧数据中的归一化平均香农能量与阈值进行比较;

从找到大于所述阈值的归一化平均香农能量对应的时间点t1起,直到找到下一个小于等于所述阈值的归一化平均香农能量对应的时间点t2为止,将时间点t1与时间点t2之间的归一化平均香农能量存为一个心音包络对应的心音包络数据;

继续预测时间点t2之后的vn个归一化平均香农能量,若存在大于所述阈值的归一化平均香农能量,则向后查找新的时间点t2,使得新的时间点t2处的归一化平均香农能量小于等于所述阈值,且该新的时间点t2之后的vn个归一化平均香农能量不存在大于所述阈值的归一化平均香农能量。

上述vn的取值满足,vn*dt小于相邻两次心音(s1、s2)的时间间隔。

进一步,所述步骤5具体包括:

将每一个心音包络的所述时间点t2与时间点t1的差值乘以相邻两段平均香农能量的时间间隔得到的取值,与预设时间值进行比较,若所述取值小于等于所述预设时间值,则该心音包络对应的心音包络数据为有效的心音包络数据,否则,为无效的心音包络数据;

所述预设时间值大于相邻两次心音(s1、s2)的持续时长当中的最大值。

进一步,根据对应的两个包络峰值计算得到瞬时心率具体通过公式计算得到,其中t2为第二个心音的包络峰值对应的时间,t1为第一个心音的包络峰值对应的时间,dt为相邻两段平均香农能量的时间间隔。

本发明利用自主设计的滑动窗口机制,可以使数据无缝对接提高准确度,同时也可以使计算结果平滑稳定。然后本发明进一步合理对心音数据分帧,对心音数据进行合理切割,消除因心音数据不平稳导致心音包络不明显,甚至包络消失问题,使得到的两次心音s1、s2波峰的心音包络数据更清晰准确。并且本发明采用有效包络缓存分帧滑动窗口输出计算方法,使两次心音s1、s2反复交错计算,使样本数丰富,分布正态化,有效控制误差提高准确度。进一步筛选出有效的心音包络避免异常声音信号的干扰,再加入包络连续性探测分析技术可以更准确地找到相邻两次心跳对应的心音的波峰。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的整体流程图。

图2位本发明的详细流程图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

下面结合附图以及实施例对本发明的原理及结构进行详细说明。

图1给出了本发明的整体流程图。本发明接收实时的心音信号,然后将实时心音信号数据进行缓存,制定相应的数据窗口滑动机制,对心音信号数据进行预处理,之后将预处理后的心音信号计算平均香农能量、香农能量方差,然后在计算香农包络曲线数据,对香农包络曲线数据进行缓存,通过数据窗口滑动机制对包络的连续性进行探测,最终得到一系列的香农包络,并从中筛选出有效的香农包络,查找相邻两个对应心音(相邻两次心跳的两个心音s1、或者两个心音s2)的包络峰值的时间,从而进行心率计算。

图2给出了本发明的详细流程图。

本发明接收智能听诊器的实时心音信号并进行缓存,然后对实时心音信号数据进行分离分帧,确保分帧后的每一帧心音信号数据包含至少一个心音周期(也可以简称为心音),每一帧心音信号数据的长度p1通过公式p1=pt*fs计算得到,其中,pt为每一帧心音信号数据的时长,fs为心音信号的采样率。对心音信号数据的处理采用数据窗口滑动机制,设定一个第二窗口滑动长度p0verlay,该第二窗口滑动长度p0verlay=d*fs,d为香农包络窗口重叠长度。

当开始处理心音信号数据时,判断当前缓存的数据是否足够一帧的数据,如果不足够要等到足够一帧数据再取数据,也就是说,判断当前取的这一帧数据是不是第一帧心音信号数据,如果是第一帧数据,且数据量不够一帧数据,那么继续等待缓存至一帧数据再进行处理。如果不是第一帧心音信号数据,则从缓存中向前滑动第二窗口滑动长度p0verlay开始取一帧心音信号数据进行处理。具体的,将每一帧心音信号数据通过公式进行归一化处理,其中,xnorm(t)为归一化处理得到的时间t对应的预处理后的心音信号,s(t)为每一帧心音信号中的每一个时间t对应的数据,max(|s(t)|)为每一帧心音信号中所有数据的最大值。

接着设置心音信号(即预处理后的心音信号)处理的窗口长度l=t*fs,相邻窗口的重叠长度d=t/2*fs,其中t为窗口长度对应的窗口时间,例如设置t=0.02s,fs为心音信号的采样率,根据窗口时间以及心音信号的采样率来决定窗口长度l,窗口的重叠长度d未必一定为二分之一,可以适当调整为相应的最佳值。

将预处理后的心音信号中依次连续长度为心音信号处理的一个窗口长度l的数据根据公式计算平均香农能量,其中,xnorm(i)为每一帧预处理后的心音信号,n为一个心音信号处理的窗口长度l内的采样点数,es(t)为第t段窗口长度的心音信号的平均香农能量。

接着根据标准方差公式计算平均香农能量的标准方差s(es(t))。

根据公式计算归一化平均香农能量得到香农包络曲线数据并进行缓存,其中p(t)为第t段窗口长度的心音信号对应的香农包括曲线数据,m(es(t))为es(t)的平均值。p(t)也可以称为香农包络,即时间t随着窗沿时间轴移动而变化,得到香农包络曲线,每两段香农包络时间间隔与平均香农能量的时间间隔一致,时间间隔dt=t/2。

缓存香农包络曲线数据,对香农包络曲线数据分帧,每帧数据长度el=st*1000/dt,其中dt为相邻两段平均香农能量的时间间隔,st为香农包络曲线数据的缓存时间,st可以根据实验数据或经验适当调整为最佳值,数据处理的第一窗口滑动长度eoverlay=(st-1)*1000/dt。

对当前缓存的香农包括曲线数据的每一帧数据进行分析,得到一系列的心音包络数据。具体的,设置包络阈值va,按照时间t的顺序依次将每一帧数据中的归一化平均香农能量p(t)与阈值va进行比较,从找到大于阈值va的归一化平均香农能量p(t1)对应的时间点t1起,直到找到下一个小于等于阈值va的归一化平均香农能量p(t2)对应的时间点t2为止,将时间点t1与时间点t2之间的归一化平均香农能量存为一个心音包络对应的心音包络数据,从时间点t2起向后预测vn个点数据,若存在归一化平均香农能量p(vi)>va,则将p(v0)至p(vi)数据纳入心音包络数据并以此时间点vi重新查找下一个归一化平均香农能量p(t)≤va的数据且预测数据不存在点p(vi)>va的点,定义最后一次查找到的归一化平均香农能量p(t)对应的时间t作为时间点t2,即之前查找到的时间点t2作废,然后以最开始的时间点t1与最后一次查找到的时间点t2之间的归一化平均香农能量存为一个心音包络对应的心音包络数据h(n,p(t)),随着时间t处理完一帧数据长度为el的香农包络曲线数据可以得到一系列的心音包络。上述阈值va、vn可以适当调整为最佳值,vn的取值应该符合vn*dt<两次心音(s1、s2)的时间间隔,例如可以取值va=0,vn=10,心音包络数据h(n,p(t))中的n为索引。

从得到的所有心音包络中筛选出有效的心音包络数据。将每一个心音包络的时间点t2与时间点t1的差值乘以相邻两段平均香农能量的时间间隔得到的取值,与预设时间值进行比较,若取值小于等于预设时间值,则该心音包络对应的心音包络数据为有效的心音包络数据,否则,为无效的心音包络数据,也就是说,假如存在(t2-t1)*dt>ht则认为本帧数据异常不参与心音计算,重新读取下一帧数据处理。其中ht可以根据实验数据或经验适当调整,但是应满足ht>两次心音(s1、s2)的持续时长当中的最大值。本实施例中可以取t1-t2=20。

按照时间顺序取相邻两个对应心音(两个s1或者是两个s2)中对应的包络峰值,根据两个包络峰值计算得到瞬时心率。也就是说从心音包络数据h(n,p(t)),取出h(i,p(t))与h(i+2,p(t)),并从h(i,p(t))中找出p(t)最大值所对应的t值为t1,从h(i+2,p(t))找出p(t)最大值所对应的t值为t2,t1、t2即为相邻两个对应心音(两个s1,或者两个s2)的峰值点,然后再根据瞬时心率公式:计算得到瞬时心率,即每分钟的心跳次数。

随着h(i,p(t))与h(i+2,p(t))的i取值的变化,可以得到多个瞬时心率,将多个瞬时心率作均值处理得到平均心率。

本发明通过上述技术方案的优点在于具有较强的抗干扰性,得到数据结果具有准确性、平滑性,本发明利用心音包络连续性探测机制,同时根据心音时效性特征对包络进行计算分析可以去除摩擦音、外部噪音等无效心音信号,并且可以准确找到相邻两次心跳对应的心音的波峰(包络峰值)计算出准确的瞬时心率,同时通过使用滑动窗口机制可以使实时心音信号数据及心音包络无缝对接,大大提高心率准确度。由于本发明在数据处理时使用滑动窗口机制,平滑处理每一帧数据,可以使心率结果平滑稳定。

通过对比分析,采用本发明的心率监测方法,心率的准确率能超过电极式心率带的准确度,噪音干扰的滤除设计,保证心率测试结果准确可靠。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1