高振斌,耿 新
(河北工業(yè)大學 信息工程學院,天津 300401)
心臟是人體最重要的器官之一,它產(chǎn)生的心電信號是判斷心臟是否發(fā)生病變的重要依據(jù).在一個周期的心電信號中,相對于P波和T波而言,QRS波群具有較高的幅度和頻率分量,其特性比較明顯,所以QRS波的檢測成為心電信號自動檢測分析中最關鍵的環(huán)節(jié).
常見的QRS波檢測方法有時域分析、非線性濾波、模板匹配、神經(jīng)網(wǎng)絡、小波變換等[1].由于采集到的原始心電信號中存在多種無法避免的噪聲,如工頻干擾、基線漂移、肌電干擾等,常常造成對心電信號的誤檢.所以在傳統(tǒng)的心電信號檢測過程中,需要對原始信號進行預處理.本文根據(jù)小波變換的多分辨率的特性,設計了采用離散小波變換的心電信號自動檢測方案,并提出了基于FPGA的實現(xiàn)方法.實驗結(jié)果表明該方法有效排除了噪聲干擾,提高了檢測精度.
小波變換是一種信號的時間-頻率分析方法,具有時頻局域化分析能力和多分辨率分析的特點[2].根據(jù)這一特點,對原始心電信號做小波分解,可以把不同頻率的信號區(qū)分開來,在低尺度上主要反映的是信號的高頻噪聲,而在較高尺度上反映的是信號的低頻噪聲,因此采用中間尺度進行分析就可有效的區(qū)分心電信號與干擾噪聲.
本文采用二次B-樣條小波作為小波基函數(shù)[3],小波分解濾波器組系數(shù)為
小波變換的另一個重要性質(zhì)就是具有在時間、頻率上突出信號局部特征的能力,這些局部特征通常是信號的奇異點,如過零點、極值點等.經(jīng)Mallat等人的研究表明,信號的奇異點如果是一對上升沿和下降沿的交點,則該點對應信號經(jīng)小波變換后成為一個負極大值和正極大值的零交叉點,即過零點[4].所以只要檢測出信號在各級小波變換上極值對的過零點就可以檢測出R波的位置.
本文采用用Mallat算法對心電信號進行四級的小波分解.由于QRS復合波的分量主要分布在1~4尺度上[5],且為了進一步排除各種噪聲的影響,采用在23與24尺度上檢測極大值與極小值對,定位原始信號中R波峰的位置.
圖1 硬件實現(xiàn)流程圖Fig.1 Flow diagram of hardwareimplementation
圖2 四級小波分解硬件實現(xiàn)Fig.2 Hardwareimplementation of four wavelet decomposition
本設計中采用的心電信號數(shù)據(jù)全部來自于美國麻省理工學院提供的MIT-BIH數(shù)據(jù)庫.具體實現(xiàn)流程如圖1所示.
MIT-BIH數(shù)據(jù)庫中的數(shù)據(jù)是以360 Hz進行采樣[6],首先將心電信號的數(shù)據(jù)存入SD卡中,將時鐘頻率設定為360 Hz,在時鐘信號的作用下將數(shù)據(jù)讀入.
根據(jù)Mallat算法的塔式分解思想,小波分解實際是將原始信號通過一組系數(shù)特定的高通和低通濾波器,得到一級尺度系數(shù)和小波系數(shù)再將各級尺度系數(shù)分解便可得到各個尺度的小波系數(shù)[2].
對QRS復合波原始信號進行四級小波分解的硬件實現(xiàn)過程如圖2所示.
原始心電信號經(jīng)過4組高通和低通濾波器(圖中G為高通濾波器,H為低通濾波器),得到1~4尺度上的小波系數(shù),分別為h1~h4存入寄存器中.對時鐘信號進行2分頻是因為心電信號經(jīng)過高通和低通濾波器處理后兩路輸出頻帶不交疊,所以必定正交,而且由于兩種輸出的帶寬均減半,因此相應的采樣頻率可以減半,而不至于引起信息的丟失.對濾波結(jié)果進行2抽取,即將輸入的序列每隔一個點輸出一次,例如只取偶數(shù),組成長度縮短一半的新序列.
為了避免噪聲和心率失常造成的誤檢,在3,4尺度上同時檢測極值對,只有在這兩個尺度上都檢測到過零點,才認為檢測出一個R波峰.
對過零點的檢測方法有很多,本設計中采用閾值法進行檢測[7].由于QRS波群的幅度是不斷變化的,所以在檢測過程中閾值也應是變化的.首先將初始2 s內(nèi)的信號h3和h4(h3和h4為3,4尺度上對原始心電信號做的小波變換)作預處理,在初始化階段中首先確定3,4尺度的閾值與.具體確定方法為:設第1 s內(nèi)的最大值為max1,第2 s內(nèi)的最大值為max2,第1 s內(nèi)的最小值為min1,第2 s內(nèi)的最小值為min2,則初始閾值為
當下1s的信號到來時,更新MAX與MIN的值,從而實現(xiàn)每秒更新閾值.具體硬件實現(xiàn)如圖3所示.這里以生成閾值MAX為例,首先將寄存器temp置為0,并逐點與信號比較,若發(fā)現(xiàn)較大的點則存入寄存器temp中,計數(shù)器用來控制當計數(shù)達到1s時,將寄存器temp中的數(shù)值通過公式計算得到的閾值存入閾值寄存器中,并且對自身清零,準備進行下1 s的閾值更新.
當確定了各尺度的閾值之后,再在各尺度上逐點與閾值比較,若某一點小于 MIN,在其后的一段時間內(nèi)(設定為稍大于正常QRS波的時限)的一點大于MAX,則認為檢測到一個極值對.硬件實現(xiàn)如圖4所示,由于在3,4尺度上檢測極值對的方法相同,所以圖中只對尺度3上的檢測做了描述.首先在時鐘信號(由于是在尺度3上檢測,所以采用clk3,對原始時鐘進行了8分頻,頻率為45 Hz)的作用下,將信號與閾值逐點比較,若檢測到一點小于閾值MIN,則把此時計數(shù)器中的數(shù)值存放到寄存器中,計數(shù)器在時鐘的作用下繼續(xù)計數(shù),當計數(shù)器的數(shù)值距檢測到極小值點時的數(shù)值相差6個點即0.13 s(正常QRS波時限為0.06~0.10 s,這里設定稍大于正常QRS波時限)之內(nèi),并且又檢測到極大值點,則認為檢測到一次R波峰.
通常在心電信號質(zhì)量不佳,噪聲干擾比較嚴重,或者是由于心臟本身病變而使心電信號發(fā)生突變時,很容易造成誤檢,所以應當對檢測結(jié)果進行分析,去除錯檢點,補償漏檢點,提高檢測效率.
當緊隨QRS波群之后的T波比較高大時,很容易將其錯檢為R波峰.根據(jù)不應期的理論[7],一次QRS波產(chǎn)生后,其后一定時間間隔內(nèi)不會產(chǎn)生另一個QRS波.因此在檢測到一個QRS波對應的模極大值對后的200 ms內(nèi)不再做檢測,這樣可以避免因噪聲引起的干擾造成誤檢,尤其是可以避免高大T波帶來的干擾.
雖然用來檢測極值對的閾值是根據(jù)信號的幅度大小每秒更新的,但仍無法避免有時由于心率失常,QRS波幅度、頻率突然變得很小,R峰點所對應的極值點達不到閾值,而導致漏檢.經(jīng)過多次驗證發(fā)現(xiàn)漏檢的情況多發(fā)生在尺度4上,因此若在尺度3上檢測出R波峰,而在尺度4上沒有檢測到,這時若距上一次檢測到R峰點的時間若超過1.5 s,則認為漏檢了,在這期間認為出現(xiàn)了一次R波.
圖3 閾值每秒更新的硬件實現(xiàn)Fig.3 Hardwareimplementation of threshold updatesper second
圖4 尺度3上檢測極值對硬件實現(xiàn)Fig.4 Hardwareimplementation of extremepointsdetect on scale3
1~4尺度上的小波分解與極值對檢測仿真波形如圖5所示.圖中ecg為原始心電信號,h1~h4為4個尺度上的小波分解,r3與r4分別為尺度3,4上的極值對檢測結(jié)果,當檢測到一個過零點時置1,其他時刻置0,得到由1,0組成的脈沖序列,r為最終檢測的R波峰的位置.
圖5 四級小波分解與R波峰檢測結(jié)果Fig.5 Four wavelet decomposition and theresultsof Rpeak detection
圖6 中的心電信號取自MIT-BIH數(shù)據(jù)庫中111文件,a)為直接檢測結(jié)果,可以看到T波較高大時,很容易將其誤檢出來.b)為采用了不應期的理論對程序進行修改后,排除了T波的影響,效果很理想.
圖6 去除錯檢點Fig.6 Removethewrong points
圖7 中的心電信號取自MIT-BIH數(shù)據(jù)庫中119文件.當出現(xiàn)室性早搏時雖然在尺度3上檢測出來了,但在尺度4上有一次明顯的漏檢,r為修改程序后最終檢測的結(jié)果,在圖中可看出補償了漏檢的R波峰.
圖7 補償漏檢點Fig.7 Compensation for missed points
QRS波群的檢出對心電信號的分析有著重要的意義,當確定了R波峰點之后,便可對心電信號進行進一步的分析,提取各波段的參數(shù)如R-R間期,P-R間期,Q-T間期,R波峰幅度等,通過對這些參數(shù)的分析使對心電信號實現(xiàn)自動診斷成為可能.圖8中顯示的是對心電信號求的R-R間隔,進而得到每分鐘心跳的次數(shù).圖中interval為求得的R-R間隔(圖中顯示的數(shù)字為相鄰R波峰間計數(shù)器所計的點數(shù)).由此可得到平均每次心拍的用時,average為通過計算最終得到的每分鐘心拍數(shù).圖中心電信號來自MIT-BIH數(shù)據(jù)庫中100文件,結(jié)果顯示每分鐘心跳大約為75次.
圖8 心率計算Fig.8 Heart ratecalculation
本設計中采用Altera公司生產(chǎn)的CycloneⅡ系列EP2C20F484C7的FPGA芯片,來實現(xiàn)心電信號中R波的自動檢測,具體的資源使用情況如圖9所示.
圖9 硬件資源占用率Fig.9 Hardwareresourceutilization
本文將小波變換多分辨率的特性應用到心電信號的自動檢測中,提出了一種在FPGA上實現(xiàn)自動檢測的設計方案,解決了小波變換算法在軟件實現(xiàn)中耗時較長的問題.檢測結(jié)果比較理想,由于加入了一些檢測策略,防止了錯檢、漏檢等誤檢情況的出現(xiàn),提高了檢測結(jié)果的精確度.
[1]葉文宇.心電自動診斷技術的研究 [D].天津:天津大學,2003:1-10.
[2]張國華,張文娟,薛鵬翔.小波分析與應用基礎 [M].西安:西北工業(yè)大學出版社,2006:79-110.
[3]王超文,呂揚生,黃玉璽.用于ECG信號檢測與重建的雙正交樣條小波濾波器 [J].北京生物醫(yī)學工程,2001,20(1):25-28.
[4]熊沁,方祖祥,宋海浪.基于小波變換QRS波實時檢測方法與實現(xiàn) [J].中國醫(yī)療器械,2007,31(4):242-244.
[5]Mallat S.Zero-Crossing of awavelet transform[J].IEEETrans on information theory, 1991,37(4):1019-1033.
[6]宋喜國,鄧親愷.MIT-BIH心率失常數(shù)據(jù)庫的識讀及應用 [J].中國醫(yī)學物理學雜志,2004,21(4):230-232.
[7]李翠微,鄭崇勛,袁超偉.ECG信號的小波變換檢測方法 [J].中國生物醫(yī)學工程學報,1995,14(1):59-66.
[8]張飛.心電信號檢測算法研究 [D].長沙:中南大學,2005:8-18.