晏明軍
基于小波變換和FPGA的心電監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
晏明軍
(遼寧鐵道職業(yè)技術(shù)學(xué)院,遼寧錦州,121000)
為了提高心電系統(tǒng)除噪效果和運(yùn)算速度,提出一種基于小波變換和FPGA的心電檢測(cè)系統(tǒng)。利用離散小波快速算法—Mallat算法,簡化小波算法的復(fù)雜性。并合理選擇母小波和閥值的計(jì)算方法,提高了重構(gòu)信號(hào)對(duì)真實(shí)信號(hào)的逼近程度。通過FPGA實(shí)現(xiàn)小波算法,利用FPGA運(yùn)算的并行性,提高了系統(tǒng)的運(yùn)算速度。采用VHDL編寫AD和LCD的控制程序,實(shí)現(xiàn)了信號(hào)采集和顯示的功能。經(jīng)過MIT/BIH數(shù)據(jù)對(duì)算法進(jìn)行了仿真驗(yàn)證,表明該算法具有良好的除噪效果,其信噪比SNR可達(dá)122.6987,均方差MSE可達(dá)0.0023。
心電;FPGA;Mallat;小波變換
心電檢測(cè)一直都是一個(gè)熱門的話題,而如何在噪聲中有效的提取心電信號(hào)始終是開發(fā)人員研究的重點(diǎn)。多數(shù)設(shè)計(jì)者采用硬件濾波器和陷波器的方式,比如合肥工業(yè)大學(xué)和哈爾濱工業(yè)大學(xué)設(shè)計(jì)的便攜式心電監(jiān)測(cè)儀。也有一些采用數(shù)字濾波的方式,比如云南大學(xué)設(shè)計(jì)的基于差分閾值處理方法。由于數(shù)字濾波的優(yōu)越特性,濾波方式正向數(shù)字方向發(fā)展。在各種數(shù)字濾波方式中,小波方法效果最好。但是由于小波算法的復(fù)雜性以及受到嵌入式處理器速度的限制,小波方法很少應(yīng)用到嵌入式系統(tǒng)中。隨著可編程邏輯門器件的發(fā)展,F(xiàn)PGA可以開始具有DSP功能。由于FPGA程序運(yùn)行具有并行性,使得FPGA比DSP在處理速度上更具優(yōu)勢(shì)。另外,在數(shù)據(jù)算法方面,法國學(xué)者M(jìn)allat提出了一種小波算法的簡化方法--Mallat算法。這樣小波分析應(yīng)用到嵌入式系統(tǒng)就有了可能。
系統(tǒng)總體框圖如圖1所示。首先從被測(cè)對(duì)象中提取微弱的心電信號(hào),直接送到FPGA中進(jìn)行信號(hào)濾波和提取,最后經(jīng)過處理后顯示到LCD屏幕上。FPGA是整個(gè)系統(tǒng)的核心,系統(tǒng)所有控制邏輯和運(yùn)算邏輯都在FPGA中實(shí)現(xiàn)。
圖1 系統(tǒng)框圖
心跳頻率正常值是60~100HZ,最高不超過120HZ。所以對(duì)A/ D轉(zhuǎn)換器轉(zhuǎn)換速率要求并不高。
本文選擇TLC549,它是TI公司生產(chǎn)的一種低價(jià)位、高性能的A/D轉(zhuǎn)換器,轉(zhuǎn)換速度小于 17us,最大轉(zhuǎn)換速率為 40000HZ。
芯片工作過程簡述如下:當(dāng)/CS電平變低后,芯片被選中,同時(shí)上次轉(zhuǎn)換結(jié)果的最高位MSB從DATA OUT端輸出,接著需要向I/O CLOCK端輸入8個(gè)連續(xù)時(shí)鐘信號(hào),前7個(gè)時(shí)鐘的作用是配合AD輸出上次的轉(zhuǎn)換結(jié)果,并為本次轉(zhuǎn)換做準(zhǔn)備。在第4個(gè)時(shí)鐘信號(hào)由高至低跳變后,芯片對(duì)模擬信號(hào)開始采樣,并在第8個(gè)時(shí)鐘信號(hào)的下降沿啟動(dòng)A/D進(jìn)行模數(shù)轉(zhuǎn)換。芯片轉(zhuǎn)換時(shí)間為36個(gè)系統(tǒng)時(shí)鐘周期,約為17us。
AD芯片的驅(qū)動(dòng)過程由FPGA控制,程序編寫語言采用VHDL。程序如下:
心電信號(hào)比較微弱,在采集的時(shí)候時(shí)會(huì)被淹沒在較強(qiáng)的背景噪聲中。背景噪聲主要包電力設(shè)備產(chǎn)生的50HZ的工頻干擾、人體肌肉收縮引起的肌電干擾、電極移動(dòng)及人體呼吸帶來的基線漂移噪聲。因此必須對(duì)采集的信號(hào)進(jìn)行消噪處理。
除噪的方法有很多種,如閥值檢測(cè)法、模板匹配法、數(shù)學(xué)形態(tài)法、神經(jīng)網(wǎng)絡(luò)法等。小波除噪具有多尺度小波變換特性,夠能很好的描述心電信號(hào)各個(gè)波的特點(diǎn),并減少工頻干擾、肌電干擾、基線漂移等噪聲對(duì)判別的影響。其缺點(diǎn)就是算法復(fù)雜計(jì)算量大,為了解決這個(gè)問題,設(shè)計(jì)采用Mallat算法來減少運(yùn)算量。另外為了提高運(yùn)算速度,實(shí)現(xiàn)算法并行性,采用FPGA完成數(shù)據(jù)處理。本設(shè)計(jì)所使用的FPGA為Xilinx公司生產(chǎn)的Spartan-3A DSP系列中XC3SD1800A型號(hào)FPGA。
3.1 Mallat算法
小波降噪的原理就是把帶有噪聲的信號(hào)進(jìn)行小波分解,因?yàn)樾盘?hào)與噪聲在小波變換下的行為各不相同,以此對(duì)信號(hào)和噪聲進(jìn)行分離,把屬于噪聲的小波系數(shù)置為0,將剩余部分進(jìn)行小波重構(gòu),就得到了不含噪聲的信號(hào)。算法如下:
將二尺度方程式
對(duì)時(shí)間進(jìn)行伸縮和平移,則:
令m=2k+n,有:
根據(jù)多分辨率定義得:
把f(t)分解一次,則:
其中,cj,k和dj,k為j尺度上的展開系數(shù),而且
我們稱cj,k為尺度系數(shù),dj,k為小波系數(shù)。將式4-3代入式4-7,整理得:
同理可推得:
式4-9、4-10說明:j尺度空間的尺度系數(shù)cj,k和小波系數(shù)dj,k可由j-1尺度空間的尺度系數(shù)cj-1,k經(jīng)濾波器系數(shù)h0(n), h1(n) 進(jìn)行加權(quán)求和得到。
將Vj空間尺度系數(shù)cj,k進(jìn)一步分解下去,可分別得到Vj+1,Wj+1空間的尺度系數(shù)cj+1,k和小波系數(shù)dj+1,k,同樣,將尺度空間Vj+1繼續(xù)這樣分解,可得到任意尺度空間Vj,其分解過程如圖2所示。這就是著名的Mallat算法。
圖2 小波算法圖
與分解的計(jì)算過程相反,得到小波變換重構(gòu)公式為:
3.2 母小波的選取
小波函數(shù)有很多種,有Haar小波、Marr小波、Meyer小波、biorthogonal小波、Daubechies小波、Symlet小波、Coiflet小波等。在這幾類常用的小波中,只有Biorthogonal小波系和Symlet小波系比較適合于處理心電信號(hào),Biorthogonal小波嚴(yán)格對(duì)稱但不正交,Symlet小波正交但不嚴(yán)格對(duì)稱。兩者相比,Symlet小波系中的各個(gè)小波基所對(duì)應(yīng)的尺度函數(shù)更接近于心電信號(hào)中完整的P-QRS-T波段,所以本文選擇了尺度函數(shù)比較接近心電波形且小波函數(shù)對(duì)稱性較好的sym8小波對(duì)心電信號(hào)進(jìn)行處理。
3.3 小波閥值函數(shù)的選取
閾值的選擇是小波去噪和收縮中重要的一步,在去噪過程中閾值起著也很重要。閥值太小,施加閾值后小波系數(shù)包含太多的噪聲分量,達(dá)不到去噪效果;反之,則去除了有用部分,使信號(hào)失真。
硬閥值
當(dāng)小波系數(shù)的絕對(duì)值大于等于給定閾值時(shí),保持不變,而小于時(shí),令其為0。
軟閾值
當(dāng)小波系數(shù)的絕對(duì)值大于等于給定的閾值時(shí),令其值為減去閾值;而小于時(shí),令其為0。
硬閾值在閾值點(diǎn)不連續(xù),重構(gòu)可能產(chǎn)生一些震蕩;軟閾值連續(xù),但估計(jì)的小波系數(shù)和分解的小波系數(shù)有恒定的偏差。綜合硬閥值和軟閥值的優(yōu)缺點(diǎn),本文選擇在實(shí)際應(yīng)用中有較好的效果得軟閥值。
程序流程圖如圖3。部分程序如下:
圖4 仿真圖
算法仿真:選用小波函數(shù)sym8,分解層數(shù)為4層,對(duì)信噪比為5db的噪音信號(hào)進(jìn)行除噪處理。仿真后得信噪比SNR =122.6987,均方差MSE =0.0023。仿真波形如圖4。
本設(shè)計(jì)選用液晶屏型號(hào)為奇美LQ035NC211,該液晶屏為3.5寸,分辨率為320×240。軟件采用VHDL編寫液晶屏驅(qū)動(dòng),部分程序如下:
利用母小波為sym8的Mallat快速小波變換,極大的簡化了算法的復(fù)雜性。同時(shí)在FPGA上實(shí)現(xiàn)小波除噪算法,保證計(jì)算的并行性,提高了處理速度。經(jīng)過驗(yàn)證表明,Mallat算法除噪效果明顯。另外,系統(tǒng)所有的處理模塊和控制模塊都在單片F(xiàn)PGA上實(shí)現(xiàn),降低了成本,簡化了電路。
[1] 黃新林.基于ARM的ECG檢測(cè)模塊的研究與設(shè)計(jì)[D].合肥工業(yè)大學(xué):電路與系統(tǒng),2010
[2] 王余濤.基于嵌入式系統(tǒng)的便攜式心電監(jiān)護(hù)系統(tǒng)的研制 [D]. 哈爾濱工業(yè)大學(xué): 信息與通信工程.2011
[3] 何敏,王威廉.心電實(shí)時(shí)監(jiān)護(hù)算法及監(jiān)護(hù)系統(tǒng)研究[D].云南大學(xué):通信與信息系統(tǒng),2010
[4] Pan J et.al.A Real-Time QRS Detection Algorithm[J]. IEEE trans on BME, 2001, 32(3):230-236.
[5] 劉隆吉.便攜式動(dòng)態(tài)心電監(jiān)護(hù)系統(tǒng)研究[D]山東科技大學(xué), 2010 .
[6] Y.Ferdi,J.P.Herbeuval.R Wave Detection Using Fractional Digital Differentiation[J].ITBM-RBM, 2006,24(8):273-280.
[7] D.Simunic,S.Tomac,I.Vrdoljak.Wireless ECG Monitoring System. 1st International Conference on Wireless Communication, Vehicular Technology, Information Theory and Aerospace & Electronic Systems Technology,Aalborg,2009.Wireless VITAE:73~76
[8] 林文華.基于小波變換的去噪方法及其應(yīng)用研究[D].暨南大學(xué)碩士學(xué)位論文,2003.
[9] Daubechies I.Orthonormal Bases of Compactly Supported Wavelets[J].Communications on Pure and Applied Mathematics,1997,41:990-996.
[10] 胡玥.遠(yuǎn)程監(jiān)護(hù)系統(tǒng)心電信號(hào)特征快速提取方法研究[D]鄭州大學(xué), 2010 .
Design of ECG Detecting Apparatus Based On Wavelet Transform And FPGA
Yan Mingjun
(Liaoning Railway Vocational and Technological College,Jinzhou,121000,China)
In order to improve the effect of removing noising and the arithmetic speed,a ECG detecting system is designed.Using rapid disperse wavelet arithmetic - Mallat,the complexity of wavelet arithmetic is simplified.And with reasonable mother wavelet and threshold value,the proximity of the reconstructing signal according the virtual signal is improved.With wavelet arithmetic on FPGA,and the ability of operating parallelly,the arithmetic speed of the system is enhanced.It realizes the function of acquisition and display with AD and LCD controlling program using VHDL.After simulation and verification with MIT/BIH data, it indicates its superb noising removing effect.And its SNR can meet 122.6987,its MSE can meet 0.0023.
ECG;FPGA;Mallat;wavelet transform
圖5 顯示界面
圖3 程序流程圖