基於粒子濾波的TBD算法仿真—MATLAB仿真

目標跟蹤的最終目的是在最小的誤差下確定目標的位置,而在無線傳感器網絡中要實現這個目的需要很多相關技術的支持,如定位技術、目標檢測技術、估計技術、節能技術等。目標跟蹤問題的求解有很多方法, 從算法的考慮方向上來說可以分為兩大類: 自頂向下的算法和自底向上的算法 。自頂向下的目標跟蹤算法的核心思想是先對要跟蹤的目標進行恰當的建模, 從模型出發來實現跟蹤目的,狀態空間方法就是一種典型的自頂向下的方法。所謂自底向上的方法, 就是指沒有現成的理論框架, 從實際問題出發、從得到的數據出發來實現對目標的跟蹤。從效果上來看, 兩種方法的跟蹤效果並沒有特別明顯的差異,但是由於自頂向下的方法有嚴格的理論框架, 便於進行研究, 本文中主要考慮這種方法。

無線傳感器網絡中,在特定的檢測區域佈設好無線傳感器網絡後,網絡先進行初始化,對網絡中所有的節點 進行定位,然後就可以對感興趣的目標進行跟蹤了。

目標跟蹤和檢測的問題描述對於無線傳感器網絡中的目標跟蹤和檢測問題, 目標的運動過程即狀態轉移方程通常可以用一階的馬爾科夫狀態方程來描述

基於粒子濾波的TBD算法仿真—MATLAB仿真

式中, xk 表示 xk -1 時刻的目標狀態向量, 一般可能包含目標的位置、速度、加速度等信息; f( xk -1) 表示目標狀態從 xk -1 時刻到 xk 時刻的狀態轉移函數( 線性或非線性) ; wk 表示過程噪聲向量。相應的, 時刻的觀測方程的一般形式:

基於粒子濾波的TBD算法仿真—MATLAB仿真

式中, zk 表示 xk 時刻節點中得到的觀測向量, h( xk) 表示觀測函數( 線性或非線性) , vk 表示觀測噪聲。過程噪聲和觀測噪聲均是未知的, 且不一定是均值為零的高斯白噪聲, 但是它們的概率密度一般都是知道的。有了這兩個模型後, 目標跟蹤所要解決的問題就是根據目標之前的狀態和得到的觀測序列來求解目標的當前狀態量。

粒子濾波算法

粒子濾波算法的出現歷時半個多世紀, 最早可以追溯到 20 世紀四十年代 Metropolis 等人提出的蒙特卡洛方法( Monte Carlo method) 20 世紀七十年代 MC 方法首次用於解決非線性濾波問題, 當時使用的是序貫重要性採樣方法: 用一組從建議分佈中採樣得到的帶權值的樣本來近似目標狀態分佈,這種方法存在很嚴重的樣本權值退化問題,實際的應用非常有限; 1993 年,Gordon 等人提出了重採樣的概念[6] ,並將重採樣引入到蒙特卡洛重要性採樣過程中有效地解決了樣本權值退化問題, 開啟了基於蒙特卡洛積分的粒子濾波算法的研究熱潮。經過二十多年的研究和發展,如今粒子濾波算法已經相當成熟,成為非線性、非高斯系統中的估計問題最重要的解決方法之一, 廣泛應用於自主導航、機器人視覺和目標跟蹤等問題中 。已知目標狀態的初始分佈為 p( x0) 、它在 k - 1 時刻的後驗概率密度分佈為 p( xk -1 z1: k -1) = { xi k -1,wi k -1} N i = 1,結合重要性採樣和重採樣, 一般的粒子濾波算法估計 k時刻的目標狀態向量 xk 的具體步驟如下

  • ( 1) 初始化: k = 0, 從 p( x0) 中隨機抽取 N 個初始粒子 { x0i ,i = 1,2,…,N} , 並令每個粒子的初始權值都為 1 /N。
  • ( 2) 根據提議分佈( 一般使用 SIS 算法, 即取先驗概率密度函數為提議分佈) 更新粒子
  • ( 3) 在得到 k 時刻觀測值 zk 後, 根據公式計算每個粒子的權值
  • ( 4) 重採樣過程, 先根據公式計算有效粒子數,執行重採樣算法( 如多項式重採樣等) ,否則就直接跳到第( 5) 步。
  • ( 5) 根據蒙特卡洛積分得到 k 時刻目標狀態的估計值:
  • ( 6) 令 k = k + 1, 得到 k + 1 時刻的觀測值後轉到步驟( 2) ,直到結束。

仿真結果

基於粒子濾波的TBD算法仿真—MATLAB仿真

文檔下載:鏈接:https://pan.baidu.com/s/1IOwb2cOw3A2tvlTboVa88g提取碼:p7a1

程序下載:鏈接:https://pan.baidu.com/s/1XA42i4oYesMWayf5ts3fWA提取碼:juo7

<code>解碼密碼獲取:http://t.cn/AiTjdQZq/<code>


分享到:


相關文章: