張江輝,陳翠華,寧全利,馬麗芳
(解放軍陸軍 軍官學院,合肥 230031)
數據平滑處理是數字信號處理中經常遇到的問題,其目的是消除數據中夾雜的噪聲,還原信號固有特征,為目標特征提取和分析奠定良好基礎。數據平滑處理一般通過濾波的方法實現。濾波器的構造主要考慮兩點:一是濾波窗口,也即處理的臨域,理論上,濾波窗口越大,參與濾波運算的統計數據越多,濾波效果越好,但實際上,由于實時處理的需要,濾波窗口通常是一定的;二是濾波算法,均值和中值濾波是數據平滑中較常用的兩種算法。本文在闡述上述兩種濾波器數據自動平滑處理的基礎上,引入了卡爾曼濾波器原理,并通過試驗對3 種濾波器在數據自動平滑處理中的性能進行了對比分析。
均值濾波器是線性平滑濾波器,其原理是通過計算濾波器窗口內數據均值,將當前數據和均值相比較,大于均值的去除,小于等于均值保留。由于均值受數據跳動的影響較大,當濾波窗口內的奇異值較多時,均值就會偏向奇異值,導致濾波錯誤。
為了實現對數據平滑的自適應處理,并改善均值濾波的效果,對均值濾波器進行了如下改進:計算濾波窗口內數據均值和方差δ,設定閾值區間為-δ+[]δ ,對于落在這個區間的數據,認為是正常數據,否則使用均值代替該值。

式(1)中:N 為參與濾波計算數據個數,xi為原始數據。
改進后的均值濾波算法可表示:

中值濾波是一種非線性濾波器,其原理是用一個奇數點的滑動窗口,將窗口內各點的中值作為基準,當前值和中值比較差別較大的認為是噪聲進行濾除,否則予以保留。如果取窗口點數為一奇數m,它的中值濾波就是從輸入數據中抽取m 個數,并將這m 個點的值按其數值大小進行排序,取其序號為中心點的那個數作為濾波輸出,中值運算可表示:

式(3)中:xi數據序列,xm為中值,A 為中值濾波窗口,v 為濾波半徑,Med 為取中值運算。中值濾波算法可表示:

1960 年,匈牙利數學家卡爾曼發表了著名的用遞歸方法解決離散數據線性濾波問題的論文:《A New Approach to Linear Filtering and Prediction Problems》(線性濾波與預測問題的新方法)。隨著計算機技術的進步,卡爾曼濾波器在數字信號處理中得到了廣泛應用。
卡爾曼濾波是以最小均方誤差為估計的最佳準則,尋求一套遞推估計的算法,其基本思想是采用信號與噪聲的狀態空間模型,利用前一時刻地估計值和現時刻的觀測值來更新對狀態變量的估計,得到現時刻的估計值。
一個線性動態系統可用線性差分方程組描述:

式(5)中:Xk為n 維向量,表示系統第k 時刻狀態;Yk為m 維系統觀測向量;Φk,k-1是一個n×n 階矩陣,它反應了系統從k-1 時刻的狀態到第k 時刻狀態的變換;Wk表示第k 時刻作用于系統的隨機干擾,稱為模型噪聲,一般假設為高斯白噪聲序列,具有已知的零均值和協方差矩陣Qk;Hk為m ×n 階觀測矩陣,表示了狀態向量Xk到觀測向量Yk的轉換;Vk為m 維觀測噪聲,同樣假設其為高斯白噪聲序列,具有已知的零均值和協方差矩陣Rk。
經推導(過程略),可得如下卡爾曼濾波遞推公式:

式(6)中:Qk為n×n 階模型噪聲Wk的協方差陣;Rk為m ×m 階觀測噪聲Vk的協方差陣;Gk為n×m 階增益矩陣;~Xk為n 維向量,表示第k 時刻經濾波后的估計值;Ck為k 時刻n×n 階的估計協方差矩陣;Pk+1是k +1 時刻n ×n 階估計協方差矩陣。
一般情況下,對于一個線性定常系統,Φk,k-1=Φ,Hk=H,即轉移矩陣均為常陣;而如果模型噪聲Wk和觀測噪聲Vk都是平穩隨機序列,則Qk和Rk也都是常陣。此時,常增益的離散卡爾曼濾波是漸近穩定的。
某型制導炮彈出炮口后彈體轉速穩定在7 轉/s 左右,通過彈載陀螺輸出信號可估算出彈體實時旋轉角度。理論上由于彈體轉速較穩定,相鄰兩個時刻角度間隔變化幅度很小,如以20 ms 為采樣周期,相鄰時刻角度間隔約在50°附近變化。但由于噪聲信號的影響,測量出的彈體旋轉角度變化較劇烈,給實時角度估算帶來干擾,需進行平滑濾波處理。
為此,使用均值、中值和卡爾曼濾波器分別對數據進行了處理。這3 種濾波器均為自適應濾波器,能夠實現數據自動平滑處理,為滿足實時處理的需要,也為比較3 種濾波器性能,試驗統一采用1 ×5 的濾波器窗口。
所處理的數據時間長度為26 s,每秒50 個采樣數據,共1 300 個數據。其中,均值濾波的結果如圖1 所示,中值濾波結果如圖2 所示。

圖1 均值濾波效果
在卡爾曼濾波中,系統初值設定為50,系統狀態向量和觀測向量維數均為1,系統當前預測值和前一預測值相等,狀態轉移矩陣為H =1,觀測矩陣Φ =1;模型噪聲協方差Q =0.002 5,觀測噪聲協方差R =0.25,估計誤差的協方差P =2.5,卡爾曼濾波結果如圖3 所示。

圖2 中值濾波效果

圖3 卡爾曼濾波效果
由上述試驗可以看出,原始數據存在大量的跳躍點,干擾了正確角度的估算。通過采用均值、中值和卡爾曼濾波處理,均實現了數據的實時平滑輸出。
均值、中值和卡爾曼濾波均可實現數據的自動平滑處理。從濾波效果上看,均值濾波受噪聲干擾影響較明顯,特別是噪聲點變化劇烈的地方(圖1 中1 000 ~1 300 區域),濾波輸出的跳躍性較大,中值濾波器和卡爾曼濾波器在效果較好,且卡爾曼濾波輸出較中值濾波輸出的數據平滑性更好;從算法復雜度來講,均值濾波和中值濾波算法較簡單,運行速度快,卡爾曼濾波由于涉及較多的矩陣運算,算法運行效率較低。實際應用中,應從處理精度、實時性等方面綜合考慮,選用合適的濾波器進行數據平滑濾波。
本文主要討論了均值、中值和卡爾曼濾波在一維數據的平滑處理中的應用,二維或多維數據處理可轉化成一維數據進行處理,或參照上述思路處理。
[1]張麗芹,李保平,易娟,鄧國衛.基于捷聯式圖像尋的器的目標識別與跟蹤技術[J].彈箭與制導學報,2009(5):28-29.
[2]邢慧,顏景龍,張樹江.基于Kalman 濾波的穩像技術研究[J].兵工學報,2007(2):175-176.
[3]王向華,覃征.基于多次卡爾曼濾波的目標自適應跟蹤算法與仿真分析[J].系統仿真學報,2008,20(23):6458-6460.
[4]徐士良.C 常用算法程序集[M].第2 版.北京:清華大學出版社,2003.
[5]張江輝,王曙光.彈載圖像信息處理技術[M].炮兵學院出版社,2009.
[6]王帥,魏國.卡爾曼濾波在四旋翼飛行器姿態測量中的應用[J].兵工自動化,2011(1):73-74.
[7]王建東,王亞飛,張晶.基于卡爾曼濾波器的運動目標跟蹤算法[J].數字通信,2009,36(6):53-57.