軟件濾波

模擬信號都必須經過A/D轉換才能被嵌入式控制器接收。但在干擾作用於模擬信號之後,其A/D轉換結果往往會偏離真實值。因此,僅採樣一次是無法確定該結果是否可信的,而必須多次採樣,才能得到一個A/D轉換的數據系列,然後通過某種處理,才能得到一個可信度較高的結果。這種從數據系列中提取逼近真值的軟件算法,通常稱爲數字濾波算法。相對於硬件濾波,數字濾波的優越性在於其無需硬件且可靠性高,尤其對頻率很高或很低的信號進行濾波。此外,由於對多輸入通道可共用一個濾波程序,故可大大降低產品成本。

1  嵌入式測控系統中常見的數字濾波算法

1.1  限幅濾波

首先根據被測對象確定相鄰兩次採樣所允許的最大差值△Y,然後在每次採樣後和上次有效採樣值進行比較,如果變化幅度不超過△Y,則本次採樣有效;否則,本次採樣值被視爲干擾而放棄,而以上次採樣值爲準。其原理可用如下公式表示:


其中,yn爲第n次採樣值,yn-1爲第(n-1)次採樣值。

實現上述過程的參考程序(返回有效的採樣值)如下:

限幅濾波主要用於處理變化比較緩慢的數據,如溫度、溼度、液位等。該方法使用的關鍵是要選取合適的門限△Y。△Y通常可根據經驗數據獲得,必要時也可由實驗得到。

1.2中值濾波

這種濾波方式一般對目標參數連續採樣N次(N一般爲奇數),然後把N次採樣值進行排序,再取中間值作爲有效值。對於變化很慢的參數,也可以增加採樣次數。而對於變化較爲劇烈的參數,此法不宜採用。其參考程序如下:


1.3算術平均濾波

該算法對目標參數先進行連續採樣,然後求其算術平均值作爲有效採樣值。該算法適用於對具有隨機干擾的信號進行濾波。這種信號的特點是有一個平均值。信號在某一數值附近上下波動。信號的平滑程度完全取決於採樣次數N,採樣次數越多,平滑效果越好,但系統的靈敏度也會下降。爲方便求平均值,N一般取4、8、16之類的2的整數次冪,以便系統用移位法來代替除法。其參考程序如下:


1.4去極值平均濾波

算術平均濾波不能消除明顯的脈衝干擾,而只是將其影響削弱。由於明顯干擾會使採樣值遠離其真實值,因此可以比較容易地將其剔除,而不參加平均值計算,從而使平均濾波的輸出值更接近真實值,這就是去極值算法,又稱爲防脈衝干擾平均值濾波算法。該方法的原理是連續採樣N次,並將其累加求和,同時找出其中的最大值和最小值,再從累加和中減去最大值和最小值,再按N-2個採樣值求平均,即可獲得有效採樣值。爲方便求平均值,N-2應爲2、4、8、16,故N常取4、6、10、18。其參考程序如下:

1.5加權平均濾波

算術平均濾波和去極值平均濾波均存在平滑性和靈敏性的矛盾。因爲,採樣次數太少,平滑效果差;採樣次數太多,靈敏度下降,對參數的變化趨勢不敏感。爲協調兩者的關係,可採用加權平均濾波。即對連續N次採樣值分別乘上不同的加權係數之後再求累加和。加權係數一般先小後大,以突出後面若干採樣的效果,來加強系統對參數變化趨勢的辨識。各個加權係數均應是小於1的小數,且應滿足總和等於1的約束條件。這樣,加權運算之後的累加和即爲有效採樣值。爲方便計算,可取各加權係數均爲整數,且總和爲256,加權運算之後的累加和再除以256後便是有效採樣值。其參考程序如下:


1.6滑動平均濾波

以上介紹的各種平均濾波算法具有一個共同點,即每取得一個有效採樣值都必須連續進行若干次採樣,這些方法在採樣速度較慢(如雙積分型A/D轉換)或目標參數變化較快時,系統的實時性往往不能得到保證。而滑動平均濾波算法只採樣一次,它將這一次採樣值和過去的若干次採樣值一起求平均,然後所得到的有效採樣值即可投入使用。這樣,如果取N個採樣值求平均,則RAM中必須開闢N個數據的暫存區。每新採集一個數據便存入暫存區,同時去掉一個最老的數據,以保持這N個數據始終是最近的數據。這種數據存放方式可以用環形隊列數據結構來實現。其參考程序如下:

1.7低通濾波

將普通硬件RC低通濾波器的微分方程用差分方程來表示,便可用軟件算法來模擬硬件濾波功能。經推導,對於低通濾波算法有:

式中Xn爲本次採樣值;Yn-1爲上次的濾波輸出值;α爲濾波係數,其值<<1;Yn爲本次濾波輸出值。這種算法對變化緩慢的物理量是很有效的。但應注意一點,它不能濾除高於二分之一採樣頻率的干擾信號。比如採樣頻率爲2 Hz,則對1 Hz以上的干擾信號通常應配合硬件濾波電路來濾除。該方法的參考程序如下:


2各種數字濾波方法對比

數字濾波的方法多種多樣,表1給出了幾種數字濾波算法的優缺點和適用對象。


3  結束語

基於嵌入式測控系統的數字濾波方法多種多樣,因此,在選擇濾波方法時,首先要考慮微控制器的存儲量、運算時間、運算能力以及實時性是否滿足實際要求。然後再根據主要的干擾源(對系統的測試精度影響最大的干擾源)和測試對象的特點來選擇合適的濾波方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章