新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于小波變換的ECG信號壓縮及其FPGA實現(xiàn)

基于小波變換的ECG信號壓縮及其FPGA實現(xiàn)

作者: 時間:2017-06-05 來源:網(wǎng)絡 收藏

醫(yī)生在判斷心臟方面的疾病時,心電圖ECG(Electrocardiogram)通常是一個最直接且最有效的判斷依據(jù)。心電圖是利用一維波形來描述心臟搏動時的電位變化。因此,ECG信號在心血管疾病的診斷和研究中具有重要的參考價值。醫(yī)生希望能夠?qū)⒉∪说男碾姅?shù)據(jù)全部保存下來,以便對病人不同時期的心電圖進行比較和科學研究之用。但是心電數(shù)據(jù)的備份和存儲將占用非常巨大的資源,尤其是在便攜式醫(yī)療監(jiān)護系統(tǒng)中,將直接影響到系統(tǒng)的成本。為此,如何有效地對ECG信號進行壓縮和解壓縮,以最大程度地保留原有的信號特征,并達到盡可能大的壓縮效率是目前研究的重點。本文重點研究了基于的ECG信號壓縮算法及其實現(xiàn)方法,為ECG信號的實時壓縮和處理提供一種解決方案。

本文引用地址:http://butianyuan.cn/article/201706/349202.htm

1 及其提升模式

自1988年起離散DWT逐漸成為信號處理中極為重要且強大的工具,原因是其具有以下幾個顯著的特性:

空間-頻率的位置相似性;能量集中;子頻帶間的相對數(shù)值相似性;易于設計反變換。

在數(shù)據(jù)壓縮領域中,DWT已經(jīng)大量且成功的被應用在一維信號、視頻壓縮中,而且在近幾年被采納為JPEG2000及MPEG4等視頻的世界壓縮標準。

DWT在應用上主要是利用以卷積(Convolution)為基礎的FIR濾波器實現(xiàn),包括以一對高通與低通FIR濾波器所構(gòu)成的小波分解及合成。以FIR濾波器所建構(gòu)的DWT通常被稱為傳統(tǒng)小波轉(zhuǎn)換,為了讓DWT運算更有效率,仍有許多文獻著重于改良其架構(gòu),其中由Sweldens在1996年提出的上提式小波轉(zhuǎn)換是至今較優(yōu)異的一個。Sweldens已經(jīng)證明了在提升的基礎上可以進行整數(shù)集到整數(shù)集的小波變換, 這是提升小波實現(xiàn)無損壓縮的理論基礎。小波提升算法的基本思想是通過由基本小波逐步構(gòu)建出一個具有更加良好性質(zhì)的新小波。該方法視DWT為一個預測-失真的系統(tǒng),并分別利用分解、預測及更新三個部分來完成:將數(shù)據(jù)分為偶數(shù)序列和奇數(shù)序列兩部分;用分解的偶數(shù)序列預測奇數(shù)序列,得到的預測誤差為變換的高頻分量;由預測誤差來更新偶數(shù)序列,得到變換的低頻分量。提升方案如圖1所示。

相較于傳統(tǒng)的DWT,它具有較低的運算復雜度,因此更有利于硬件實現(xiàn)。

本文采用的是(5,3)提升小波變換,其算法為:


2 小波變換應用于ECG數(shù)據(jù)壓縮原理

小波變換的一個非常吸引人的特征是由粗到精的多分辨分析,即可將信號按不同的分辨率進行分解后,再分別進行分析處理。將小波變換運用于壓縮,是基于小波多分辨分析技術(shù)的。在壓縮時,ECG在不同的尺度下被分解成不同的信號,然后對這些信號分別進行壓縮編碼;恢復時將這些編碼結(jié)果進行解碼,進行反變換后形成恢復信號。編碼方式有很多種,本文選擇的是基于碼本的編碼方式,通過從輸入的數(shù)據(jù)中建立碼書來對信號進行編碼,為提高壓縮比率,在建立碼書的過程中會引入量化。本文采取的ECG小波變換壓縮原理如圖2所示。


3 實現(xiàn)

基于診斷上的特殊需求,一個好的ECG壓縮演算法不僅需具有高壓縮率的特性,且必須盡量在被壓縮后的信號中保存有醫(yī)生用來判別病癥的診斷資訊。此外,為了廣泛的應用需求,所發(fā)展出來的ECG壓縮演算法應具有即時壓縮的特性。因此,本設計研究了該壓縮算法的實現(xiàn),以使ECG信號能夠得到實時的壓縮和處理。

本文研究了提升小波的硬件實現(xiàn)方法,根據(jù)FPGA器件具有快速邏輯處理能力的特點,采用流水線的加法及數(shù)據(jù)移位操作等,設計了一種適合FPGA實現(xiàn)的快速小波變換硬件結(jié)構(gòu)。采用基于Matlab的設計工具DSP Builder,在Altera CYCLONE器件EP2C35F672C6上實現(xiàn)5/3小波變換及逆變換的功能,并在Quartus軟件下進行綜合、仿真及下載。

Altera DSP Builder是一套完整的基于FPGA的DSP開發(fā)工具,在Simulink中作為一個獨立的Blockse工具箱,包含數(shù)學運算(arithmetic)、存儲單元(storage)及MATLAB文件(mdl)/VHDL文件轉(zhuǎn)換模塊等功能庫。利用這些功能單元及Simulink中的其他工具箱可以進行FPGA的設計、仿真及生成VHDL代碼。

由于原始數(shù)據(jù)在進行了一次運算產(chǎn)生新數(shù)據(jù)之后不再參與進一步的運算,因而新數(shù)據(jù)可以覆蓋原始數(shù)據(jù),不必另開存儲單元,節(jié)省了資源。該提升算法不需要額外的數(shù)據(jù)延拓,由于采用的是對稱鏡像延拓,在處理邊界問題時,只要在適當?shù)奈恢眠M行兩次操作以保持數(shù)據(jù)就可以了。從算式可知,提升算法的正變換的每一個高頻分量都是將其前后連續(xù)的數(shù)據(jù)加權(quán)求和得到的,可以通過流水線式操作實現(xiàn),這不僅有利于提升小波變換的速度,更簡化和節(jié)約了硬件資源的使用。這也是本文采用的小波變換算法的硬件實現(xiàn)原理。圖3為基于DSP Builder的一維小波變換核的FPGA算法實現(xiàn)。

通過對輸入ECG信號的仿真分析以及信號在MATLAB中使用wavedec函數(shù)進行分解得到的結(jié)果與基于本設計的變換核的1D-DWT變換的仿真結(jié)果的比較(如圖4),可以了解本變換核的性能。由于采用了流水線操作原理以及采用了流水線架構(gòu)的乘加邏輯,系統(tǒng)的變換速度得到了很大的提高。該變換核在輸入3個數(shù)據(jù)后得到第一個低頻變換系數(shù),在輸入5個數(shù)據(jù)后即開始得到第二個低頻變換系數(shù)和第一個高頻變換系數(shù),之后每輸入2個數(shù)據(jù)就各得到一個高頻和低頻分量。通過控制邏輯將這些分量在適當?shù)臅r候輸出并存儲起來就可以完成本次小波變換。

逆變換的設計方法與正變換的方法相似,根據(jù)式(3)和式(4),首先由輸入的高通、低通濾波系數(shù)序列計算出偶序列,再根據(jù)偶序列的數(shù)值計算出奇數(shù)列的數(shù)值,對于邊界問題也采用“補零”的方法。逆變換設計的方法是在圖3中將變換輸入單元改為變換后的序數(shù),通過逐個將數(shù)據(jù)輸入并經(jīng)過依據(jù)式(3)和式(4)重新設置權(quán)重,即可實現(xiàn)該小波的反變換核。同時通過計算單元,利用偶序列的計算結(jié)果計算出奇序列的數(shù)值,最終實現(xiàn)原始信號的重建過程。

由于本設計旨在使用DWT變換實現(xiàn)對ECG信號的壓縮,因此,采用了5級小波變換的措施以減小數(shù)據(jù)量,實現(xiàn)最大程度的低失真壓縮,其原理圖如圖5所示。

該模塊首先將ECG信號分成1 024點的幀,然后逐個送入5級小波變換模塊。在該模塊中的控制將選通輸入信號為外部送入的ECG信號作為輸入1D-DWT的變換對象,變換后的對象存儲在C5、D5、D4、D3、D2、D1中。D1的大小為512 B,存放的是第一次變換后的高頻分量,低頻分量依次存儲于C5D5D4D3D2。接著控制邏輯將選通低頻分量C5D5D4D3D2作為1D-DWT的變換對象,變換后的高頻分量存儲于D2,低頻分量存儲于C5D5D4D3,即實現(xiàn)了對于ECG信號的2-level DWT變換。這樣經(jīng)過5次變換后得到的變換結(jié)果為C5:32 B、D5:32 B、D4:64 B、D3:128 B、D2:256 B、D1:512 B。通過設定閾值可以實現(xiàn)噪聲可控的量化,并建立段數(shù)據(jù)的碼書,以實現(xiàn)數(shù)據(jù)與編碼之間的對應。對于ECG信號的重建,可以理解為小波分解壓縮的逆過程。首先將壓縮后的信號解碼后按序送入C5D5D4D3D2D1,控制邏輯電路將逐層對信號進行反變換,從而得到重建后的信號。當閾值設置大于零時,重建的信號將會存在一些失真,即為有損壓縮,若要實現(xiàn)無損壓縮,則只需將閾值設為零即可,但壓縮率會有所降低。

4 實驗數(shù)據(jù)及結(jié)果

本設計的5級小波變換模塊在quatus中采用EP2C35F672C6編譯后占用的資源及性能情況如表1所示。

利用該模塊分別對采集的不同ECG信號和經(jīng)過放大和取整處理之后的MIT的ECG信號進行壓縮實驗,使用兩個指標來衡量本壓縮算法的性能。一個是壓縮比CR(Compression ratio),另一個是均方根誤差PRD(percent root mean square difference)。具體的計算公式為:

其中Xo(i)、Xr(i)分別代表原始心電信號數(shù)據(jù)和重建后的心電信號數(shù)據(jù)。得到的壓縮率與閾值及信號的對應數(shù)據(jù)如表2所示。

從表中可以看出,本算法能在一定的PRD范圍內(nèi)獲得較大的壓縮比,在閾值D等于零時,依靠碼本編碼算法依然獲得了一定得壓縮比,但由于小波變換核在運算過程中具有右移位操作,還是造成了很小的失真,即在D=0時僅能做到準無損壓縮。圖6為閾值等于5時,對MIT-100.dat信號重建的結(jié)果。

通過對5/3小波變換的研究,設計實現(xiàn)了5層小波變換及其反變換的FPGA硬件實現(xiàn),并對結(jié)果進行了仿真及實例驗證,得到了很好的效果。采用Altera的DSP Builder進行開發(fā),具有使用靈活、開發(fā)周期短的特點。采用 FPGA實現(xiàn)小波變換與用 DSP處理器的方法相比,具有速度快、數(shù)據(jù)寬度可任意設置的特點,并且硬件語言具有可移植性的特點,具有更強的通用性。由于在現(xiàn)代信號處理中的大量應用,可以將小波變換核設計成可重用的IP。

在完成小波變換的FPGA實現(xiàn)后,本文將其應用于ECG信號的壓縮,通過多層小波變換與編碼的結(jié)合,實現(xiàn)了ECG信號實時有效的壓縮和重建。



評論


相關推薦

技術(shù)專區(qū)

關閉