无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)
Posted 脑壳二
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)相关的知识,希望对你有一定的参考价值。
无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)
原创不易,路过的各位大佬请点个赞
机动目标跟踪/非线性滤波/传感器融合/导航等探讨代码联系WX: ZB823618313
仿真部分见博客:
[无迹卡尔曼滤波UKF—目标跟踪中的应用(仿真部分)
链接: https://blog.csdn.net/weixin_44044161/article/details/115390660.
作者:823618313@qq.com
备注:
无迹卡尔曼滤波算法;无迹滤波;Uncented Filter
两种UKF算法:加性噪声UKF和非加性噪声UKF
matlab实现;
目标跟踪仿真
Case: 二维目标跟踪情况和三维目标跟踪情况
代码下载地址如下(分别为二维情形和三维情形)
https://download.csdn.net/download/weixin_44044161/85401310
https://download.csdn.net/download/weixin_44044161/85402056
https://download.csdn.net/download/weixin_44044161/85123963
https://download.csdn.net/download/weixin_44044161/85124056
无迹滤波思考:
CKF和UKF 总结:
当取
κ
=
0
\\kappa=0
κ=0时, CKF 和 UKF 的估计精度相同,但鉴于 CKF 采样点少,实时性
比 UKF 好,故应选用 CKF 滤波算法;
当
n
≤
2
n\\leq2
n≤2时即低维非线性系统, UKF 的估计精度高于 CKF,应选用 UKF 滤波
算法;
当
n
=
2
n=2
n=2时的非线性系统, UKF 及 CKF 的估计精度相同,但 CKF 的实时性更
好,应选用 CKF 滤波算法;
当
n
≥
3
n\\geq3
n≥3时即高维非线性系统, CKF 的估计精度高于 UKF,应选用 CKF 滤波算法。
无迹卡尔曼滤波UKF—目标跟踪中的应用
1、带加性噪声的无迹卡尔曼滤波算法UKF
1.1 问题描述(离散时间非线性系统描述)
考虑带加性噪声的一般非线性系统模型,
x
k
=
f
(
x
k
−
1
)
+
w
k
−
1
z
k
=
h
(
x
k
)
+
v
k
(1)
x_k=f(x_k-1) +w_k-1 \\\\ z_k=h(x_k)+v_k \\tag1
xk=f(xk−1)+wk−1zk=h(xk)+vk(1)
其中
x
k
x_k
xk为
k
k
k时刻的目标状态向量。
z
k
z_k
zk为
k
k
k时刻量测向量(传感器数据)。这里不考虑控制器
u
k
u_k
uk。
w
k
w_k
wk和
v
k
v_k
vk分别是过程噪声序列和量测噪声序列,并假设
w
k
w_k
wk和
v
k
v_k
vk为零均值高斯白噪声,其方差分别为
Q
k
Q_k
Qk和
R
k
R_k
Rk的高斯白噪声,即
w
k
∼
(
0
,
Q
k
)
w_k\\sim(0,Q_k)
wk∼(0,Qk),
v
k
∼
(
0
,
R
k
)
v_k\\sim(0,R_k)
vk∼(0,Rk),且满足如下关系(线性高斯假设)为:
E
[
w
i
v
j
′
]
=
0
E
[
w
i
w
j
′
]
=
0
i
≠
j
E
[
v
i
v
j
′
]
=
0
i
≠
j
\\beginaligned E[w_iv_j'] &=0\\\\ E[w_iw_j'] &=0\\quad i\\neq j \\\\ E[v_iv_j'] &=0\\quad i\\neq j \\endaligned
E[wivj′]E[wiwj′]E[vivj′]=0=0i=j=0i=j
1.2 无极变换UT
无迹变换的目的:通过确定性采样得到随机变量
x
∼
(
x
ˉ
,
P
x
)
x\\sim(\\barx,P_x)
x∼(xˉ,Px)的
2
n
+
1
2n+1
2n+1个sigma点
X
\\mathcalX
X,将这些sigma点通过非线性函数传播后得到随机变量
y
y
y的sigma点,进而通过加权平均求得随机变量
y
y
y的一二阶矩(i.e.,均值和方差)。也可以理解为,根据x的统计特性,利用确定性采样法获得非线性函数
y
=
f
(
x
)
y=f(x)
y=f(x)传播后的y的统计特性的。UT变换如下: 以上是关于无迹卡尔曼滤波UKF—目标跟踪中的应用(算法部分)的主要内容,如果未能解决你的问题,请参考以下文章 交互式多模型-无迹卡尔曼滤波IMM-UKF仿真一——机动目标跟踪中的应用 交互式多模型-无迹卡尔曼滤波IMM-UKF算法matlab实现(跟踪场景二) 交互式多模型-无迹卡尔曼滤波IMM-UKF——CV/CT/CA模型交互机动目标跟踪(模型维数不同IMM算法设计) 交互式多模型-无迹卡尔曼滤波IMM-UKF——CV/CT/CA模型交互机动目标跟踪(模型维数不同IMM算法设计)
X
0
=
x
ˉ
X
i
=
x
ˉ
+
n
+
λ
[
P
x
]
i
,
i
=
1
,
2
,
⋯
,
n
X
n
+
i
=
x
ˉ
−
n
+
λ
[
P
x
]
i
,
\\beginaligned &\\mathcalX^0=\\barx\\\\ &\\mathcalX^i=\\barx+\\sqrtn+\\lambda[\\sqrtP_x]_i,i=1,2,\\cdots,n\\\\ &\\mathcalX^n+i=\\barx-\\sqrtn+\\lambda[\\sqrtP_x]_i, \\endaligned
X0=xˉXi=xˉ+n+λ[Px]i,i=1,2,⋯,nXn+i=xˉ−n+λ[Px]i,
w
0
m
=
λ
n
+
λ
w
0
c
=
λ
n
+
λ
+
(
1
−
α
2
+
β
)
w
i
m
=
w
i
c
=
1
2
n
+
2
λ
,
i
=
1
,
2