摘 要: 以切比雪夫等波紋逼近理論為基礎,設計了切比雪夫等波紋逼近FIR低通濾波器。在以MSP430F133單片機為核心的可燃性氣體檢測報警系統中,采用該低通濾波器,對可燃性氣體濃度信號處理,獲得較好的效果。
關鍵詞: 切比雪夫等波紋逼近 FIR低通濾波器 MSP430 F133 單片機
1 切比雪夫等波紋逼近低通濾波器設計方法
在數據采集系統中,輸入信號均含有種種噪聲和干擾,它們來自被測信號源本身、傳感器和環境等。為了進行準確測量和控制,必須消除被測信號中的噪聲和干擾。工程上常用的軟件濾波方法有:算術平均值法、滑動平均值法、防脈沖干擾平均值法等。這些方法一般可以消除由于偶然因素引起的脈沖干擾,但對周期性干擾尤其是工頻干擾和白噪聲抑制作用較差,而且平滑度不高。
切比雪夫等波紋逼近方法是FIR濾波器設計方法之一。它采用“最大誤差最小化”優化準則,即mini(max|E(w)|),其中權函數誤差E(w)=W(w)[Hd(w)-H(w)],W(w)為加權函數,Hd(w)為期望頻率響應,H(w)為實際頻率響應。該方法使用Remez交換算法和切比雪夫逼近理論設計濾波器,在期望的和實際的濾波器頻率響應之間實現最佳匹配。應用這種方法設計的濾波器能夠獲得較好的通帶和阻帶性能,并能準確地指定通帶和阻帶邊緣。由于該濾波器在通帶和阻帶的誤差是均勻分布的,因此其頻率響應在通帶和阻帶內顯示出等波紋性,階次可以比較低。從上述分析,切比雪夫等波紋逼近濾波器是最優的。
決定切比雪夫等波紋逼近低通濾波器系數的參數主要有:濾波器長度M,通帶和阻帶截止頻率wp、ws,相應頻帶的幅度m,權系數w。其中權系數w由通帶和阻帶波動Ap、Ar決定。使用權系數w,是考慮在設計濾波器時對通帶和阻帶常要求不同的逼近精度,故乘以不同的權系數,以統一使用最小化最大誤差。長度M由wp、ws、Ap、Ar決定。
Kaiser提出近似計算單通帶、單阻帶濾波器長度M的一個簡單公式:
本文所研究的對象為可燃性氣體檢測報警系統。傳感器檢測氣體濃度信號,把輸出的模擬電壓值送到單片機,經A/D轉換成數字量后,再進行低通濾波、線性化處理以及LED顯示濃度等。由于輸入信號為緩慢變化的可燃性氣體,在濾波器設計中,可把通帶、阻帶的截止頻率選得較低,這里wp=0.1,ws=0.3(采樣頻率150Hz)。為便于進一步處理,通帶的幅頻特性應該平坦,幅值增益接近1。當Ap=0.22db、Ar=30db時,根據MATLAB仿真,恰能滿足要求,此時M=16。切比雪夫等波紋逼近低通濾波器幅相頻率特性如圖1所示。由圖可見,該濾波器對通帶、阻帶截止頻率控制得很好,過渡帶衰減得較快。要達到同樣要求的濾波指標,使用窗函數方法設計的濾波器卻需要很高的階數(105階),而過高的階數不易在單片機或其他微控制器上實現。所以采用切比雪夫等波紋逼近方法設計的濾波器不但濾波性能優良,而且階數可以做得比較低,易在單片機或其他微控制器中實現。
2 MSP430F133中的ADC12模塊特點及使用方法
系統采用MSP430F133單片機,它是美國德州儀器(TI)公司生產的一種新型16位Flash微控制器。其突出的優點是低電源電壓、超低功耗、多種功能。由于其功能遠遠超過其他系列單片機,因而又稱之為混合型單片機。MSP430F133芯片中的ADC12是12位高精度A/D轉換器,它采用逐次逼近原理,12位分辨率,最高采樣速率可達2×105次/秒。利用芯片內置的自動掃描功能,ADC12可以不需要CPU的協助而獨立工作。應用這款單片機設計智能儀器,可以明顯地簡化外圍電路器件。
為了得到精確的轉換,適當的采樣時間是必須的(這里選擇SHT0=8即Tsample=4×ADC12CLK×64)。根據系統設計要求,MSP430F133對一路模擬信號進行巡回處理,雖然ADC12提供了多次—單通道A/D轉換模式,但1次連續采集的點數(20個)超過了最大存儲器限額(16個)。為了保證采樣間隔相等、精度相同,本系統選擇單次—單通道A/D轉換模式。同時,A/D轉換的參考電平選擇外部2.5V的參考電壓供電,因為ADC12內部提供的參考電平會隨時間、溫度有一定的漂移。
A/D處理程序采用查詢方式,即1次連續采集20個點,將采集的數據暫存到片內RAM,然后再對這些數據進行卷積濾波。當一組數據處理結束后,再采集第二組數據。由于MSP430高速的處理能力,故選擇CPU默認時鐘頻率為800kHz(DCO提供);ADC12的轉換時鐘選擇內部自帶的RC振蕩器ADC12OSC,頻率為5MHz;從完成一組數據采集到最終顯示可燃性氣體濃度的時間小于0.05秒,這樣的處理速度完全能夠滿足對可燃性氣體濃度實時檢測的要求。
3 切比雪夫等波紋逼近低通濾波器在MSP430F133單片機中的實現
可燃性氣體濃度信號經過TGS813氣體傳感器轉變成電信號,經前置放大后送入單片機。圖2為單片機隨機現場采集的一組原始信號。從圖中可以看出采集的信號存在一定幅值波動,而且幅值不是在一個范圍內上下波動,這時采用均值濾波效果不好。圖3為原始信號的頻譜,該頻譜除了直流分量外,還包含多種頻率成份,即夾雜一些噪聲和干擾。
MSP430F133單片機具有強大的數據處理能力,采用匯編語言可以編寫出高效率的源程序。程序采用定點運算模式即能滿足精度要求。通過上面給定指標設計出的切比雪夫等波紋濾波器系數為(濾波器長度M=16,由于系數偶對稱,所以只需存儲一半系數):
h=[-0.02443 -0.02362 -0.01615 0.01153 0.05906 0.11953 0.1709 0.20291]
把每個系數都擴大1 280倍(放大倍數小,則系數之間誤差變大,擴大沒有意義;放大倍數太大,則乘除法運算時容易產生溢出),四舍五入取整,并轉換成16進制,以系數表格形式存放在單片機內部的Flash存儲器中,則:
圖6為切比雪夫等波紋逼近濾波主程序框圖。程序采用模塊化結構設計,并使用查表的方法進行卷積。在卷積求點Y(16)、Y(17)、Y(18)、Y(19)以及折線插值求對應濃度時,都調用了16×16位定點乘法和32÷16位定點除法運算子程序。由于存儲的濾波器系數為12位,采集的電壓值亦為12位,所以定點乘法以及定點除法運算不會產生溢出。當發生溢出時,則程序舍掉當前數據,重新采集一組新數據進行處理,從溢出到再次采集,程序執行時間小于0.05秒。
4 結束語
本文以緩慢變化的可燃性氣體濃度信號為例,進行切比雪夫等波紋逼近低通濾波器設計,并在MSP430F133單片機中加以實現。通過仿真及現場測試,得到較滿意的效果,可以用于實際系統。切比雪夫等波紋逼近濾波方法能夠全面控制給定的設計指標,通帶和阻帶達到最小等波動特性,并且濾波器的階次相對較低。在該系統中,從完成一組數據采集到最終LED顯示可燃性氣體濃度的時間不超過0.05秒,這樣的處理速度完全能夠滿足對可燃性氣體濃度實時檢測的要求。
參考文獻
1 吳湘淇.信號系統與信號處理(第一版).北京:電子工業出版社,1996
2 chen C T.Digital Signal Processing Spectral Computation and Filter Design.BEIJING:Publishing House of Electronics Industry,2002
3 陳亞勇.MATLAB信號處理詳解.北京:人民郵電出版社,2002
4 魏小龍.MSP430系列單片機接口技術及系統設計實例.北京:北京航空航天大學出版社,2002
5 胡大可.MSP430系列FLASH型超低功耗16位單片機.北京:北京航空航天大學出版社,2001