文/周英 李凱 周宇媚
濾波是系統的狀態估計問題。經典的卡爾濾波算法提供了線性高斯問題的最優解決方法。然而現實生活中存在大量非線性特性的實際問題。粒子濾波算法在非線性、非高斯系統中表現出噪聲模型和系統模型不受限制,精度高等優點。因此,它的應用十分廣泛,如:目標跟蹤、目標定位及導航、通信領域、軍事領域等。
標準粒子濾波算法中,退化現象無法避免。經過若干次迭代,少數有效粒子占據粒子集的大部分權值,而大部分粒子的權值很小。隨著迭代的繼續進行,甚至會出現一個或幾個粒子權值非常大,而其他粒子權值基本為零的情況,這就是粒子集的退化分布。若迭代次數越多,大量的計算資源就會消耗在處理那些微不足道的粒子上。
粒子濾波以貝葉斯推理和重要性采樣為基本框架。它源于蒙特卡羅思想,即以某事件出現的頻率來指代該事件的概率。在濾波過程中,需要用到概率的地方,我們只需對變量進行采樣,以大量采樣及其相應的權值來近似表示該概率。基于此,粒子濾波算法可以在濾波過程中處理任意形式的概率。這也正是粒子濾波的一大優勢。
粒子濾波過程分為初始狀態階段、預測階段、校正階段、重采樣階段、濾波階段,由此循環往復。粒子濾波算法與卡爾曼濾波算法類似,需要知道系統的模型。如果系統模型未知,必須構建一個模型來進行模擬。通常構建模型是通過數學表達式來進行,其中包括系統狀態方程和測量方程。
本文中采用一個應用廣泛的標量模型對粒子濾波算法應用進行仿真分析。假定在任意狀態下,系統的數學方程式如下:
狀態方程:

在公式(1)中,xk表示系統在k時刻狀態值,xk-1表示系統在k-1時刻狀態值,wk表示過程噪聲,xk和xk-1是非線性關系。
在公式(2)中,yk表示系統在k時刻的測量值,vk表示測量噪聲,yk和xk也是非線性關系。
當k=0時,表示系統處于初始狀態。由于系統開始對x(0)一無所知,所有我們認為x(0)在全狀態空間內平均分布。然后將所有采樣輸入狀態轉移方程,得到預測粒子。仿真過程基于(1)和(2)式,采用SIR粒子濾波算法,每次迭代都用系統重采樣機制,得出仿真圖如圖1、圖2。
從圖1可以看出測量噪聲值V、過程噪聲值W、狀態值X、觀測值Y的變化情況;從圖2可以看出,系統在wk、vk均值為0;Qk=10,過程噪聲方差,Rk=1,測量噪聲方差的噪聲情況下,得出濾波器估計值和系統真實值。該濾波器估計輸出采用了最大后驗概率和后驗均值兩種方式,這兩種方式均能反應出濾波估計的狀態能很好地跟隨真實狀態。
上述基本粒子濾波算法中,因為Q和R的值獲取比較困難,同時考慮到粒子退化現象等問題,做出改進。改進的方法有如下幾種:
(1)增加粒子數;
(2)提高重采樣技術;
(3)選擇合適的建議密度。
本文從選擇合適的建議密度方法著手,改進粒子濾波算法。因在產生建議分布方法中,局部線性化是一種較好的方法。UKF(無跡卡爾曼濾波)就是局部線性化方法的一種,它要求系統是近似的高斯后驗分布模型,是一種遞歸的最小均方誤差估計方法。將UKF方法引入到粒子濾波算法中,就是本文改進策略。

圖1:各參數值變化情況

圖2:非線性條件下粒子濾波仿真圖

圖3:系統狀態圖
該算法非常重要的環節就是:在采樣期間,用UKF算法給每個粒子計算其均值和方差,然后“指導”系統的采樣。也就是在粒子濾波算法的框架下,采用UKF算法得到最新的觀測信息,給每個粒子產生合理的高斯建議密度分布。其算法流程如下:
(1)初始化;
(2)重要性采樣;
(3)重采樣;
(4)輸出。
現在選用一維系統來仿真基本粒子濾波和改進粒子濾波算法。假定在任意狀態下,系統的數學方程式如下:

從圖3的仿真結果得出,PF(基本粒子濾波)算法和改進的PF算法都較好地跟隨了系統的真實值;從圖4的仿真結果可以看出,改進的PF算法偏差能在較短時間內達到極低水平,后續基本維持該水平,而PF算法的偏差值存在不小的波動;從圖5的仿真結果看出改進的PF算法所耗去的計算時間較PF算法長,因此實時性較差。
本文從改善建議密度分布角度改進粒子濾波算法,在跟隨真實系統的可靠性方面得到改善,但其計算量較大,響應速度不快,同時系統還局限于高斯模型。因此,PF算法的改進還可與其他算法進行組合,如神經網絡等結合改進,使其不受線性高斯模型限制,性能更強。

圖4:系統狀態偏差圖

圖5:系統實時性比較