劉 媛 , 高振斌
(河北工業(yè)大學(xué) 天 津 3 00401)
心電信號(hào)是人類最早研究并應(yīng)用于醫(yī)學(xué)臨床的生物電信號(hào)之一,與其他生物電信號(hào)相比,它更易于檢測(cè)并具有較直觀的規(guī)律性。心電圖的QRS波的準(zhǔn)確檢測(cè)一直是心電信號(hào)分析檢測(cè)的難點(diǎn),而提取有效的模式特征更是其關(guān)鍵所在。QRS波的檢測(cè)算法已有多種[1],而且理論研究也比較成熟,其中以小波變換為核心,利用小波變換對(duì)奇異值的閾值檢測(cè)特性識(shí)別QRS波的算法檢測(cè)率較高[2]。但是由于小波變換計(jì)算量大且有多次重復(fù)運(yùn)算,不利于硬件的實(shí)時(shí)實(shí)現(xiàn),因此對(duì)于算法的硬件實(shí)現(xiàn)的研究則相對(duì)比較少。如今,F(xiàn)PGA正處于革命性的數(shù)字信號(hào)處理技術(shù)的前沿?,F(xiàn)在的FPGA系列都提供了以低系統(tǒng)開銷、低成本實(shí)現(xiàn)高速乘-累超前進(jìn)位鏈的DSP算法[3]。所有這些的發(fā)展使的心電信號(hào)的處理的FPGA實(shí)現(xiàn)成為可能[4]。因此本文利用FPGA實(shí)現(xiàn)了基于小波變換的QRS波群的檢測(cè)。
近年來發(fā)展的小波變換技術(shù),可同時(shí)進(jìn)行時(shí)域和頻域分析,具有時(shí)頻局部化和多分辨率特性,特別適于處理非平穩(wěn)信號(hào),而心電信號(hào)多是時(shí)變信號(hào),因而小波變換在提高QRS波檢測(cè)算法方面取得了較好的結(jié)果。由于小波變換能代表信號(hào)不同頻道上的分量,QRS波群的能量大多集中在23尺度和24尺度上,而運(yùn)動(dòng)偽跡、基線漂移等能量大都集中在大于25的尺度上。因此在處理心電信號(hào)時(shí),通常取21到24尺度上的小波變換結(jié)果進(jìn)行分析[4-5]。文獻(xiàn)[6]利用二次樣條小波作為小波基對(duì)心電信號(hào)對(duì)信號(hào)按Mallat算法[7]進(jìn)行四級(jí)小波變換,然后確定出小波變換的模極大值對(duì),它將收斂于信號(hào)的奇異點(diǎn)[8],即QRS波群,過零點(diǎn)就是R波波峰位置。算法采用MIT/BIH標(biāo)準(zhǔn)[9]心律失常數(shù)據(jù)庫進(jìn)行測(cè)試,取得較好的效果。但小波變換法計(jì)算量很大,實(shí)時(shí)應(yīng)用較難,隨著FPGA的發(fā)展,這種方法有了長(zhǎng)遠(yuǎn)的發(fā)展前景,同時(shí)使其成為了可能。
基于小波變換的QRS波檢測(cè)算法給出其具體實(shí)現(xiàn)方案。根據(jù)以上分析,在硬件平臺(tái)上實(shí)現(xiàn)基于小波變換的QRS波檢測(cè)算法主要分為小波變換部分與QRS波檢測(cè)部分2部分實(shí)現(xiàn)[10]。具體算法的實(shí)現(xiàn)主要分如下4個(gè)步驟:1)對(duì)心電數(shù)據(jù)進(jìn)行小波變換得到各級(jí)小波系數(shù);2)取第四級(jí)小波變換的小波系數(shù)確定其模正極大值與負(fù)極大值的閾值;3)確定第四級(jí)小波系數(shù)的正模極大值及負(fù)模極大值,如果在正模極大值的附近存在負(fù)模極大值則確定出QRS波群,否則刪除該極值點(diǎn)。4)產(chǎn)生代表QRS波群的信號(hào)。這樣就完成了整個(gè)小波變換及檢測(cè)。
選用Altera公司的FPGA CycloneⅡEP2C20F484C7完成整個(gè)設(shè)計(jì),基于系統(tǒng)硬件,需要充分考慮小波變換的結(jié)構(gòu)和檢測(cè)算法的結(jié)構(gòu)。下面主要對(duì)小波變換結(jié)構(gòu)和檢測(cè)算法結(jié)構(gòu)進(jìn)行討論,并詳細(xì)論述各部分的FPGA實(shí)現(xiàn)。
采用B-樣條小波作為小波基函數(shù),對(duì)心電信號(hào)進(jìn)行四級(jí)小波變換。因此小波變換過程的流程分4步驟,而且整個(gè)數(shù)據(jù)處理都是單流向的,即每一級(jí)小波變換的低頻輸出作為下一級(jí)小波變換的輸入,因此采用流水線的設(shè)計(jì)方法可提高系統(tǒng)工作效率。小波變換模塊的實(shí)現(xiàn)框圖如圖1所示。
圖1 小波變換模塊的實(shí)現(xiàn)框圖
信號(hào)通過高通濾波器和低通濾波器后分別得到高頻信號(hào)和低頻信號(hào),來表示信號(hào)的細(xì)節(jié)部分和概貌部分。由于通過濾波器后的輸出帶寬減半,所以為了防止信息的丟失,采樣頻率也減半,因此在濾波后加入的二抽取的模塊,每一級(jí)小波變換后的低頻部分作為后一級(jí)的輸入數(shù)據(jù)繼續(xù)進(jìn)行下一層的分解。每一級(jí)的小波變換模塊由小波變換子模塊transform組成。小波變換子模塊中利用乘法器與累加器來模擬濾波器結(jié)構(gòu)對(duì)心電數(shù)據(jù)進(jìn)行二進(jìn)小波變換。小波變換子模塊的實(shí)現(xiàn)框圖如圖2所示。
圖2 小波變換子模塊的實(shí)現(xiàn)框圖
圖2中,心電數(shù)據(jù)與濾波器系數(shù)放入2個(gè)RAM中,RAM利用Altera公司提供的RAM:1-PORT core,由于2個(gè)RAM中的數(shù)據(jù)同時(shí)取出,因此共用地址信號(hào)。乘法器采用ALTERA公司的LPM_MULT CORE完成心電數(shù)據(jù)與濾波器系數(shù)的相乘,大大節(jié)約了LE資源,而且獲得了很好的性能,乘法器采用一級(jí)流水線結(jié)構(gòu)。累加器利用ALTERA公司提供的ALTACCUMULATE實(shí)現(xiàn)在濾波中對(duì)乘法器生成的乘積結(jié)果進(jìn)行累加,將生成的結(jié)果通過寄存器輸出,并在一組數(shù)據(jù)處理完畢后接收到累加器清零信號(hào)清零,為下一組數(shù)據(jù)處理做準(zhǔn)備。二抽取模塊的功能是對(duì)濾波器的輸出數(shù)據(jù)進(jìn)行抽取,即每?jī)蓚€(gè)數(shù)據(jù)只取后一個(gè)數(shù)據(jù),組成長(zhǎng)度縮短一半的輸出數(shù)據(jù)??刂茊卧饕脕砩蓪?duì)輸入數(shù)據(jù)RAM與系數(shù)RAM進(jìn)行訪問時(shí)所需的地址addr、乘法器的使能控制信號(hào)mult_en、累加器的使能addr_en、清零控制信號(hào)addr_clear和寄存器與抽取模塊的使能信號(hào)d_en。小波變換子模塊的功能仿真結(jié)果如圖3所示。
圖3 小波變換子模塊仿真結(jié)果
圖3中的dataout為小波變換子模塊的輸出,可以看到在信號(hào)輸入小波子模塊后,經(jīng)過子模塊內(nèi)部的抽取,每輸入兩個(gè)數(shù)據(jù),在模塊的輸出端才會(huì)輸出一個(gè)小波變換的結(jié)果,由于對(duì)乘法器的輸出結(jié)果進(jìn)行了截取以節(jié)省片內(nèi)資源,因此乘法器的輸出mult_q有一定的運(yùn)算量化誤差。
根據(jù)小波變換的理論,信號(hào)的奇異點(diǎn)對(duì)應(yīng)于其小波變換的一個(gè)正模極大值和一個(gè)負(fù)模極大值對(duì),其位置對(duì)應(yīng)于正、負(fù)模極大值的過零點(diǎn)。具體算法是先判斷出正模極大值與負(fù)模極大值的閾值,若小波變換后的結(jié)果大于或小于閾值則判斷為正模極大值與負(fù)模極大值,找出對(duì)應(yīng)的模極值對(duì),判斷為QRS波群。檢測(cè)模塊的框圖如圖4所示。
圖4 檢測(cè)模塊的實(shí)現(xiàn)框圖
首先設(shè)置寄存器的初始值為0,把輸入的小波分解后的數(shù)據(jù)存入存儲(chǔ)器中。輸入的小波分解后的數(shù)據(jù)與寄存器的值相比,如果大于寄存器的值就更新該寄存器,當(dāng)檢測(cè)信號(hào)有效時(shí),即en=1時(shí),停止更新,把寄存器中的數(shù)據(jù)的1/3做為閾值[10]存入閾值寄存器中,同時(shí)把存儲(chǔ)器中的數(shù)據(jù)輸出與該閾值相比,如果大于該閾值則判斷為正模極大值。同理在尋找負(fù)模極大值時(shí)的原理同上,只不過小波變換后的數(shù)據(jù)小于寄存器數(shù)據(jù)時(shí)才更新該寄存器,如果存儲(chǔ)器數(shù)據(jù)小于閾值寄存器中的值就判斷為負(fù)模極大值。正模極大值與負(fù)模極大值的過零點(diǎn)就是R波位置。存儲(chǔ)器和比較器分別采用ALTERA的RAM:1-PORT CORE和LPM_COMPARE CORE,這樣在綜合時(shí)能夠節(jié)約大量的邏輯單元,而且實(shí)現(xiàn)了較優(yōu)的性能。
對(duì)信號(hào)在QuartusⅡ8.0下進(jìn)行仿真分別得到小波變換模塊及檢測(cè)模塊的仿真波形圖。四級(jí)小波變換的功能仿真如圖5所示。圖5中dataout1_H,dataout1_L,dataout2_H,dataout2_L,dataout3_H,dataout3_L,data_out和dataout4_L分別為各級(jí)小波變換的高頻和低頻信息。
圖5 小波變換模塊的仿真結(jié)果
檢測(cè)模塊的仿真波形如圖6所示。由于QuartusⅡ存儲(chǔ)器不支持小數(shù)數(shù)據(jù)的存儲(chǔ),因此ecg_q為原始的心電數(shù)據(jù)擴(kuò)大1 000倍,保證原始比例不變的待處理的心電數(shù)據(jù),r為檢測(cè)出的QRS波群。
圖6 檢測(cè)模塊的仿真波形
選用Altera公司的FPGA CycloneⅡ的EP2C20F484C7得到整個(gè)小波變換模塊和檢測(cè)模塊的資源占用情況如圖7所示。
圖7 系統(tǒng)資源占用率
判斷出QRS波群對(duì)后續(xù)的心電診斷有著重要意義,QRS波群是心電失常診斷的重要的依據(jù),只有在QRS波群確定后才有可能進(jìn)一步檢測(cè)和分析心電的其他細(xì)節(jié)信息。因此,后續(xù)的心電診斷的研究是以QRS波群為依據(jù)的。
由仿真結(jié)果可以得出,所設(shè)計(jì)的以FPGA為核心的心電檢測(cè)系統(tǒng),利用FPGA內(nèi)部豐富的硬件資源,把心電數(shù)據(jù)信號(hào)的小波變換及檢測(cè)都放在FPGA內(nèi)來實(shí)現(xiàn),不但提高了系統(tǒng)整體的性能,而且對(duì)于心電儀的便攜化發(fā)展具有重要意義。
[1]王立傳,陳裕泉,潘敏.QRS波檢測(cè)技術(shù)的進(jìn)展[J].航天醫(yī)學(xué)與醫(yī)學(xué)工程,2006,19(3):231-234.
[2]楊秀增.基于FPGA的心電信號(hào)處理研究與實(shí)現(xiàn)[D].桂林:廣西師范大學(xué),2007.
[3]陳郁韓.FPGA在醫(yī)療設(shè)備中的應(yīng)用研究[J].醫(yī)療衛(wèi)生裝備,2007,28(1):122-124.
[4]王文,孫世雙,周勇.基于小波變換的心電圖QRS波群檢測(cè)方法研究[J].北京生物醫(yī)學(xué)工程,2002,4(21):241-247.
[5]張和君,張躍.基于小波變換的心電信號(hào)綜合檢測(cè)算法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(20):245-247.
[6]邱雅竹,馮俊.基于小波變換的心電信號(hào)檢測(cè)新方法[J].四川師范大學(xué)學(xué)報(bào):自然科學(xué)版,2005,28(3):270-272.
[7]林薇,吳效明,朱維宗,等.應(yīng)用小波變換模極大值檢測(cè)ECG特征點(diǎn)[J].醫(yī)療衛(wèi)生裝備,2004.10(10):149-151.
[8]李立策,郭興明,王景燦,等.基于DSP的心電信號(hào)R波檢測(cè)新算法[J].微計(jì)算機(jī)信息,2008,24(11):3831-3834.
[9]唐雅青.心電信號(hào)的自動(dòng)檢測(cè)與分析[D].上海:上海交通大學(xué),2007.
[10]孫長(zhǎng)江.基于小波變換的心電檢測(cè)系統(tǒng)及其FPGA實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2007.