基于Labview和Matlab的心电信号分析系统设计:动态心电分析系统
摘要:介绍了一种采用Labview和Matlab相结合设计心电信号分析仪的方法:利用Labview灵活的图形化编程工具设计前面板,利用Labview平台上Matlab调用节点调用小波变换等算法。应用该方法所设计的系统具备读取并显示心电信号文件、小波变换的滤波功能和测试ECG信号参数等功能,效果良好;系统实现简单,可扩展性强。
关键词:Labview;Matlab;心电信号;小波变换
0 引言
心电检测能为心脏疾病的正确分析诊断、治疗和监护提供客观依据,具有十分重要的社会价值和经济价值。Labview是一种业界领先的工业标准图形化编程工具,是图形化编程语言,主要用于开发测试、测量与控制系统。同时,Labview实现了对FPGA等硬件的支持,实际上也是一个硬件设计工具。Matlab是当今很流行的科学计算软件,集成了大量科学计算程序,几乎对所有的工程计算领域都提供了准确、高效的工具箱,它已经成为应用学科中的计算机辅助分析、设计、仿真等不可缺少的基础软件。本论文结合LabView和Matlab的优势,开发了―个心电信号分析系统。
整个系统主要分为五个部分,如图1所示。
1 ECG信号的读取
本系统ECG信号来自两种信源,第一,存储于计算机的数据文件;第二,系统实时采集的ECG信号。本文以读取存储的数据文件为例加以说明。目前国际上公认的可作为标准的心电数据库有三个,分别是美国麻省理工学院提供的MIT-BIH数据库、美国心脏学会AHA数据库及欧洲ST-T数据库。由于MIT-BIH数据库中病例丰富、典型、注释详细,很快就得到了世界的承认。MIT-BIH数据库中的数据是录制在磁带上的模拟信号经模数转换后的数字信号,在存贮时为了减少文件长度节省存贮空间,使用了自定义格式,因此,无法通过通用的方式去读取数据。在MIT-BIH数据库中,心率失常数据存储格式主要是Format 212。格式212针对两个信号(为了方便起见,设定为信号0和信号1)的采样数据进行交替存储,每三个字节存储两个数据,这两个数据分别来自信号0和信号1,信号0的采样数据取自第一字节对(共16位)的最低12位,信号1的采样数据由第一字节对的剩余4位(作为组成信号1采样数据的12位的高4位)和下一字节的8位(作为组成信号1采样的12位的低8位)共同组成。两个信号的所有数据都按照这种方法连续存储。根据信号的存储格式用Labview编写的读取MIT/BIH数据库data文件的后面板程序如图2所示。
2 ECG信号的滤波
在采集心电信号时,由于受仪器、人体等方面的影响,所采集的ECG信号常常存在以下几种干扰:呼吸和运动所产生的基线漂移、工频干扰、肌电干扰、电极接触噪声、运动伪迹和电子设备产生的高频仪器噪声。
目前比较热门的滤波处理是用小波变换。具体做法是:首先选取适当的小波函数和分解尺度n后,对ECG信号进行多尺度分解。然后,将小波变换后的各尺度离散系数进行阀值处理。最后。利用处理后的小波系数对信号进行重构,获得平稳,的心电图信号,以此达到消除ECG中噪声的目的。滤波的关键在于:①选择合适的小波函数;②选择小波门限法。为此,本系统设置了小波函数选项和小波门限法选项。其中,小波门限法提供了三种:软阀值法、硬阀值法和自适应阀值法。
本设计在Labview平台上调用MATLAB节点,用MATLAB小波函数对加噪信号进行滤波。Matlab提供小波分析等复杂算法供Labview调用。利用Matlab中提供的小波函数工具来进行去噪处理,以获得最好的滤波效果。在去噪阈值类型选项中,若不进行选择系统即按默认阈值处理。默认阀值是采用MATLAB自带的ddencmp函数,程序如图3所示。
3 QRS波群检测及参数提取
目前ECG自动分析的内容主要包括心电信号的预处理,特征提取,QRS波检测和分类,数据压缩等。其中QRS波的检测是首要问题,也是整个系统的关键;特征提取和分析判断是临床应用的核心。心电信号波形的复杂性和各种类型噪声的存在以及生理上的变异性,使QRS波的精确检测非常困难。
QRS波群的软件检测是近30年来研究的焦点。目前,QRS波的检测方法主要有:差分阈值法、模式判断法、小波分析法、神经网络法和句法分析法。本设计主要采用小波分析法。小波分析方法利用QRS波频率总是高于P波和T波的特点来识别QRS波。QRS波群的中心频带在17Hz左右,带宽约为10Hz。
心电信号的峰值、谷值和峰峰值等可以用Labview中Amplitude and Level Measurements.vi非常方便地测量出来。
本系统中R波峰检测采用Labview系统自带的峰值检测控件Peak Detector,vi。通过检测到的两个连续R波峰的位置可计算心电信号的周期、频率等,随后利用公式计算出心率,就可准确判断心率的变化。
R峰检测的关键是门限的设置,可以调整宽度至精确。但是,仅靠门限和宽度的设置还不能非常准确地检测出R峰,为此,可以通过二阶导数峰检测中输出的信息进一步精准化,也可以根据R峰的性质结合其他模块更好的检测出R峰的位置。
4 心电分析仪前面板
心电分析仪前面板见图4。整个前面板分成原始ECG信号显示区、经小波滤波后ECG信号显示窗口、滤波参数选择和ECG信号参数显示及提示区。其中,滤波参数选择包括小波函数选择、去噪阈值类型选择和小波分解级选择。
另外,ECG信号参数显示区主要用来提示ECG信号的波峰、波谷和心率以及异常信号等。本系统采用异常信号的判断方法是:设定心率的最大值和最小值,也就是上限和下限,当采集的心电信号的心率高于最大值或者低于最小值时,启动报警程序。前面板上将显示异常的信号类型,点亮指示灯,提示管理人员进行适当的处理。本系统
中用布尔指示灯显示报警状态,设定心率上限为90次/9,下限为70次份;当采集的心率高于90次份时,心率过快的指示灯点亮为红色,当心率低于70次/分时,心率过缓的指示灯点亮为蓝色,当心率在70-90次/分时,心率正常的指示灯点亮为绿色。该系统诊断报警子程序如图5所示。
5 结束语
基于Labview的心电信号分析仪,包含心电信号采集、文件读取、信号预处理、QRS波检测等几个部分。所有的软件都基于Labview工作环境编写,并在Labview平台上调用MATLAB节点,通过充分调用Matlab环境中的经典算法程序,省去了在LabView工作环境中编写小波变换等复杂算法程序的过程,方便了参数调试和修改。而且,通过增加一块ECG信号采集卡,能够对ECG信号进行采集,实时处理、实时显示。
