基于小波分析的心电信号检测系统的开发★
2018-04-02王树恒于鸿彬侯立国
王树恒, 于鸿彬, 侯立国
(1.天津工业大学 机械工程学院, 天津 300387; 2.北京飞机维修工程有限公司, 北京 100621)
引言
心电信号是反应人体生理健康状况的重要参数,其能够反映心肌受损程度,对心律失常、心肌梗死、心肌缺血等病症检查具有重要的参考价值[1]。很多研究表明,一半以上的猝死患者在死前数周有过心电图失常的症状,但这种症状很少出现,当病人去医院诊断时,异常病症可能已经消失,从而出现误检和漏检现象。在心电信号中QRS波的特征提取对心率检测和心脏疾病的检测提供了重要依据,但是人体心电信号是一种微弱的生物电信号,容易受到噪声的干扰,例如工频干扰、肌电干扰、基线漂移及电极接触噪声等,这些噪声对心电信号的特征提取造成困难。陈嘉绪[1]、王奇武[2]等在LabView开发环境下采用小波滤波方法对心电信号进行了采集处理。卢潭城[3]等通过蓝牙通信技术实现了手机上心电信号的显示。
基于以上背景,本研究开发了一套便携式且易于用户操作的心电信号检测系统。本系统通过WiFi通信技术完成心电信号的采集,并通过VB2012完成心电信号的实时显示,心电数据存储及处理。
1 心电检测系统架构
心电检测系统的总体设计框图如图1所示。
图1 心电检测系统的总体设计框图
采用无纺布Ag/AgCl贴片电极采集心电信号;采用ADI公司的AD8232芯片作为心电信号的调理模块,该模块尺寸小、功耗低,其内部集成了运算放大器、仪表放大器、右腿驱动放大器,而且具有导联脱落电路和快速恢复功能[3-4],AD8232的外围电路如图2所示;将ATmega8A作为检测系统的微处理器,用其自带的10位A/D转换器对心电信号进行采样处理,经过采样处理的心电数据通过WiFi模块实时上传存储至云端服务器中。测量过程中,将贴片电极分别贴于左胸、右胸和左下腹部位,采集频率为400 Hz,数据传输速率为19 200 bit/s,测量的结果在平板电脑上显示。图3为未经软件滤波处理所采集到的原始心电信号。
图2 AD8232外围电路
图3 原始心电信号
由图3可以看出通过硬件采集电路采集到的原始心电信号含有外部干扰,QRS波群存在类似白噪声的干扰,且具有明显的基线漂移,因此ECG信号经过硬件采集和预处理之后,还需进行进一步的软件滤波。本系统采用小波滤波去除信号中基线漂移和其他外部噪声干扰。小波分析在信号滤波、特征提取、图像压缩等方面具有明显优势[2]。
2 小波去噪分析
系统采集到的心电信号干扰包括:由人体肌肉收缩引起的肌电干扰;由呼吸引起的心电基线漂移和幅度变化;测量电极接触和电极晃动噪声;工频干扰以及电子设备引起的噪声[5]。这些噪声都会对心电信号的检测造成影响。
2.1 离散小波变换定义
系统采集的心电信号为数字量,因此要对所采集的数据进行离散小波处理,在L2(R)信号空间中的任意函数 x(t)离散小波变换(DWT)为:
x
(t)经过小波变换后的重构变换公式为:
其中
由于小波基ψ(t)生成的小波ψa,b(t)在小波变换中对被分析的信号起观测窗的作用,所以ψ(t)还应满足一般函数约束条件:
为了实现重构信号在数值上是稳定的,还需要小波ψ(t)的傅里叶变换满足稳定性条件:
2.2 心电信号多尺度小波分析
本系统首先使用Matlab2013对采集的信号进行二次滤波和基线漂移的消除,然后再与VB2012进行混合编程实现最终想要的效果。Matlab集数学计算、可视化编程于一体,应用领域广泛;同样在信号分析处理领域也具有得天独厚的优势。如图4所示为信号小波多尺度分解结构示意图。
心电信号中的有用信号通常比较平稳有规律,而噪声信号通常是随机非平稳的。利用小波树对含噪心电信号分解后,含噪部分主要集中在高频小波系数中,心电信号中的基线漂移集中在低频小波系数中。本系统通过门限阈值法处理小波分解后的低频和高频系数,即对较大的小波系数进行保留或削弱处理,对较小的小波系数进行置零处理。如图5所示为心电信号小波去噪流程图。
图4 小波多尺度分解结构示意图
图5 心电信号小波去噪流程图
系统采用Symlets(SymN)小波系对采集的原始心电信号进行多尺度分析,Symlets小波函数是由Daubechies提出的近似对称小波函数,其是对dbN小波系的一种改进。该小波与dbN小波相比,具有更好的对称性,一定程度上能够减少对信号进行分析和重构时的相位失真。通过对采集的心电信号进行7层小波分解,下页图6为对采集到的心电信号进行小波多尺度分解的系数图。从图6中可以看出基线漂移信号主要存在于低频信号中,肌电干扰等其他干扰主要存在于高频系数中。通过对各层系数进行阈值选取确定,最终得到如下页图7所示的心电信号滤波前后波形图,从图中可以看出,经过滤波处理后的心电信号更加平稳,QRS波特征更加明显。
对采集的原始心电信号完成滤波之后,进行QRS波的提取。QRS检测的方法主要包括:阈值检测法[6]、小波分析法[7-8]、神经网络法[9]等。系统在完成小波滤波后,采用阈值检测的方法进行QRS波的检测,这样既利用了小波分析后的结果,又降低了单纯使用阈值检测法的误检率。具体实现方法如下:
1)确定阈值。从完成滤波后的心电信号fs(n)取3 600个采样点来确定阈值,首先以900n(n=1,2,3,4)对信号分组,找到极大值 max[n](n=1,2,3,4),然后根据R波与T波幅值大致关系(R波幅值大约是T波幅值的6倍)设置阈值如下:
th=(max[1]+max[2]+max[3]+max[4])×3/16
2)阈值比较确定QRS波。将fs(n)0中的各点与设定的阈值进行对比,大于所设置阈值的极值点即为R波的峰值,然后在峰值附近扫描极值点确定Q波的起始点和S波的终点。
如图8所示为采用小波滤波后进行阈值检测得到的QRS波识别图。从图中可以看出,系统能够比较准确地对QRS波进行识别。
图6 心电信号小波多尺度分解系数图
图7 小波滤波前后心电波形
3 心电检测系统的人机交互界面设计
心电检测系统的用户界面使用Visual Basic 2012进行开发,VB2012是微软公司较为流行的VB.NET编程语言,是Visual Studio2012环境支持的几种语言之一。VB.NET是基于.NET框架的完全面向对象的编程语言,其开发界面友好,能够可视化地开发网络应用程序、Windows应用程序和服务器端组件,但其矩阵运算、数学运算等方面的能力很弱。Matlab具有强大的数学运算功能,具有良好的扩展能力和可移植性,但其界面开发能力较弱[10]。相对于Labview,VB.NET开发的界面更美观一些,能给用户带来良好的使用体验。
图8 QRS波识别图
3.1 混合编程实现心电信号滤波
Matlab提供了多种程序语言接口,通过微软的组件对象模型(Component Object Model,COM)可以完成与VB.NET编程环境的链接,这样就能在VB.NET开发环境中利用Matlab程序进行心电信号的滤波处理,图9为采用混合编程得到滤波后的心电波形图。
图9 采用混合编程得到的滤波后的心电波形
3.2 心率值的计算
人体的心率值可以从心电数据中获得,为了提高VB2012程序的运行速率,心率的计算使用.NET语言完成。下页图10为本系统的心电数据的部分采样点,从图10中可以看出QRS波之间的采样点数密集,且没有确定的表达式。本系统采用一种快速准确的计算方法具体步骤如下:
1)对心电数据每隔10 s进行一次截取,然后再数据的前端和后端进行适当的信号延拓。
2)计算经延拓后的数据的极大值ui(i=1,2,3,…,n)。
3)在所有极大值点ui点中寻找满足以下条件的极值点uj(j=1,2,3,…,m;m<n)为
图10 部分心电数据采样点
其中ut=0.6 mV,此值小于R波与T波的峰值差。满足以上条件的极值点个数jmax即为R波的峰值点。
4)得到R波峰值点的个数之后,通过公式
可计算人体的心率值。其中tj为首、末峰值点的时间间隔。
步骤(1)保证了R波峰值点不被遗漏,步骤(4)保证了所测心率值的准确性。
本系统通过以上方法对心率值进行计算,每隔10 s刷新一次,并存储。系统与欧姆龙HEM-7132电子血压计所测心率值进行测试对比,在测量过程中本系统与电子血压计同时启动测量。通过对比计算得到如表1所示的相对误差,从表中数据可知,本系统所检测的心率值在误差允许范围内,结果可靠、稳定。
表1 心率检测结果对比相对误差
在进行心电检测时,用户界面可以显示生动的心电波形。同时用户也可以通过输入自己的姓名、性别、年龄等基本信息将所测得的数据保存到远程服务器的数据库中,以形成用户的历史健康信息。本系统用户使用的操作界面如图11所示。
图11 用户心电检测界面
4 结语
本文所开发的便携心电采集系统通过一键完成心电信号的检测,能够高效地实现上、下位机的通信,采集的心电信号稳定、准确。利用Matlab进行软件滤波,进一步解决了AD8232外围电路滤波性能不理想的问题。此外,本系统可以判断人体的心率是否正常,绘制心率趋势图;能够进行QRS波的识别与心电数据远程存储,形成健康数据电子档案,作为医护人员的参考依据,有助于对用户可能存在的潜在病情进行预测。通过使用WiFi通信技术,使得所开发的系统既适合个人在家庭WiFi网络环境下直接对心电信号进行检测,也适合WiFi网络覆盖的社区使用。
[1]陈嘉绪,周颖.基于AD8232的心电实时监测及分析系统设计[J].计算机测量与控制,2017(2):26-31.
[2]王奇武.便携式脉搏与心电监护系统的设计与信号处理方法的研究[D].武汉:武汉科技大学,2015.
[3]卢潭城,刘鹏,高翔,等.基于AD8232芯片的便携式心电监护仪设计[J].实验技术与管理,2015(3):113-117.
[4]陈妮,黄代政,张国栋.人体生理参数测量系统低功耗设计与实现[J].传感器与微系统,2017(3):80-83.
[5]刘满晋.抗运动干扰的便携式心电监测仪的研究[D].北京:北京理工大学,2015.
[6]Pan J,Tompkins W J.A real-time QRS detection algorithm[J].Biomedical Engineering,IEEE Transactions on,1985(3):230-236.
[7]Sasikala P,Wahidabanu R SD.Robust R peak and QRSdetection in electrocardiogramusingwavelet transform[J].International Journal of Advanced Computer Science and Applications-IJACSA,2010(6):48-53.
[8]Narayana K V L,Rao A B.Wavelet based QRS detection in ECG using MATLAB[J].Innovative Systems Design and Engineering,2011(7):60-69.
[9]AbibullaevB,SeoH D.A newQRS detection method usingwavelets and artificial neural networks[J].Journal of medical systems,2011,35(4):683-691.
[10]刘绍清.基于COM技术的Matlab和VB.Net混合编程[J].软件导刊,2012(5):11-12.