王靜,張大慧,張宏
(浙江大學生物醫(yī)學工程與儀器科學學院生物醫(yī)學工程系,浙江杭州310027)
心血管系統(tǒng)疾病是當今危害人類健康的主要疾病之一。心電信號的實時分析是診斷心血管疾病的重要方法。QRS復合波的檢測是心電自動分析的關(guān)鍵環(huán)節(jié)。與其他波形分量相比,QRS波具有較高的幅值和特定的頻率范圍,典型QRS波群的頻率分量約在10 Hz~25 Hz之間[1]。心電信號是一種不平穩(wěn)信號,并受到基線漂移(baseline wander)、肌電噪聲(muscle artifact)、電極移動噪聲(electrode motion artifact)等多種因素的影響,因此,QRS波檢測必須克服各種干擾的影響,才能正確提取出波形特征。
本設計采用離散小波變換算法,其準確率高,但算法計算復雜,對處理器的性能有較高要求。FPGA的應用解決了這一難題。FPGA具有全軟件和全硬件的用戶可定制性和可重配置性,可以根據(jù)需要靈活改變FPGA中構(gòu)成DSP系統(tǒng)的硬件結(jié)構(gòu)來改變系統(tǒng)的功能。
系統(tǒng)采用離散小波變換(DWT)算法,將心電信號分解到不同的尺度,其實質(zhì)是多尺度的帶通濾波。本文采用二次樣條小波(Quadratic Spline Wavelet)作為母小波,基于二次樣條小波的小波變換離散的低通(H(ω))和高通(G(ω))濾波器分別是[2]:
可以看出,二次樣條小波對應的系數(shù)簡單,可以用2n(n∈整數(shù))的多項式表示。在FPGA中,這類運算通過移位和加法實現(xiàn),不必使用資源耗費量更大的乘法器[3]。
人體心電信號通過合適的電極經(jīng)過右腿驅(qū)動電路進入系統(tǒng),經(jīng)放大、濾波等環(huán)節(jié)之后,通過ADC轉(zhuǎn)換成數(shù)字信號進入FPGA,進行數(shù)字信號處理(DSP)。DSP部分由FIFO數(shù)據(jù)存儲、DWT變換、閾值檢測、單尺度過零點(Zero Crossing)檢測、檢測合成、心率及R波檢測、結(jié)果顯示等7個模塊構(gòu)成,整個DSP部分由狀態(tài)機(State Machine)實現(xiàn)系統(tǒng)控制。信號處理算法通過FPGA開發(fā)工具DSP Builder實現(xiàn)。FPGA片上數(shù)字信號處理結(jié)構(gòu)如圖1所示。
FIFO用來緩存由ADC采集的原始心電數(shù)據(jù)。FIFO的讀寫時鐘獨立設置,寫時鐘頻率與ADC采樣率相同,為360 Hz;讀時鐘與DSP處理速度相適應,為50 MHz。設置不同的FIFO讀寫時鐘,使得AD采樣部分和后續(xù)的處理部分可以按照各自時鐘獨立進行,不受干擾,保證了系統(tǒng)的實時性。
心電信號頻率范圍通常在0.05 Hz~80 Hz[4]。根據(jù)ECG信號、噪聲和偽信號的能量譜分布和表1可知,QRS復合波分量主要分布于第1~4尺度上,高于尺度4的分量中,QRS波的分量顯著減少,同時運動偽跡和噪聲顯著增加。
表1 不同尺度對應濾波器組的3分貝帶寬
設計采用尺度1~4進行數(shù)據(jù)處理。原始信號經(jīng)過4組高、低通濾波器組進行濾波,得到信號的1~4尺度的頻率分量,如圖2所示。
如圖3所示,原始波形是一組類QRS的波形,WF1~WF4分別是對原始信號進行1~4尺度小波變換得到的波形[5]??梢?,原始波形的突變和回落會在4個尺度上產(chǎn)生一對正極大值-負極小值對(簡稱極值對)。利用極值對可以成功地將QRS波和肌電、工頻、基漂等干擾區(qū)別開,尤其是對于由信號飽和產(chǎn)生的偽跡,由于其只能產(chǎn)生孤立的模極大值列,因而能有效地將其剔除。由于患者在同一尺度的不同時刻和不同尺度上的極大值和極小值都不一定相同,所以為檢測所設定的閾值也是動態(tài)的,J時刻的最大值、最小值閾值Tmax[J]、Tmin[J]為含當前最值M[J]和前一次最值M[J-1]的多項式:
由圖3看出,R波發(fā)生的位置恰好為4個尺度的極大、極小值之間的過零點位置,因此,用1標示出這個過零點位置,其他位置均為0。過零點會出現(xiàn)在兩種情況中:(1)一個極大值緊跟一個極小值;(2)一個極小值緊跟一個極大值。兩種情況出現(xiàn)其一即認為該位置存在過零點。當然,如果信號被高頻噪聲干擾,則在低尺度上噪聲和無關(guān)信號量影響較大,這時可以先從頻率較低的較大尺度(第四尺度)上找到極值對,然后在其附近逐級向較小尺度上搜索極值對,檢測過零點并最終獲得4個由0、1組成的序列。1~4尺度DWT變換及各自的過零點檢測結(jié)果如圖4所示。
有研究者認為,只在尺度2或尺度3上進行過零點檢測即能代表QRS波的位置[6],但是為了盡可能減少因噪聲干擾而產(chǎn)生的假陽性點,本設計中考慮在尺度1~4中,至少在3個尺度上均存在過零點,才表示這個位置可能有一個QRS波出現(xiàn),其他情況均為噪聲影響。因此,需要對3個尺度的過零點進行與(and)操作。從圖3中可以看出,隨著尺度數(shù)增加,過零點的位置有所延遲,且高尺度的信號被延遲更多。理論上,如果原始波形是對稱的,則尺度j處過零點相對于原始波形延遲2j-1-1個周期(處理時鐘)[2],不對稱波形(如圖3中原始波形的第二個峰值處)帶來的延遲比對稱波形多。本設計中根據(jù)理論值和實驗情況,得出各尺度的延遲如表2所示。其中理論延遲為原始波形對稱的情況下產(chǎn)生的延遲,系統(tǒng)延遲包括波形不對稱造成的延遲時間增加值,總延遲時鐘周期數(shù)為理論延遲和系統(tǒng)延遲的和。
表2 小波變換尺度1~4的延遲周期數(shù)
由于延遲的存在,要對4個尺度的0、1序列進行補償。補償過后的每3個序列進行與操作,所得結(jié)果再進行或(or)操作,得到一組0、1序列,1的位置即為信號中R波的位置,該序列配合心電采樣率即可獲得實驗者的心率。為提高算法的準確率,此處進行了序列優(yōu)化。考慮到人的心跳頻率不會超過300次/min,即在0.2 s時間窗內(nèi)不會有2個“1”出現(xiàn),因此如果檢測到在0.2 s時間窗內(nèi)出現(xiàn)了多于1個“1”,則保留第一次出現(xiàn)的“1”,其余位置均為0,借此去除大部分假陽性點。
DSP Builder狀態(tài)機根據(jù)FIFO中存儲數(shù)據(jù)的個數(shù)來實現(xiàn)系統(tǒng)的控制。具體控制方法為:初始狀態(tài)為NULL;當FIFO數(shù)據(jù)個數(shù)大于某個設定值N(由公式5可知,N至少為3)時,進入READ狀態(tài),讀取FIFO中的信號并使能后續(xù)模塊,進行信號處理;當FIFO中的數(shù)據(jù)個數(shù)等于0時,進入READY狀態(tài),禁止后續(xù)模塊以節(jié)省能耗,同時等待接收數(shù)據(jù)。當FIFO中數(shù)據(jù)個數(shù)大于0時再次進入READ狀態(tài),進行下一輪處理。由于顯示模塊需要隨時顯示結(jié)果,因此不被狀態(tài)機控制,也不會進入節(jié)能狀態(tài)。
采用MIT-BIH數(shù)據(jù)庫中第一組23個信號中的第一通道信號對算法進行檢測,每組信號截取90 000個采樣點約250 s信號進行實驗。表3列出了檢測出假陽性、假陰性點的8個檢測結(jié)果,其余15個文件中檢測準確率均為100%,表中未列出。表3中文件104有較多的肌電干擾,導致假陽性點較多;文件108患者有竇性心律失?,F(xiàn)象,基線漂移和噪聲也較嚴重。對MIT-BIH數(shù)據(jù)庫的23組信號進行檢測,準確率高達99.5%,驗證了本方法的準確性和可用性。
表3 MIT-BIH數(shù)據(jù)庫檢測結(jié)果
圖5記錄了6組特殊原始信號的檢測結(jié)果。除圖5(f)之外,其他信號都是采用MLⅡ(modified limb leadⅡ)導聯(lián)。從圖5中可以看出,本系統(tǒng)所應用的算法對含有基線漂移、噪聲、某種特定心臟疾病以及MLⅡ?qū)?lián)和modified lead V5導聯(lián)的心電信號,都能夠正確檢測出其QRS復合波的位置,具有較高的魯棒性。
圖5(a)~圖5(f)的6組圖中,每組2個波形中,上面的波形表示原始數(shù)據(jù),下面幅值為1的脈沖表明QRS復合波的位置。圖5(a)信號取自文件121,有較嚴重的基線漂移;圖5(b)信號取自文件119,采集者有室性三聯(lián)律現(xiàn)象;圖5(c)信號取自文件114,信號被取反;圖5(d)信號取自文件111,信號中的噪聲較嚴重;圖5(e)信號取自文件108,有尖銳的P波;圖5(f)信號取自文件104,采用了與其他信號不同的校正的V5導聯(lián)。
本文所設計的基于FPGA的實時QRS波檢測系統(tǒng),延時T主要由3個部分組成:基于采樣頻率的采樣延時Ts、基于FPGA時鐘的信號處理延時Tp和顯示延時Td。如式(5)所示:
由以上分析可知,采樣延時Ts是延時的主要因素。如果要進一步提高系統(tǒng)的實時性,可以適當提高信號的采樣頻率(各尺度的3 db帶寬會隨采樣率變化)。但從理論上講,5.56 ms的延時人眼基本無法分辨,360 Hz的采樣頻率對于QRS波檢測的實時系統(tǒng)已經(jīng)足夠了。
長期以來,小波變換算法的復雜性所帶來的大運算量和高成本限制了其在實時數(shù)字信號處理領域的廣泛應用,F(xiàn)PGA的應用解決了這一難題。FPGA構(gòu)成的DSP模塊采用硬件邏輯實現(xiàn),節(jié)省了軟件系統(tǒng)中處理器執(zhí)行指令流所消耗的時間。一個采樣點的信號處理在幾個處理時鐘周期中完成,而采樣時鐘和處理時鐘獨立的結(jié)構(gòu),將信號采樣和信號處理過程區(qū)分開來,使得信號處理過程的延時能夠完全控制在一個采樣周期之內(nèi),為心電信號的實時檢測提供了保證。此外,利用FPGA內(nèi)部豐富的硬件資源和硬件可定制性,將整個信號處理系統(tǒng)在一個FPGA芯片上實現(xiàn),不但減小了電路的復雜度,降低了成本,方便了系統(tǒng)設計和調(diào)試,且提高了系統(tǒng)的整體性能。利用FPGA的可重構(gòu)特性,通過修改FPGA中的程序,能快速、方便地實現(xiàn)功能的升級、更新,能適應不同應用對處理性能和結(jié)構(gòu)的不同要求,為復雜數(shù)字信號處理提供了一個新的解決方案。
[1]KOHLER B U,HENNIG C,ORGLMEISTER R.The principles of software QRS detection-reviewing and comparing algorithms for detecting this important ECG waveform[J].IEEE Engineering in medicine and biology,2002,21(1):42-57.
[2]LI Cui Wei,ZHENG Chong Xun,TAI Chang Feng.Detection of ECG characteristic points using wavelet transforms[J].IEEE Transactions on biomedical engineering,1995,(41):21-28.
[3]Al-haj A M.An FPGA-based parallel distributed arithmetic implementation of the 1-D discrete wavelet transform[J].Informatica,2005,(29):241-247.
[4]王保華.生物醫(yī)學測量與儀器[M].上海:復旦大學出版社,2003.
[5]陳永利.動態(tài)心電自動分析中QRS復合波檢測算法研究[D].杭州:浙江大學,2006:21-36.
[6]熊沁,方祖祥,宋海浪,等.基于小波變換的QRS波實時檢測方法與實現(xiàn)[J].中國醫(yī)療器械,2007,31(4):242-244.