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