何華光,陳妮,趙進創
(廣西大學 計算機與電子信息學院,南寧530004)
何華光(工程師),研究方向為嵌入式系統應用;陳妮(碩士研究生),研究方向為計算機通信與信息系統;趙進創(教授),主要研究方向為成像技術、嵌入式系統應用等。
電阻抗成像技術是利用生物組織與器官的電特性及其變化,提取與人體生理、病理狀況相關的生物醫學信息的一種無損傷檢測技術,是當今生物醫學工程研究的熱點課題之一[1]。電阻抗成像硬件系統中,濾波器是重要的組成部分。隨著數字信號處理技術的發展,數字濾波器與傳統的模擬濾波器相比具有如下優點:具有高精度和真正的線性相位響應;性能穩定,不受電壓漂移、溫度改變的影響;數字濾波后的數據可以存儲起來以備將來觀測與分析;濾波器參數的改變一般不需要改動硬件電路,降低了硬件設計的風險。因此,數字濾波器非常適合應用在電阻抗成像硬件系統中。
目前,數字濾波器主要是基于DSP和FPGA來實現的,可以實現非常高速的數字濾波器。但是,這種實現方式增加了整個電阻抗成像硬件系統的硬件開銷,成本較高,而ARM處理器成本低、性能高。本文提出了基于ARM處理器的FIR低通濾波器方案,具有成本低、功耗低、開發周期短等特點,并且可以在實現數字濾波的同時發揮ARM處理器強大的控制功能,完成系統中其他的控制任務。
電阻抗成像硬件系統廣泛使用具有線性相位的FIR濾波器,FIR濾波器的輸入、輸出可用下式描述:

式(1)中,h(k)(k=0,1,…,N-1)為濾波器的沖擊響應系數;H(z)是濾波器的傳遞函數;N是濾波器長度,即濾波器系數的數目;x(k)是第k時刻的輸入樣本值。式(2)是FIR濾波器的時域差分方程??梢钥闯?FIR濾波器由乘累加器構成。其設計方法主要有窗函數法、頻率抽樣法和最佳方法[2]。
FIR數字濾波器設計的主要問題是,對期望的濾波器或理想頻率響應做逼近。最佳方法是指,基于切比雪夫逼近理論和最佳一致逼近法所提出的一種計算機輔助設計方法。這種方法可以獲得性能優良的濾波器阻帶和通帶特性,并且在相同技術指標條件下,可以得到更低階的濾波器。這對減少處理器的運算量、提高濾波器的實時性是非常重要的。最佳方法設計濾波器的一般步驟如下:
①根據實際項目要求確定濾波器的技術規范,例如截止頻率、通帶波紋等;
②根據濾波器的技術規范,估算所需的濾波器長度N值;
③使用最佳方法設計濾波器,并通過Matlab計算濾波器系數;
④通過Matlab仿真,檢查設計的濾波器是否符合期望的技術規范。
圖1是一個典型電阻抗成像硬件系統的部分結構框圖。以此為例,詳細地介紹使用最佳方法設計FIR濾波器的過程。

圖1 電阻抗成像硬件系統部分結構框圖
系統使用25 kHz的激勵信號,電極對上的差分信號經過調理后送入模擬器件構成的相敏解調電路。解調得到的信號主要包含50 kHz的諧波信號和一個直流分量,其中直流分量是成像需要的數據。基于ARM處理器的FIR低通濾波器用于濾去50 kHz的諧波信號和其他干擾信號,獲得成像所需的直流分量。根據采樣定理,要正確識別50 kHz的信號,A/D轉換器的采樣率至少為100 ksps。為增強可靠性,濾波器使用150 kHz的抽樣頻率。經綜合考慮,確定的濾波器技術規范如表1所列。

表1 FIR低通濾波器技術規范
對于FIR低通濾波器,濾波器長度 N可以由下面的經驗公式估算出來[2]:


其中,ΔF是用抽樣頻率歸一化的過渡帶寬,δP為通帶誤差,δS為阻帶誤差。利用Matlab的remezord函數可以使得計算簡化,所使用的M文件如下所示:

根據表1所列的技術規范可計算出 N=87,該值通常比實際值要略小些,可以將估算出來的N值增加1或2。一般來說,N值越大,可以獲得性能越好的濾波器,但是處理器的運算時間也就相應地變長。因此,必須在濾波器的運算時間和濾波器的技術規范之間進行折中處理,根據實際要求對N值進行調整。
利用Matlab的remezord函數和估算的濾波器長度N,以最佳方法設計濾波器。通過Matlab仿真得到的濾波器幅頻特性如圖2所示。

圖2 最佳方法設計的濾波器幅頻特性
從圖2中可以看出,設計的濾波器通帶為0~1 kHz,阻帶衰減為46 dB,與表1所列技術規范基本相符。由此可見,使用最佳方法可以設計出能夠很好地符合預期技術規范的濾波器。
ARM公司推出的Cortex-M3處理器具有如下特點:
◆采用哈佛結構,具有分支預測功能的三級流水線;
◆32位硬件除法和單周期乘法,在進行乘、乘加運算時已逼近DSP的性能;
◆具有很高的性價比和極低的功耗,能耗比達到0.06 mW/MHz;
◆具有豐富的片上資源,集成12位的A/D轉換器、64 KB的RAM和512 KB的程序存儲器。
因此,該處理器非常適合應用在電阻抗成像系統中。
從式(1)可知,FIR濾波器的實現就是濾波器的沖擊響應系數與輸入樣本值的乘積和。使用最佳方法計算的濾波器系數都是非常精確的小數,為了提高定點ARM處理器的運算速度,需要將濾波器的系數轉換為整數并使用有限的二進制位數表示。這就引入了系數量化誤差,這種誤差使得濾波器的頻率響應偏離預期的響應。對于橫向結構的FIR濾波器,在期望的誤差范圍內用多少位二進制數表示濾波器的系數,可以由式(5)估算[2]:

其中,E(ω)為期望的頻響誤差;N為濾波器長度;B表示濾波器系數的位數,值越大量化誤差越小。對于使用量化后系數的濾波器,其阻帶衰減 AMAX可由式(6)表示[2]:
為減小誤差,同時避免運算過程的溢出,本文使用16位字長表示濾波器的系數。將B=16、N=87代入式(5)計算出E(ω)≈0.001,將 AS=0.1代入式(4)可得 δS≈0.005 6,將以上結果代入式(6)得到AMAX≈43.2 dB。與濾波器期望的45 dB相比,誤差較小。因此,使用16位字長表示濾波器系數是有效的,能夠滿足系統要求。
濾波器的實現采用了批處理的方式,即先將數據采樣放到內存中,數據采樣完畢之后再對整個數據進行低通濾波。在Cortex-M3處理器中,式(1)中差分方程的計算將在32位累加器執行,利用調整指令序列的方法[4]可提高流水線的效率,充分發揮了ARM的32位內核優勢。由于濾波器的系數比較多,采用匯編語言及塊算法[5]編寫濾波器程序,以提高程序的運行效率。塊算法的核心是將裝載進寄存器的數據反復使用,每次處理固定數目的數據塊,極大地減少了比較耗時的數據裝載和存儲操作。本文使用4×4的塊濾波器,根據算法要求,濾波器的系數和輸出數據必須是4的倍數。為了驗證濾波器工作的效果,假設相敏解調電路產生如下波形信號:

該信號包含0.5 V的直流信號、50 kHz的諧波信號和人為加入的30 kHz的干擾噪聲,其波形如圖3所示。

圖3 濾波器的輸入信號
模/數轉換器以150 ksps的采樣率對該波形取樣,獲取的數據存入數組中。在RealView MDK開發工具中編寫程序并下載到ARM處理器中運行,將濾波器輸出的信號通過串口傳到PC機后,繪制的圖形如圖4所示。

圖4 濾波器的輸出信號
由圖4可見,設計的濾波器可以有效地濾除50 kHz的諧波信號和30 kHz的干擾信號,得到誤差較小的直流分量,滿足電阻抗成像系統的要求。具體數據如表2所列。

表2 濾波器的運行數據
FIR數字濾波器憑借優秀的性能,在數字信號處理的各個領域發揮著越來越重要的作用。本文介紹了使用最佳方法和Matlab設計FIR低通濾波器的方法,以及在ARM上的實現過程,為數字信號處理在嵌入式處理器上實現打下了良好基礎。該濾波器應用于電阻抗成像系統中可以減小硬件電路開銷,有效地提高系統的性價比。
[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.數字信號處理實踐方法[M].羅鵬飛,等譯.2版.北京:電子工業出版社,2004.
[3]Joseph Yiu.ARM Cortex-M3權威指南[M].宋巖,譯.北京:北京航空航天大學出版社,2009.
[4]邱鐵,西方,遲宗正.ARM流水線關鍵技術分析與代碼優化[J].單片機與嵌入式系統應用,2009(3):24-27.
[5]Andrew Sloss N,等.ARM嵌入式系統開發——軟件設計與優化[M].沈建華,譯.北京:北京航空航天大學出版社,2005.