新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于小波变换的ECG信号压缩及其FPGA实现

基于小波变换的ECG信号压缩及其FPGA实现

作者:时间:2017-06-05来源:网络收藏

医生在判断心脏方面的疾病时,心电图ECG(Electrocardiogram)通常是一个最直接且最有效的判断依据。心电图是利用一维波形来描述心脏搏动时的电位变化。因此,ECG信号在心血管疾病的诊断和研究中具有重要的参考价值。医生希望能够将病人的心电数据全部保存下来,以便对病人不同时期的心电图进行比较和科学研究之用。但是心电数据的备份和存储将占用非常巨大的资源,尤其是在便携式医疗监护系统中,将直接影响到系统的成本。为此,如何有效地对ECG信号进行压缩和解压缩,以最大程度地保留原有的信号特征,并达到尽可能大的压缩效率是目前研究的重点。本文重点研究了基于的ECG信号压缩算法及其实现方法,为ECG信号的实时压缩和处理提供一种解决方案。

本文引用地址:http://www.eepw.com.cn/article/201706/349202.htm

1 及其提升模式

自1988年起离散DWT逐渐成为信号处理中极为重要且强大的工具,原因是其具有以下几个显著的特性:

空间-频率的位置相似性;能量集中;子频带间的相对数值相似性;易于设计反变换。

在数据压缩领域中,DWT已经大量且成功的被应用在一维信号、视频压缩中,而且在近几年被采纳为JPEG2000及MPEG4等视频的世界压缩标准。

DWT在应用上主要是利用以卷积(Convolution)为基础的FIR滤波器实现,包括以一对高通与低通FIR滤波器所构成的小波分解及合成。以FIR滤波器所建构的DWT通常被称为传统小波转换,为了让DWT运算更有效率,仍有许多文献着重于改良其架构,其中由Sweldens在1996年提出的上提式小波转换是至今较优异的一个。Sweldens已经证明了在提升的基础上可以进行整数集到整数集的小波变换, 这是提升小波实现无损压缩的理论基础。小波提升算法的基本思想是通过由基本小波逐步构建出一个具有更加良好性质的新小波。该方法视DWT为一个预测-失真的系统,并分别利用分解、预测及更新三个部分来完成:将数据分为偶数序列和奇数序列两部分;用分解的偶数序列预测奇数序列,得到的预测误差为变换的高频分量;由预测误差来更新偶数序列,得到变换的低频分量。提升方案如图1所示。

相较于传统的DWT,它具有较低的运算复杂度,因此更有利于硬件实现。

本文采用的是(5,3)提升小波变换,其算法为:


2 小波变换应用于ECG数据压缩原理

小波变换的一个非常吸引人的特征是由粗到精的多分辨分析,即可将信号按不同的分辨率进行分解后,再分别进行分析处理。将小波变换运用于压缩,是基于小波多分辨分析技术的。在压缩时,ECG在不同的尺度下被分解成不同的信号,然后对这些信号分别进行压缩编码;恢复时将这些编码结果进行解码,进行反变换后形成恢复信号。编码方式有很多种,本文选择的是基于码本的编码方式,通过从输入的数据中建立码书来对信号进行编码,为提高压缩比率,在建立码书的过程中会引入量化。本文采取的ECG小波变换压缩原理如图2所示。


3 实现

基于诊断上的特殊需求,一个好的ECG压缩演算法不仅需具有高压缩率的特性,且必须尽量在被压缩后的信号中保存有医生用来判别病症的诊断资讯。此外,为了广泛的应用需求,所发展出来的ECG压缩演算法应具有即时压缩的特性。因此,本设计研究了该压缩算法的实现,以使ECG信号能够得到实时的压缩和处理。

本文研究了提升小波的硬件实现方法,根据FPGA器件具有快速逻辑处理能力的特点,采用流水线的加法及数据移位操作等,设计了一种适合FPGA实现的快速小波变换硬件结构。采用基于Matlab的设计工具DSP Builder,在Altera CYCLONE器件EP2C35F672C6上实现5/3小波变换及逆变换的功能,并在Quartus软件下进行综合、仿真及下载。

Altera DSP Builder是一套完整的基于FPGA的DSP开发工具,在Simulink中作为一个独立的Blockse工具箱,包含数学运算(arithmetic)、存储单元(storage)及MATLAB文件(mdl)/VHDL文件转换模块等功能库。利用这些功能单元及Simulink中的其他工具箱可以进行FPGA的设计、仿真及生成VHDL代码。

由于原始数据在进行了一次运算产生新数据之后不再参与进一步的运算,因而新数据可以覆盖原始数据,不必另开存储单元,节省了资源。该提升算法不需要额外的数据延拓,由于采用的是对称镜像延拓,在处理边界问题时,只要在适当的位置进行两次操作以保持数据就可以了。从算式可知,提升算法的正变换的每一个高频分量都是将其前后连续的数据加权求和得到的,可以通过流水线式操作实现,这不仅有利于提升小波变换的速度,更简化和节约了硬件资源的使用。这也是本文采用的小波变换算法的硬件实现原理。图3为基于DSP Builder的一维小波变换核的FPGA算法实现。

通过对输入ECG信号的仿真分析以及信号在MATLAB中使用wavedec函数进行分解得到的结果与基于本设计的变换核的1D-DWT变换的仿真结果的比较(如图4),可以了解本变换核的性能。由于采用了流水线操作原理以及采用了流水线架构的乘加逻辑,系统的变换速度得到了很大的提高。该变换核在输入3个数据后得到第一个低频变换系数,在输入5个数据后即开始得到第二个低频变换系数和第一个高频变换系数,之后每输入2个数据就各得到一个高频和低频分量。通过控制逻辑将这些分量在适当的时候输出并存储起来就可以完成本次小波变换。

逆变换的设计方法与正变换的方法相似,根据式(3)和式(4),首先由输入的高通、低通滤波系数序列计算出偶序列,再根据偶序列的数值计算出奇数列的数值,对于边界问题也采用“补零”的方法。逆变换设计的方法是在图3中将变换输入单元改为变换后的序数,通过逐个将数据输入并经过依据式(3)和式(4)重新设置权重,即可实现该小波的反变换核。同时通过计算单元,利用偶序列的计算结果计算出奇序列的数值,最终实现原始信号的重建过程。

由于本设计旨在使用DWT变换实现对ECG信号的压缩,因此,采用了5级小波变换的措施以减小数据量,实现最大程度的低失真压缩,其原理图如图5所示。

该模块首先将ECG信号分成1 024点的帧,然后逐个送入5级小波变换模块。在该模块中的控制将选通输入信号为外部送入的ECG信号作为输入1D-DWT的变换对象,变换后的对象存储在C5、D5、D4、D3、D2、D1中。D1的大小为512 B,存放的是第一次变换后的高频分量,低频分量依次存储于C5D5D4D3D2。接着控制逻辑将选通低频分量C5D5D4D3D2作为1D-DWT的变换对象,变换后的高频分量存储于D2,低频分量存储于C5D5D4D3,即实现了对于ECG信号的2-level DWT变换。这样经过5次变换后得到的变换结果为C5:32 B、D5:32 B、D4:64 B、D3:128 B、D2:256 B、D1:512 B。通过设定阈值可以实现噪声可控的量化,并建立段数据的码书,以实现数据与编码之间的对应。对于ECG信号的重建,可以理解为小波分解压缩的逆过程。首先将压缩后的信号解码后按序送入C5D5D4D3D2D1,控制逻辑电路将逐层对信号进行反变换,从而得到重建后的信号。当阈值设置大于零时,重建的信号将会存在一些失真,即为有损压缩,若要实现无损压缩,则只需将阈值设为零即可,但压缩率会有所降低。

4 实验数据及结果

本设计的5级小波变换模块在quatus中采用EP2C35F672C6编译后占用的资源及性能情况如表1所示。

利用该模块分别对采集的不同ECG信号和经过放大和取整处理之后的MIT的ECG信号进行压缩实验,使用两个指标来衡量本压缩算法的性能。一个是压缩比CR(Compression ratio),另一个是均方根误差PRD(percent root mean square difference)。具体的计算公式为:

其中Xo(i)、Xr(i)分别代表原始心电信号数据和重建后的心电信号数据。得到的压缩率与阈值及信号的对应数据如表2所示。

从表中可以看出,本算法能在一定的PRD范围内获得较大的压缩比,在阈值D等于零时,依靠码本编码算法依然获得了一定得压缩比,但由于小波变换核在运算过程中具有右移位操作,还是造成了很小的失真,即在D=0时仅能做到准无损压缩。图6为阈值等于5时,对MIT-100.dat信号重建的结果。

通过对5/3小波变换的研究,设计实现了5层小波变换及其反变换的FPGA硬件实现,并对结果进行了仿真及实例验证,得到了很好的效果。采用Altera的DSP Builder进行开发,具有使用灵活、开发周期短的特点。采用 FPGA实现小波变换与用 DSP处理器的方法相比,具有速度快、数据宽度可任意设置的特点,并且硬件语言具有可移植性的特点,具有更强的通用性。由于在现代信号处理中的大量应用,可以将小波变换核设计成可重用的IP。

在完成小波变换的FPGA实现后,本文将其应用于ECG信号的压缩,通过多层小波变换与编码的结合,实现了ECG信号实时有效的压缩和重建。



评论


相关推荐

技术专区

关闭