适用于Android系统的心音定位分段方法
技术领域
本发明属于心音信号处理及传输的技术领域,涉及一种应用于Android系统的心音定位分段方法。
背景技术
作为人体内部最重要的生理信号之一,心音信号能够反映心脏以及心血管系统的运动状况,蕴含了心脏各部分生理状态的信息。国内外许多文献已经证明,心音可以用于生物识别领域,也可以用于心脏运动情况的分析,这使得心音信号处理变得日益重要。由于心音具有准周期性,以心动周期为单位对心音信号进行分析往往是心音处理的前提和关键所在。
作为心音分析的基础,心音分段可以将一个完整周期的心音划分为第一心音(S1)、第二心音(S2)、收缩期和舒张期,利用分段后的心音可以提取特征参数用于身份识别,还可以用于心脏运动情况的分析等。然而,S1和S2的定位检测识别是心音分段过程中最主要和最困难的问题,因此,需要开发一种低成本,实时有效的心音分段应用,这一需求也将推动心音在病理和生理方面的应用研究。
国内外研究中进行心音分段的方法主要分为两类,一类是借助于心电等参考信号的分段方法,另一类则是独立分段方法。借助于其他参考信号的分段方法,主要是根据这些信号和心音信号在时域波形上的位置对应关系进行分段。这类分段方法无疑会增加硬件设备,使得信号采集更为复杂,因此不借助任何参考信号的独立分段方法越来越得到关注。例如,在2006年,葡萄牙学者对心音进行快速小波变换,并利用香农能量提取近似分量的包络用于心音分段。在2011年,国内学者利用经验模式分解,将心音分解为第一阶和第二阶的本征模函数,并对第二阶本征模函数进行希尔伯特变换提取包络,从而完成心音的分段。在2011年,阿尔及利亚学者利用统计复杂度方法来检测心音的边界,并利用Rényi边界熵确定阈值以检测S1和S2分量。这些方法都取得了良好的心音分段的效果,并开阔了心音分段的研究思路,但是它们都要借助于运算能力强大、结构复杂的计算机来进行心音分段,系统的实时性和便携性较差。
发明内容
针对现有心音分段实时性和便携性等方面的不足,本发明目的在于提供一种实时性强、便携有效的心音信号分段方法。具体的实现步骤为:
a)心音信号通过下位机采集,信号经过滤波电路处理,并进行A/D转换,最终将心音通过蓝牙传输到上位机进行处理。
b)对心音信号进行预处理,主要是包括心音的去均值归一化和重采样等。
c)确定高阶香农熵的阶数,并利用高阶香农熵提取心音包络。
d)利用步骤c),设置滑动窗口,确定心音包络的上下阈值,利用上阈值抑制杂音和干扰对分段的影响,利用下阈值进行心音分界点的检测,并对分界点进行初步定位。
e)对初步定位后的分界点进行校正,根据心音的医学生理信息排除干扰的影响,对可能存在的心音分裂进行判断,如果确定为心音分了,则进行心音合并。
f)利用步骤d)和e),对校正后的分界点进行识别,正确判断S1和S2的分界点,即可得到分段后的心音。
本发明的另一个目的是提供一种新型的适用于Android操作系统的心音分段应用,为基于心音信号的研究领域提供一种高便携性的心音分析设备。具体的实现如下:
本应用主要由下位机和上位机两部分组成。下位机的作用是收集心音信号,将心音信号由模拟信号转换为数字信号,并通过蓝牙传输至上位机。上位机为Android智能手机,完成心音信号的数据接收以及心音分段和显示功能。
下位机模块的主要组成包括动圈式传声器、音频放大电路、滤波器电路、DSPIC主控制电路、A/D转换电路、蓝牙传输电路、电源供应电路。
所述动圈式传声器的主要作用是作为心音传感器。其主要原理是电磁感应,在声音信号通过传声器的金属薄膜时,造成其震动,随之而来的是其内部的线圈震动。由于磁场的作用,线圈震动最终会导致电流的产生。
所述音频放大电路的作用主要是将动圈式传声器采集到的心音信号进行放大。主要构成原件是NE5532,电路由两级放大电路构成,其中一级放大电路为电压串联的负反馈电路,该电路具备的主要特点是输入的阻抗极高。第二级的放大电路采用负反馈电路,并且电压并联。其优点是抗共模干扰能力强,并且其输出的阻抗也较小。
所述滤波器电路的主要作用是对采集到的心音信号进行滤波。心音的有效频率范围在30HZ与500Hz之间,如何有效的滤除心音之外的噪声是心音采集系统设计的要点。在音频放大电路中得到的心音信号中包含大量工频干扰,另外,还包含有许多直流和低频电流分量。本发明讨论的滤波电路采用一个30Hz二阶巴特沃斯高通滤波器针对上述工频干扰以及直流、低频分量进行滤波。采用一个巴特沃斯二阶低通滤波器来滤除心音信号中频率成分高于500Hz的噪音。
所述DSPIC控制电路的主要作用是完成电源管理、按键控制等功能。结合按键电路可以完成对于该心音采集系统的休眠、唤醒等功能。
所述A/D转换电路的主要作用是完成心音信号由模拟信号向数字信号的转变。采样频率为2000Hz,本发明采用的A/D转换元件为ADS7806,采样精度能够达到12位,由于该器件具备串行与并行接口,方便主芯片对其进行控制。
所述蓝牙传输电路的主要作用是将A/D转换后得到的数字心音信号通过蓝牙传输技术发送至上位机Android智能手机。本文采用的蓝牙传输模组为RG-BLE-12。
所述电源供应电路的主要作用是为提供3.3V的稳压电源。本发明选用SPX1117稳压芯片提供3.3V稳压电源。
所述上位机Android智能手机心音定位分段应用软件由四大功能模块组成,分别为蓝牙下位机连接模块、用户基本信息注册登记模块、心音分段模块、系统管理操作模块。具体的主要功能为蓝牙配对连接、心音数据接收存储、心音波形SurfaceView呈现、SQLite用户基本信息注册管理、心音分段算法实现。
所述蓝牙下位机连接模块主要完成上位机安卓手机和下位机RG-BLE-12蓝牙模块的匹配连接。上位机通过蓝牙搜索,查询安卓手机周围的蓝牙设备,当通过搜索得到RG-BLE-12蓝牙模块时,用户点击ListView中RG-BLE-12蓝牙模块对应的条目,完成上位机同RG-BLE-12蓝牙模块的蓝牙配对。软件界面中显示相应的连接完成提示界面。
所述用户基本信息注册登记模块的主要功能是完成用户的相关信息注册并采集心音数据完成数据存储。SQLite数据库作为一种小型实用数据库,在本发明中主要完成心音用户基本信息的保存功能。相关数据方便后续的系统管理操作模块查询、管理等操作。Activity界面显示相应的波形界面,当完成上位机与RG-BLE-12蓝牙模块的连接匹配后,软件才能够进行数据采集操作,采集后的数据存储至手机的SD卡中对应的文件中。
所述心音分段模块的主要功能是根据上述心音分段算法的步骤,判别第一心音和第二心音,并最终得到分段后的心音。首先利用高阶香农熵提取心音包络,然后通过计算得到包络上下阈值,初步定位S1、S2分界点,在完成分界点校正后正确判断S1和S2的分界点,从而完成心音的分段功能。
所述系统管理操作模块的主要功能是针对系统中注册的用户信息及生理指标进行查询、删除等功能。通过查询SQLite数据库,得到相应的数据并显示于手机屏幕上。其中管理员登陆功能需要采用AES加密算法管理登陆密码,当管理员通过密码验证后方能登陆管理员后台系统。
相对于现有的相关技术,本发明具备以下几个有益效果:
1)本发明方法以提取高阶香农熵心音包络为基础,结合心音时域波形特性,通过设置合理上下阈值找寻第一心音和第二心音的分界点,并利用心音的医学生理知识进行第一心音和第二心音的校正与识别。该方法使得心音包络的计算和提取过程都得以简化,并且对噪声和心杂音都有很好的鲁棒性,分段的准确率较高。
2)由于本发明方法中心音包络提取和心音各分量检测过程都得以简化,以此为设计思路,将算法移植到智能手机(如装有Android操作系统的智能手机)中,设计了适用于Android操作系统的心音分段应用,提高了实用性和便携性。
3)提供了一种便携式的心音采集设备,能够完成心音信号的简单提取。通过分段算法计算出S1和S2的分界点,利用分界点即可方便地得到分段后的心音,为基于Android系统的心音信号的后续分析奠定了基础。
附图说明
图1系统硬件结构框图;
图2音频放大电路的电路原理图;
图3二阶高通滤波电路的电路原理图;
图4二阶低通滤波电路的电路原理图;
图5稳压电路主要构成;
图6Android上位机主要功能模块;
图7蓝牙连接流程图;
图8用户基本信息注册登记模块流程图;
图9系统管理操作模块流程图;
图10心音分段过程;
图11心音包络上下阈值的确定过程。
具体实施方式
下面结合具体实施方式和附图对本发明进行详细描述。
如附图1所示,为系统硬件结构框图。下位机模块的主要组成包括动圈式传声器、音频放大电路、滤波器电路、DSPIC主控制电路、A/D转换电路、蓝牙传输电路、电源供应电路。
动圈式传声器完成心音信号的采集。采集后的心音信号经过音频放大电路,完成心音信号放大处理。如附图2所示,为音频放大电路的电路原理图,其主要构成原件是NE5532。NE5532作为一类低噪声的双运放高性能集成电路,其具备较好的噪声性能。本发明设计的音频放大电路,采用两级的放大电路组成,第一级为电压串联的负反馈电路,第二级为电压并联的负反馈电路。附图2电路中的电容C5和C6完成高频滤波的作用。由于低频自激振荡的存在,需要电容C3和C4这对去耦电容。其中第一级的放大电路能够达到的电压的放大倍数大约为:1+R3/R2=5.7。而第二级的放大电路,其电压放大的倍数大约为:-R5/R4=-20。该音频放大电路所具有的下限频率通过电阻R1以及电容C1共同确定。
如附图3所示,为二阶高通滤波电路的电路原理图。心音信号的有效频率范围为30HZ到500Hz,为了能够滤除心音信号之外的噪声信号分量。本发明采用的是一个30Hz二阶巴特沃斯高通滤波器与一个500Hz巴特沃斯二阶低通滤波器来完成信号的滤波操作。该高通滤波器的主要组成部件为TL084。
如附图4所示,为二阶低通滤波电路的电路原理图,用于滤除心音信号中频率成分高于500Hz的噪音。
由动圈式传声器采集的心音信号,经过音频放大电路放大信号后,经过滤波电路滤除噪声分量,通过A/D转换电路将模拟信号转换为数字信号。A/D转换电路的主要组成部件为ADS7806,采样精度能够达到12位,采用频率为2000Hz。所述DSPIC控制电路的主要作用是完成电源管理、按键控制等功能。结合按键电路可以完成对于该心音采集系统的休眠、唤醒等功能。蓝牙传输电路采用的蓝牙传输模组为RG-BLE-12。经过A/D转换后的心音信号通过RG-BLE-12模块传送至安卓上位机。
如附图5所示,为稳压电路主要构成。本发明采用锂电池供电,为了能够为电路提供3.3V稳压。本发明设计了如下的3.3V稳压电路。其主要构成元件为SPX1117,SPX1117为一类高效的低功率电压调节器。可以提供多种电压选择,本发明采用的是3.3V的稳压电源设计。
如附图6所示,为Android上位机主要功能模块。分别为蓝牙下位机连接模块、用户基本信息注册登记模块、心音分段模块、系统管理操作模块。
如附图7所示,为蓝牙连接流程图。蓝牙下位机连接模块的主要功能为蓝牙配对和蓝牙连接。上位机Android软件如果需要从下位机中获得采集到的心音数据,首先要完成和RG-BLE-12蓝牙模块的匹配连接。首先,点击Button控件打开蓝牙。为了能够搜索到附近的蓝牙设备,首先在软件中需要注册两个广播接受者。当搜索到蓝牙设备时,软件通过ListView将搜索得到的蓝牙设备名称和MAC地址显示于Activity界面之中。当点击某个ListView条目后,软件将获得该蓝牙设备对应的MAC地址。然后需要对UUID进行注册,进而BluetoothDevice对象就可以由BluetoothAdapter的getRemoteDevic()方法得到。通过BluetoothDevice对象获得BluetoothSocket对象。最终使用connect()方法完成上位机安卓手机和下位机蓝牙模块的连接。
如图8所示,为用户基本信息注册登记模块流程图。在该模块中,将完成心音数据的采集,并完成存储。在进行心音数据采集之前,首先要确认是否已经完成与RG-BLE-12蓝牙模块的匹配连接。在全局变量中,首先定义一个全局的BluetoothSocket对象my_BluetoothSocket。判断其是否为null,若为null,则首先需要在蓝牙下位机连接功能模块中完成上位机和RG-BLE-12模块的连接。若my_BluetoothSocket不为null,则可以进行心音信号的采集。为了方便进行心音数据的管理,本发明使用SQLite数据库管理用户信息。因此,用户在采集心音信号之前,需要将姓名、年龄、性别等基本信息进行注册。完成录入之后,通过my_BluetoothSocket的getInputStream()方法获得输入流对象,通过getOutputStream()获得输出流对象。进而通过蓝牙传输可以完成上位机和RG-BLE-12模块的通信。心音在采集的过程中波形采用SurfaceView展示。随着采集的进行,A/D数据源源不断地保存至上位机的SD卡中,数据的存储格式为文本文档格式。该注册心音的数据存储路径也作为一个字段存储至SQLite数据库中,方便后续的系统管理操作模块进行管理操作。
在心音分段模块,主要完成的是心音分段以及分段医学指标的显示。首先利用高阶香农熵提取心音包络,然后通过计算得到包络上下阈值,初步定位S1、S2分界点,在完成分界点校正后正确判断S1和S2的分界点,完成心音分段。最终通过SurfaceView控件演示一段心音的分段效果。
如附图9所示,为系统管理操作模块流程图。在系统管理操作模块,管理员在登陆后台的过程中需要输入用户名及密码。用户名和密码通过Shared Preferences存储,密码通过AES加密算法加密。在进入后台管理界面后,能够查看目前已完成注册的用户。列表ListView将展示目前已经注册的心音用户。本发明由于使用的是SQLite数据库管理注册用户,所以这里首先需要查询SQLite数据库,得到全部注册用户的详细信息。通过对于SQLite数据库的操作,可以实现注册用户信息删除、修改等操作。此外,由于注册心音的数据存储路径也作为一个字段存储至SQLite数据库中,因此查询SQLite数据库可以得到存储的注册心音信号,可以在系统管理操作模块实现心音存储数据的管理。
心音分段算法的具体实现过程如下:
如附图10所示,为心音分段过程。心音具备准周期性,心音的每一个心动周期包括:第一心音(S1)、第二心音(S2)、收缩期和舒张期。心音分段就是将心音按照心动周期进行定位以及第一心音与第二心音的识别,以此得到一个完整的心动周期。通过提取心音信号的高阶香农熵包络,根据心音包络设置滑动窗口,进行上下阈值的计算,并根据上下阈值检测S1和S2的分界点,进而校正与识别S1和S2。本发明中高阶香农熵心音包络的提取过程的具体步骤如下:
(1)利用上述方法对心音信号进行去噪、去均值和归一化处理;
(2)提取心音的高阶香农熵包络,假设N点的心音信号为s(n),n=1,2,ΚN,将心音信号分为短时帧,短时帧的个数为K,L表示帧长,M表示帧移,Sk=(k-1)×(L-M)为第k帧心音的起始点,那么心音信号第k帧的m阶香农熵Emse(k)的计算公式如下:
可以得到时间n和帧数k的关系如下:
n=[(k-1)(L-M)+L/2]fs
其中,fs为采样频率。
(3)假设{Emse(k)}为每一个短时帧的m阶香农熵集合,根据所述时间n和帧数k的关系,将{Emse(k)}映射到时间域{Emse(n)},{Emse(n)}就是心音的m阶香农熵包络。
如附图11所示,为心音包络上下阈值的确定过程。根据提取的心音包络,确定上下阈值,完成心音信号中第一心音和第二心音的分界点的检测。其中,上阈值用于抑制杂音和干扰对分段的影响,下阈值用于心音分界点的检测。本发明中心音包络上下阈值以及S1、S2的分界点确定过程具体步骤如下:
(1)设定一个长度固定的滑动窗,利用滑动窗进行平移操作,并找出每个窗中的最大值,依次存入到数组Max;
(2)求得数组Max的平均值Ma,将数组Max中小于Ma/3的数值置零;利用Max中剩余的数据再求得平均值Mb。令高阈值UT=min(Max),低阈值LT=α*Mb,一般α=0.01;
(3)以UT为临界值,找出心音包络中第一个大于等于该值的点,记作点A0,分别沿着A0点位置向前和向后搜索,并分别找出向前搜索和向后搜索时第一个小于等于LT的数据点,记作点Bf0和Bb0。依次提取心音包络中Ai点位置,并沿着Ai点向前搜索和向后搜索找出Bfi和Bbi点,Bfi和Bbi就是S1和S2的初步分界点。
本发明对初步检测出的心音分界点进行判断,将不合理的心音分界点,即有可能误判的点进行校正,并对校正后的分界点进行识别,正确判断S1和S2的分界点。根据心音的医学生理信息排除干扰的影响,对心音分裂进行判断,将确定为分裂的心音分界点进行合并,即可得到校正后的分界点。心音的每一个心动周期可以分为收缩期和舒张期,一般情况下,舒张期的持续时间都会大于收缩期的持续时间,本发明方法正是利用该性质进行第一心音和第二心音的识别。
以上结合附图对本发明的具体实施方式作了说明,但这些说明不能被理解为限制了本发明的范围,本发明的保护范围由随附的权利要求书限定,任何在本发明权利要求基础上的改动都是本发明的保护范围。