何華光,陳妮,趙進(jìn)創(chuàng)
(廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,南寧530004)
何華光(工程師),研究方向?yàn)榍度胧较到y(tǒng)應(yīng)用;陳妮(碩士研究生),研究方向?yàn)橛?jì)算機(jī)通信與信息系統(tǒng);趙進(jìn)創(chuàng)(教授),主要研究方向?yàn)槌上窦夹g(shù)、嵌入式系統(tǒng)應(yīng)用等。
電阻抗成像技術(shù)是利用生物組織與器官的電特性及其變化,提取與人體生理、病理狀況相關(guān)的生物醫(yī)學(xué)信息的一種無損傷檢測(cè)技術(shù),是當(dāng)今生物醫(yī)學(xué)工程研究的熱點(diǎn)課題之一[1]。電阻抗成像硬件系統(tǒng)中,濾波器是重要的組成部分。隨著數(shù)字信號(hào)處理技術(shù)的發(fā)展,數(shù)字濾波器與傳統(tǒng)的模擬濾波器相比具有如下優(yōu)點(diǎn):具有高精度和真正的線性相位響應(yīng);性能穩(wěn)定,不受電壓漂移、溫度改變的影響;數(shù)字濾波后的數(shù)據(jù)可以存儲(chǔ)起來以備將來觀測(cè)與分析;濾波器參數(shù)的改變一般不需要改動(dòng)硬件電路,降低了硬件設(shè)計(jì)的風(fēng)險(xiǎn)。因此,數(shù)字濾波器非常適合應(yīng)用在電阻抗成像硬件系統(tǒng)中。
目前,數(shù)字濾波器主要是基于DSP和FPGA來實(shí)現(xiàn)的,可以實(shí)現(xiàn)非常高速的數(shù)字濾波器。但是,這種實(shí)現(xiàn)方式增加了整個(gè)電阻抗成像硬件系統(tǒng)的硬件開銷,成本較高,而ARM處理器成本低、性能高。本文提出了基于ARM處理器的FIR低通濾波器方案,具有成本低、功耗低、開發(fā)周期短等特點(diǎn),并且可以在實(shí)現(xiàn)數(shù)字濾波的同時(shí)發(fā)揮ARM處理器強(qiáng)大的控制功能,完成系統(tǒng)中其他的控制任務(wù)。
電阻抗成像硬件系統(tǒng)廣泛使用具有線性相位的FIR濾波器,FIR濾波器的輸入、輸出可用下式描述:
式(1)中,h(k)(k=0,1,…,N-1)為濾波器的沖擊響應(yīng)系數(shù);H(z)是濾波器的傳遞函數(shù);N是濾波器長度,即濾波器系數(shù)的數(shù)目;x(k)是第k時(shí)刻的輸入樣本值。式(2)是FIR濾波器的時(shí)域差分方程??梢钥闯?FIR濾波器由乘累加器構(gòu)成。其設(shè)計(jì)方法主要有窗函數(shù)法、頻率抽樣法和最佳方法[2]。
FIR數(shù)字濾波器設(shè)計(jì)的主要問題是,對(duì)期望的濾波器或理想頻率響應(yīng)做逼近。最佳方法是指,基于切比雪夫逼近理論和最佳一致逼近法所提出的一種計(jì)算機(jī)輔助設(shè)計(jì)方法。這種方法可以獲得性能優(yōu)良的濾波器阻帶和通帶特性,并且在相同技術(shù)指標(biāo)條件下,可以得到更低階的濾波器。這對(duì)減少處理器的運(yùn)算量、提高濾波器的實(shí)時(shí)性是非常重要的。最佳方法設(shè)計(jì)濾波器的一般步驟如下:
①根據(jù)實(shí)際項(xiàng)目要求確定濾波器的技術(shù)規(guī)范,例如截止頻率、通帶波紋等;
②根據(jù)濾波器的技術(shù)規(guī)范,估算所需的濾波器長度N值;
③使用最佳方法設(shè)計(jì)濾波器,并通過Matlab計(jì)算濾波器系數(shù);
④通過Matlab仿真,檢查設(shè)計(jì)的濾波器是否符合期望的技術(shù)規(guī)范。
圖1是一個(gè)典型電阻抗成像硬件系統(tǒng)的部分結(jié)構(gòu)框圖。以此為例,詳細(xì)地介紹使用最佳方法設(shè)計(jì)FIR濾波器的過程。
圖1 電阻抗成像硬件系統(tǒng)部分結(jié)構(gòu)框圖
系統(tǒng)使用25 kHz的激勵(lì)信號(hào),電極對(duì)上的差分信號(hào)經(jīng)過調(diào)理后送入模擬器件構(gòu)成的相敏解調(diào)電路。解調(diào)得到的信號(hào)主要包含50 kHz的諧波信號(hào)和一個(gè)直流分量,其中直流分量是成像需要的數(shù)據(jù)。基于ARM處理器的FIR低通濾波器用于濾去50 kHz的諧波信號(hào)和其他干擾信號(hào),獲得成像所需的直流分量。根據(jù)采樣定理,要正確識(shí)別50 kHz的信號(hào),A/D轉(zhuǎn)換器的采樣率至少為100 ksps。為增強(qiáng)可靠性,濾波器使用150 kHz的抽樣頻率。經(jīng)綜合考慮,確定的濾波器技術(shù)規(guī)范如表1所列。
表1 FIR低通濾波器技術(shù)規(guī)范
對(duì)于FIR低通濾波器,濾波器長度 N可以由下面的經(jīng)驗(yàn)公式估算出來[2]:
其中,ΔF是用抽樣頻率歸一化的過渡帶寬,δP為通帶誤差,δS為阻帶誤差。利用Matlab的remezord函數(shù)可以使得計(jì)算簡化,所使用的M文件如下所示:
根據(jù)表1所列的技術(shù)規(guī)范可計(jì)算出 N=87,該值通常比實(shí)際值要略小些,可以將估算出來的N值增加1或2。一般來說,N值越大,可以獲得性能越好的濾波器,但是處理器的運(yùn)算時(shí)間也就相應(yīng)地變長。因此,必須在濾波器的運(yùn)算時(shí)間和濾波器的技術(shù)規(guī)范之間進(jìn)行折中處理,根據(jù)實(shí)際要求對(duì)N值進(jìn)行調(diào)整。
利用Matlab的remezord函數(shù)和估算的濾波器長度N,以最佳方法設(shè)計(jì)濾波器。通過Matlab仿真得到的濾波器幅頻特性如圖2所示。
圖2 最佳方法設(shè)計(jì)的濾波器幅頻特性
從圖2中可以看出,設(shè)計(jì)的濾波器通帶為0~1 kHz,阻帶衰減為46 dB,與表1所列技術(shù)規(guī)范基本相符。由此可見,使用最佳方法可以設(shè)計(jì)出能夠很好地符合預(yù)期技術(shù)規(guī)范的濾波器。
ARM公司推出的Cortex-M3處理器具有如下特點(diǎn):
◆采用哈佛結(jié)構(gòu),具有分支預(yù)測(cè)功能的三級(jí)流水線;
◆32位硬件除法和單周期乘法,在進(jìn)行乘、乘加運(yùn)算時(shí)已逼近DSP的性能;
◆具有很高的性價(jià)比和極低的功耗,能耗比達(dá)到0.06 mW/MHz;
◆具有豐富的片上資源,集成12位的A/D轉(zhuǎn)換器、64 KB的RAM和512 KB的程序存儲(chǔ)器。
因此,該處理器非常適合應(yīng)用在電阻抗成像系統(tǒng)中。
從式(1)可知,FIR濾波器的實(shí)現(xiàn)就是濾波器的沖擊響應(yīng)系數(shù)與輸入樣本值的乘積和。使用最佳方法計(jì)算的濾波器系數(shù)都是非常精確的小數(shù),為了提高定點(diǎn)ARM處理器的運(yùn)算速度,需要將濾波器的系數(shù)轉(zhuǎn)換為整數(shù)并使用有限的二進(jìn)制位數(shù)表示。這就引入了系數(shù)量化誤差,這種誤差使得濾波器的頻率響應(yīng)偏離預(yù)期的響應(yīng)。對(duì)于橫向結(jié)構(gòu)的FIR濾波器,在期望的誤差范圍內(nèi)用多少位二進(jìn)制數(shù)表示濾波器的系數(shù),可以由式(5)估算[2]:
其中,E(ω)為期望的頻響誤差;N為濾波器長度;B表示濾波器系數(shù)的位數(shù),值越大量化誤差越小。對(duì)于使用量化后系數(shù)的濾波器,其阻帶衰減 AMAX可由式(6)表示[2]:
為減小誤差,同時(shí)避免運(yùn)算過程的溢出,本文使用16位字長表示濾波器的系數(shù)。將B=16、N=87代入式(5)計(jì)算出E(ω)≈0.001,將 AS=0.1代入式(4)可得 δS≈0.005 6,將以上結(jié)果代入式(6)得到AMAX≈43.2 dB。與濾波器期望的45 dB相比,誤差較小。因此,使用16位字長表示濾波器系數(shù)是有效的,能夠滿足系統(tǒng)要求。
濾波器的實(shí)現(xiàn)采用了批處理的方式,即先將數(shù)據(jù)采樣放到內(nèi)存中,數(shù)據(jù)采樣完畢之后再對(duì)整個(gè)數(shù)據(jù)進(jìn)行低通濾波。在Cortex-M3處理器中,式(1)中差分方程的計(jì)算將在32位累加器執(zhí)行,利用調(diào)整指令序列的方法[4]可提高流水線的效率,充分發(fā)揮了ARM的32位內(nèi)核優(yōu)勢(shì)。由于濾波器的系數(shù)比較多,采用匯編語言及塊算法[5]編寫濾波器程序,以提高程序的運(yùn)行效率。塊算法的核心是將裝載進(jìn)寄存器的數(shù)據(jù)反復(fù)使用,每次處理固定數(shù)目的數(shù)據(jù)塊,極大地減少了比較耗時(shí)的數(shù)據(jù)裝載和存儲(chǔ)操作。本文使用4×4的塊濾波器,根據(jù)算法要求,濾波器的系數(shù)和輸出數(shù)據(jù)必須是4的倍數(shù)。為了驗(yàn)證濾波器工作的效果,假設(shè)相敏解調(diào)電路產(chǎn)生如下波形信號(hào):
該信號(hào)包含0.5 V的直流信號(hào)、50 kHz的諧波信號(hào)和人為加入的30 kHz的干擾噪聲,其波形如圖3所示。
圖3 濾波器的輸入信號(hào)
模/數(shù)轉(zhuǎn)換器以150 ksps的采樣率對(duì)該波形取樣,獲取的數(shù)據(jù)存入數(shù)組中。在RealView MDK開發(fā)工具中編寫程序并下載到ARM處理器中運(yùn)行,將濾波器輸出的信號(hào)通過串口傳到PC機(jī)后,繪制的圖形如圖4所示。
圖4 濾波器的輸出信號(hào)
由圖4可見,設(shè)計(jì)的濾波器可以有效地濾除50 kHz的諧波信號(hào)和30 kHz的干擾信號(hào),得到誤差較小的直流分量,滿足電阻抗成像系統(tǒng)的要求。具體數(shù)據(jù)如表2所列。
表2 濾波器的運(yùn)行數(shù)據(jù)
FIR數(shù)字濾波器憑借優(yōu)秀的性能,在數(shù)字信號(hào)處理的各個(gè)領(lǐng)域發(fā)揮著越來越重要的作用。本文介紹了使用最佳方法和Matlab設(shè)計(jì)FIR低通濾波器的方法,以及在ARM上的實(shí)現(xiàn)過程,為數(shù)字信號(hào)處理在嵌入式處理器上實(shí)現(xiàn)打下了良好基礎(chǔ)。該濾波器應(yīng)用于電阻抗成像系統(tǒng)中可以減小硬件電路開銷,有效地提高系統(tǒng)的性價(jià)比。
[1]Brian Brown H.Medical impedance tomography and processimpedance tomography[J].Meas.Sci.Technol,2001,12(8).991-996.
[2]Emmanuel ifeachor C,Barrie Jervis W.數(shù)字信號(hào)處理實(shí)踐方法[M].羅鵬飛,等譯.2版.北京:電子工業(yè)出版社,2004.
[3]Joseph Yiu.ARM Cortex-M3權(quán)威指南[M].宋巖,譯.北京:北京航空航天大學(xué)出版社,2009.
[4]邱鐵,西方,遲宗正.ARM流水線關(guān)鍵技術(shù)分析與代碼優(yōu)化[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(3):24-27.
[5]Andrew Sloss N,等.ARM嵌入式系統(tǒng)開發(fā)——軟件設(shè)計(jì)與優(yōu)化[M].沈建華,譯.北京:北京航空航天大學(xué)出版社,2005.