基于双阈值的心音快速分段算法及其应用研究
2018-05-28成谢锋姚鹏飞
成谢锋,姚鹏飞
(南京邮电大学 电子科学与工程学院,江苏 南京 210003)
1 概 述
心音信号是人体最重要的生理信号之一,它含有心脏各个部分如心房、心室、大血管、心血管及各个瓣膜功能状态的大量生理信息,具备普遍性、独特性和可采集性的生物特征,有助于分析多种心脏疾病和人体的精神压力状况。一般情况下,一个正常的心音信号可以分为第一心音S1、收缩期、第二心音S2和舒张期这四个部分[1-2],它们组成了心音信号一个完整的心动周期。心脏的收缩期是指从第一心音S1起点持续到第二心音S2起点的间隔,而舒张期则是指从第二心音S2起点持续到与下一个心动周期的第一心音S1起点的间隔。在一段心音信号中,收缩期和舒张期是重复出现的,并且大多数人的心脏舒张期比收缩期要长一些。此外,在少数情况下还有可能听见第三心音S3和第四心音S4,它们通常出现在小孩或者老年人身上[3-4]。
心音分段算法是心音研究的基础和前提,其目的是定位心音的主要成分(第一心音S1、收缩期、第二心音S2和舒张期这四个部分),为心音分析提供定位基础。近年来,研究人员已经提出了多种心音信号的分段算法。Zhou等[5]提出了一种利用香农能量进行心音分段的算法,该算法可以得到光滑的信号包络,但是对心音信号的定位并不是很准确。Quan等[6]和Liang等[7]提出了一种利用小波变换和小波分解重构的算法,该算法在计算正常心音时非常准确,但是对非正常心音的分段准确率并不是很高。Guo等[8]提出了一种基于数学形态的检测心音的算法,该算法的最大缺点在于难以找到合适的结构元素。Zhao等[9]提出了一种基于短时黄变换的心音分段算法,该算法的分段精度较高,但由于计算量很大导致分析时间很长。
Zhou等提出的算法较为简单,优点是可以取得较为光滑的信号包络,但是在心音的特征提取和分段的效果上比较差,目前该算法已经很少使用。其主要原理是对心音信号进行小波分解后,利用归一化平均香农能对心音取包络,再识别出心音信号的S1和S2。该算法经过心音样本测试后,计算结果的准确度只达到了78%,实际使用效果很差。
Quan等和Liang等提出的算法是一种以香农能量算法为基础的心音分段算法。该算法分为5步:第一步使用小波变换分解并重构心音信号;第二步计算归一化的香农能量;第三步标记超过阈值的波峰;第四步识别出心音信号的第一心音S1和第二心音S2;第五步确定心音的收缩期和舒张期的时间。该算法使用了1 165个心音进行测试,结果表明该算法在计算正常心音时准确度达到了97%,但在计算非正常心音时准确度不足86%。
Guo等提出的算法的准确度非常高,但是非常依赖于找到合适的结构元素。其原理是首先确定心音信号的特征,利用形态学滤波对心音信号进行滤波和整合,再用形态元素取心音信号的包络,最后对心音信号进行识别。该算法使用了50例心音样本,计算正常心音的准确度达到了96%,非正常心音的准确度达到了92%,都达到了较高水平。但是该算法依赖于形态元素的选取,实际使用价值不是很高。
Zhao等提出的算法是目前较为先进的一种心音处理算法。短时黄变换是一种时频分析技术,相比于传统的时域变换,短时黄变换能够获取更为精准的瞬态和更高的频率分辨率。短时黄变换主要基于2个过程:EMD经验模态分解和希尔伯特变换。短时黄变换的中心是EMD经验模态分解,该模式由算法的过程定义,利用三次样条函数拟合原序列,再通过希尔伯特变换求出心音的包络,最后识别出心音信号的各个部分。该算法在识别正常心音的准确度达到了97%,识别病理心音和带有杂音的心音信号的准确度达到了89%。但由于计算过程较为复杂,导致计算量很大,分析时间较长。
文中改进了已有的心音分段算法,使用两次阈值函数的自适应选择,能够快速地对心音信号进行分段,准确地识别出心音的第一心音S1、收缩期、第二心音S2和舒张期这四个部分,并且计算出每个部分的时间。通过对比60组心音样本,结果表明该算法对正常心音的分段精度达到了96%,对非正常心音的处理精度超过了92%,是一种非常实用的心音分段算法。
2 方法原理
2.1 信号预处理
心音信号是非常微弱的声音信号,在采集过程中易受到外界声音和电子信号的干扰[10]。因此需要对信号进行预处理。预处理的步骤如下:
第一步:由于心音信号的频率在20~1 000 Hz的范围内,先将信号通过一个切比雪夫Ⅰ型低通滤波器,滤除信号中不需要的高频成分。
第二步:利用小波阈值去噪方法消除与心音信号频谱重叠的背景噪声[11-12]。其原理是按照一定的阈值压缩信号的小波变换系数,然后用被压缩后的系数重构信号以达到消噪的目的。传统的小波去噪方法通常采用固定的阈值处理小波系数,有时会改变心音信号中的弱特征成分,引起重构心音信号的失真[13-14]。自适应阈值的改进之处是根据不同心音信号的特点自适应选择不同的阈值。设采集到的一段心音信号为y(t),如图1(a)所示。该段心音信号总长度为N,标准方差为σ,其估计阈值T定义为:
(1)
那么,心音信号y(t)经过小波变换后的小波系数可按下面的最优阈值重新调整:
(2)
经过小波阈值去噪后的心音信号y(t)如图1(b)所示。
图1 消噪前后的心音信号波形图
第三步:对消噪后的心音信号求包络。文中使用希尔伯特变换H(y(t))来获取心音信号的包络。心音信号y(t)经希尔伯特变换后有:
(3)
其中,Y(x)就是心音信号y(t)的包络。提取出的心音包络如图2(a)所示。
再将心音信号的包络用式4进行归一化:
(4)
归一化后的心音信号的包络Yn(x)如图2(b)所示。
图2 心音信号的包络
2.2 心音信号的分段
首先将经过预处理后的心音信号包络通过式5变换为方波S(x)。
(5)
其中,T'是第二次自适应选择的阈值函数。
(6)
这是一种改进的标准偏差计算公式,其中X是归一化后的心音信号Yn(x)的平均值。
将心音信号Yn(x)变换为方波后的波形如图3所示。
图3 心音信号变换为方波后的波形
然后去除不合格的心音段。由于心音的S1信号间隔的范围在70~150 ms之间,S2信号间隔在60~120 ms之间,S1和S2连续间隔一般为100 ms。因此根据信号的采样频率3 000 Hz,可以将不合格的脉冲作为噪声去除掉。
最后定位心音的S1信号和S2信号。定位S1信号和S2信号的依据是心脏收缩期的时间总是小于心脏舒张期的时间,并且每两个S2脉冲之间必有一个S1脉冲,每两个S1脉冲之间必有一个S2脉冲。通过选择任意三个信号脉冲,就可以定位到S1和S2。因此,寻找心音段的最大间隔,则该间隔的起点为S2,终点为S1;S1与S2之间为收缩期,S2至下一S1为舒张期。至此,心音分段成功完成,分段结果如图4所示。
图4 心音信号的分段结果
3 评估心音分段算法的性能
3.1 性能评估
文中使用课题组设计的穿戴式无线心音采集器获取心音信号的样本。该采集器集合了电子听诊器、无线传输以及可穿戴的特点,可以方便对心音信号进行长时间有效采集。选取了60位测试者的心音样本作为心音数据库,其中包含了正常心音和非正常心音。非正常心音信号主要来自于病理心音,包括二尖瓣狭窄、二尖瓣关闭不全、高血压、主动脉瓣狭窄等情况。
为了更好地评估算法,利用4个参数作为评估指标[15]:PS是算法处理速度;TP12是定位正确的第一心音S1和第二心音S2的百分比;FP12是定位错误的第一心音S1和第二心音S2的百分比;MP12是没有定位出的第一心音S1和第二心音S2的百分比。具体计算公式如下:
(7)
选取心音数据库的10组心音样本,每段心音的长度为180 s,包括5个正常心音和5个病理心音。自适应阈值心音分段算法的评估结果如表1所示。
3.2 与其他心音分段算法的比较
将提出的算法与引言中介绍的几种心音分段算法进行对比。选取心音数据库的10组心音样本,每段心音的长度为180 s,包括5个正常心音和5个病理心音。使用3.1小节提出的4种参数作为评估指标。5种算法对正常心音的评估结果如表2所示。
表1 自适应阈值的心音分段算法性能评估
表2 正常心音的评估结果
4 算法应用研究
文中算法的特点是能够快速、准确地对心音进行分段。在此基础上,创造性地引用了心率变异性原理。把心音分段和心率变异性原理结合起来,设计、实现了一种基于心音HRV理论的精神压力分析系统。心率变异性(HRV)是指逐次心搏间期的微小差异,它产生于自主神经系统对心脏窦房结的调制,使心搏间期一般存在几十毫米的差异和波动。通过观察HRV,能够评价人体的自主神经系统。因此,心率变异性被作为反映人体精神压力最理想的指标。经过科学实验和反复论证,心率变异性已经成为目前测定人体精神压力最客观、准确和直接的方法。
当前已经出现的精神压力分析仪大多采用动脉血压法和心电图法获取心率变异性。然而动脉血压法测量心率的时候通常和测血压一起使用,优点是可以获取额外的血压信息,缺点是测量用的仪器体积大且需要气泵。心电图法获取心率的结果非常精确,但是心电测量仪器非常专业,造价昂贵且需要专业的操作知识。采用上述两种心率测量方法的精神压力分析仪不仅造价昂贵而且不易操作,不适合在日常生活中使用。文中将心音分段和心率变异性原理相结合设计的这款精神压力分析系统,只需要简单的心音采集器和使用场景,其特点是方便易用、成本低廉、结果准确并且其分析结果简单易懂,非常适合在日常生活中使用。
基于心音HRV理论的精神压力分析系统分为3个模块:心音采集、心音分析和精神压力分析。系统的整体框架如图5所示。
图5 精神压力分析系统整体框架
其中心音采集模块采用了课题组设计改良的一款肩带式无线心音采集器。该采集器集合了电子听诊器、无线传输以及可穿戴的特点,可以方便对心音信号进行长时间有效采集。采集到的心音信号通过采集模块的无线传输装置传输至心音分析模块,由心音分析模块进行进一步的处理。心音分析模块的核心是文中提出的自适应阈值心音分段算法。能够快速地对心音信号进行分段,准确识别出心音信号的第一心音S1、收缩期、第二心音S2和舒张期这四个部分,并且计算出每个部分的时间,获取到人体的心动周期时间序列。精神压力分析模块根据心音分析模块所得到的心动周期序列,通过对心率变异性进行时域分析、频域分析以及庞加莱分析法,获取十二项特征指标,并对其中8个主要特征指标进行图形化表示。再根据心率变异性的指标分析出人体的精神压力状况,从人体的压力指数、疲劳指数、抗压能力、自主神经系统的活性以及自主神经系统的稳定性这5个方面对人体的精神压力状况进行评估,得出最终的分析报告。
5 结束语
在已有心音分段算法的基础上,提出了一种自适应阈值的心音分段算法,使用了两次阈值函数的自适应选择,能够快速、准确地识别出心音的第一心音S1、收缩期、第二心音S2和舒张期这四个部分。实验结果表明,该算法性能优良,无论是正常心音还是各种病理心音,都达到了较高的分段正确率,是一种非常实用的心音分段算法。并在此基础上,引用了心率变异性原理,设计、实现了一款基于心音HRV理论的精神压力分析系统。
参考文献:
[1] 周 静,杨永明,何 为.心音信号的分析及其特征提取方法的研究[J].中国生物医学工程学报,2005,24(6):685-689.
[2] 成谢锋,马 勇,刘 陈,等.心音身份识别技术的研究[J].中国科学:信息科学,2012,42(2):237-251.
[3] 赵治栋,赵知劲,张 嵩,等.心音自动分段算法研究[J].航天医学与医学工程,2004,17(6):452-456.
[4] 屠志海.心音信号的分析方法研究[D].上海:华东师范大学,2011.
[5] ZHOU J,HE W,DAN C,et al.Feature extraction and recognition of heart sound[C]//Automation congress.[s.l.]:[s.n.],2008.
[6] 全海燕,王威廉.基于小波多分辨分析的第一第二心音提取[J].北京生物医学工程,2004,23(1):64-66.
[7] LIANG H,SAKARI L,IIRO H.A heart sound segmentation algorithm using wavelet decomposition and reconstruction[C]//Proceedings of the international conference of engineering in medicine and biology society.[s.l.]:[s.n.],1997:1630-1633.
[8] GUO X, CHEN J, XIAO S. Heart sound recognition algorithm based on mathematical morphology[J].Journal of Biomedical Engineering,2004,21(5):832-835.
[9] ZHAO Z,ZHAO Z,CHEN Y.Time-frequency analysis of heart sound based on HHT[Hilbert-Huang transform][C]//International conference on communications,circuits and systems.[s.l.]:[s.n.],2005:929.
[10] 谭江平,何 为,张占龙.心音信号采集与分析系统[J].重庆工商大学学报:自然科学版,2004,21(5):465-467.
[11] 欧阳春娟,杨群生,欧阳迎春.基于小波变换的自适应模糊阈值去噪算法[J].计算机工程与应用,2006,42(5):82-84.
[12] 魏文畅,杨俊杰,蔡建立.基于小波变换的半软阈值参数算法研究[J].计算机工程与应用,2009,45(1):73-76.
[13] 刘 刚,屈梁生.自适应阈值选择和小波消噪方法研究[J].信号处理,2002,18(6):509-512.
[14] 刘 智.改进的正交小波变换阈值去噪算法研究[J].计算机仿真,2011,28(8):272-275.
[15] VARGHEES V N,RAMACHANDRAN K I.A novel heart sound activity detection framework for automated heart sound analysis[J].Biomedical Signal Processing and Control,2014,13:174-188.