劉 媛 , 高振斌
(河北工業大學 天 津 3 00401)
心電信號是人類最早研究并應用于醫學臨床的生物電信號之一,與其他生物電信號相比,它更易于檢測并具有較直觀的規律性。心電圖的QRS波的準確檢測一直是心電信號分析檢測的難點,而提取有效的模式特征更是其關鍵所在。QRS波的檢測算法已有多種[1],而且理論研究也比較成熟,其中以小波變換為核心,利用小波變換對奇異值的閾值檢測特性識別QRS波的算法檢測率較高[2]。但是由于小波變換計算量大且有多次重復運算,不利于硬件的實時實現,因此對于算法的硬件實現的研究則相對比較少。如今,FPGA正處于革命性的數字信號處理技術的前沿。現在的FPGA系列都提供了以低系統開銷、低成本實現高速乘-累超前進位鏈的DSP算法[3]。所有這些的發展使的心電信號的處理的FPGA實現成為可能[4]。因此本文利用FPGA實現了基于小波變換的QRS波群的檢測。
近年來發展的小波變換技術,可同時進行時域和頻域分析,具有時頻局部化和多分辨率特性,特別適于處理非平穩信號,而心電信號多是時變信號,因而小波變換在提高QRS波檢測算法方面取得了較好的結果。由于小波變換能代表信號不同頻道上的分量,QRS波群的能量大多集中在23尺度和24尺度上,而運動偽跡、基線漂移等能量大都集中在大于25的尺度上。因此在處理心電信號時,通常取21到24尺度上的小波變換結果進行分析[4-5]。文獻[6]利用二次樣條小波作為小波基對心電信號對信號按Mallat算法[7]進行四級小波變換,然后確定出小波變換的模極大值對,它將收斂于信號的奇異點[8],即QRS波群,過零點就是R波波峰位置。算法采用MIT/BIH標準[9]心律失常數據庫進行測試,取得較好的效果。但小波變換法計算量很大,實時應用較難,隨著FPGA的發展,這種方法有了長遠的發展前景,同時使其成為了可能。
基于小波變換的QRS波檢測算法給出其具體實現方案。根據以上分析,在硬件平臺上實現基于小波變換的QRS波檢測算法主要分為小波變換部分與QRS波檢測部分2部分實現[10]。具體算法的實現主要分如下4個步驟:1)對心電數據進行小波變換得到各級小波系數;2)取第四級小波變換的小波系數確定其模正極大值與負極大值的閾值;3)確定第四級小波系數的正模極大值及負模極大值,如果在正模極大值的附近存在負模極大值則確定出QRS波群,否則刪除該極值點。4)產生代表QRS波群的信號。這樣就完成了整個小波變換及檢測。
選用Altera公司的FPGA CycloneⅡEP2C20F484C7完成整個設計,基于系統硬件,需要充分考慮小波變換的結構和檢測算法的結構。下面主要對小波變換結構和檢測算法結構進行討論,并詳細論述各部分的FPGA實現。
采用B-樣條小波作為小波基函數,對心電信號進行四級小波變換。因此小波變換過程的流程分4步驟,而且整個數據處理都是單流向的,即每一級小波變換的低頻輸出作為下一級小波變換的輸入,因此采用流水線的設計方法可提高系統工作效率。小波變換模塊的實現框圖如圖1所示。

圖1 小波變換模塊的實現框圖
信號通過高通濾波器和低通濾波器后分別得到高頻信號和低頻信號,來表示信號的細節部分和概貌部分。由于通過濾波器后的輸出帶寬減半,所以為了防止信息的丟失,采樣頻率也減半,因此在濾波后加入的二抽取的模塊,每一級小波變換后的低頻部分作為后一級的輸入數據繼續進行下一層的分解。每一級的小波變換模塊由小波變換子模塊transform組成。小波變換子模塊中利用乘法器與累加器來模擬濾波器結構對心電數據進行二進小波變換。小波變換子模塊的實現框圖如圖2所示。

圖2 小波變換子模塊的實現框圖
圖2中,心電數據與濾波器系數放入2個RAM中,RAM利用Altera公司提供的RAM:1-PORT core,由于2個RAM中的數據同時取出,因此共用地址信號。乘法器采用ALTERA公司的LPM_MULT CORE完成心電數據與濾波器系數的相乘,大大節約了LE資源,而且獲得了很好的性能,乘法器采用一級流水線結構。累加器利用ALTERA公司提供的ALTACCUMULATE實現在濾波中對乘法器生成的乘積結果進行累加,將生成的結果通過寄存器輸出,并在一組數據處理完畢后接收到累加器清零信號清零,為下一組數據處理做準備。二抽取模塊的功能是對濾波器的輸出數據進行抽取,即每兩個數據只取后一個數據,組成長度縮短一半的輸出數據。控制單元主要用來生成對輸入數據RAM與系數RAM進行訪問時所需的地址addr、乘法器的使能控制信號mult_en、累加器的使能addr_en、清零控制信號addr_clear和寄存器與抽取模塊的使能信號d_en。小波變換子模塊的功能仿真結果如圖3所示。

圖3 小波變換子模塊仿真結果
圖3中的dataout為小波變換子模塊的輸出,可以看到在信號輸入小波子模塊后,經過子模塊內部的抽取,每輸入兩個數據,在模塊的輸出端才會輸出一個小波變換的結果,由于對乘法器的輸出結果進行了截取以節省片內資源,因此乘法器的輸出mult_q有一定的運算量化誤差。
根據小波變換的理論,信號的奇異點對應于其小波變換的一個正模極大值和一個負模極大值對,其位置對應于正、負模極大值的過零點。具體算法是先判斷出正模極大值與負模極大值的閾值,若小波變換后的結果大于或小于閾值則判斷為正模極大值與負模極大值,找出對應的模極值對,判斷為QRS波群。檢測模塊的框圖如圖4所示。

圖4 檢測模塊的實現框圖
首先設置寄存器的初始值為0,把輸入的小波分解后的數據存入存儲器中。輸入的小波分解后的數據與寄存器的值相比,如果大于寄存器的值就更新該寄存器,當檢測信號有效時,即en=1時,停止更新,把寄存器中的數據的1/3做為閾值[10]存入閾值寄存器中,同時把存儲器中的數據輸出與該閾值相比,如果大于該閾值則判斷為正模極大值。同理在尋找負模極大值時的原理同上,只不過小波變換后的數據小于寄存器數據時才更新該寄存器,如果存儲器數據小于閾值寄存器中的值就判斷為負模極大值。正模極大值與負模極大值的過零點就是R波位置。存儲器和比較器分別采用ALTERA的RAM:1-PORT CORE和LPM_COMPARE CORE,這樣在綜合時能夠節約大量的邏輯單元,而且實現了較優的性能。
對信號在QuartusⅡ8.0下進行仿真分別得到小波變換模塊及檢測模塊的仿真波形圖。四級小波變換的功能仿真如圖5所示。圖5中dataout1_H,dataout1_L,dataout2_H,dataout2_L,dataout3_H,dataout3_L,data_out和dataout4_L分別為各級小波變換的高頻和低頻信息。

圖5 小波變換模塊的仿真結果
檢測模塊的仿真波形如圖6所示。由于QuartusⅡ存儲器不支持小數數據的存儲,因此ecg_q為原始的心電數據擴大1 000倍,保證原始比例不變的待處理的心電數據,r為檢測出的QRS波群。

圖6 檢測模塊的仿真波形
選用Altera公司的FPGA CycloneⅡ的EP2C20F484C7得到整個小波變換模塊和檢測模塊的資源占用情況如圖7所示。

圖7 系統資源占用率
判斷出QRS波群對后續的心電診斷有著重要意義,QRS波群是心電失常診斷的重要的依據,只有在QRS波群確定后才有可能進一步檢測和分析心電的其他細節信息。因此,后續的心電診斷的研究是以QRS波群為依據的。
由仿真結果可以得出,所設計的以FPGA為核心的心電檢測系統,利用FPGA內部豐富的硬件資源,把心電數據信號的小波變換及檢測都放在FPGA內來實現,不但提高了系統整體的性能,而且對于心電儀的便攜化發展具有重要意義。
[1]王立傳,陳裕泉,潘敏.QRS波檢測技術的進展[J].航天醫學與醫學工程,2006,19(3):231-234.
[2]楊秀增.基于FPGA的心電信號處理研究與實現[D].桂林:廣西師范大學,2007.
[3]陳郁韓.FPGA在醫療設備中的應用研究[J].醫療衛生裝備,2007,28(1):122-124.
[4]王文,孫世雙,周勇.基于小波變換的心電圖QRS波群檢測方法研究[J].北京生物醫學工程,2002,4(21):241-247.
[5]張和君,張躍.基于小波變換的心電信號綜合檢測算法研究[J].計算機工程與設計,2006,27(20):245-247.
[6]邱雅竹,馮俊.基于小波變換的心電信號檢測新方法[J].四川師范大學學報:自然科學版,2005,28(3):270-272.
[7]林薇,吳效明,朱維宗,等.應用小波變換模極大值檢測ECG特征點[J].醫療衛生裝備,2004.10(10):149-151.
[8]李立策,郭興明,王景燦,等.基于DSP的心電信號R波檢測新算法[J].微計算機信息,2008,24(11):3831-3834.
[9]唐雅青.心電信號的自動檢測與分析[D].上海:上海交通大學,2007.
[10]孫長江.基于小波變換的心電檢測系統及其FPGA實現[D].哈爾濱:哈爾濱工程大學,2007.