前一节的内容中,我们介绍了一种用于简单目标跟踪
的滤波器—
α
−
β
\alpha-\beta
α−β滤波器,并对其进行了MATLAB
仿真,今天,我们将介绍一个比其高级一些的另外一种滤波器—
α
−
β
−
γ
\alpha-\beta-\gamma
α−β−γ滤波器。
滤波器介绍
上节的仿真中,我们假设速度是恒定不变
的,但是如果速度是变化的也即目标具有加速度,我们使用
α
−
β
\alpha-\beta
α−β滤波器就无法实现对目标的跟踪功能了,由此便引出了进阶的
α
−
β
−
γ
\alpha-\beta-\gamma
α−β−γ滤波器。和
α
−
β
\alpha-\beta
α−β滤波器一样,它也有着另外一个名字
g
−
h
−
k
g-h-k
g−h−k滤波器。
预测方程
那么目标具有了加速度,那么其速度就可以通过对加速度的积分来得到
,既然目标有加速度,就应当将加速度考虑到状态估计内,我们假设加速度不变,此时的位置预测值为:
x
k
,
k
−
1
=
x
k
−
1
,
k
−
1
+
v
k
−
1
+
v
k
−
1
,
k
−
1
Δ
t
+
a
k
−
1
,
k
−
1
Δ
t
2
2
(
1
)
x _ { k, k - 1 } = x _ { k - 1 , k - 1 } + v _ { k - 1 } + v _ { k - 1 , k - 1 }{\Delta t} + a _ { k - 1 , k - 1 }\frac { {\Delta t} ^ { 2 } } { 2 } \quad (1)
xk,k−1=xk−1,k−1+vk−1+vk−1,k−1Δt+ak−1,k−12Δt2(1)
其中各参数为:
x
k
,
k
−
1
x _ { k , k - 1 }
xk,k−1:基于k时刻测量值以及k时刻之前的状态值所预测的第k时刻的值
x
k
−
1
,
k
−
1
x_ { k-1 , k - 1 }
xk−1,k−1:基于k-1时刻之前的数据在k-1时刻的位置滤波值
v
k
−
1
,
k
−
1
v _ { k-1 , k - 1 }
vk−1,k−1:基于k-1时刻之前的数据在k-1时刻的速度滤波值
a
k
−
1
,
k
−
1
a_ { k-1 , k - 1 }
ak−1,k−1:基于k-1时刻之前的数据在k-1时刻的加速度滤波值
Δ
t
\Delta t
Δt:跟踪时的时间间隔
此时,速度就可以通过加速度进行预测:
v
k
,
k
−
1
=
v
k
−
1
,
k
−
1
+
a
k
−
1
,
k
−
1
Δ
t
(
2
)
v_{k,k-1}=v_{k-1,k-1}+a_{k-1,k-1}\Delta t\quad(2)
vk,k−1=vk−1,k−1+ak−1,k−1Δt(2)
假设加速度恒定不变
,那么加速度的预测值就与上一时刻的加速度值相同也即:
a
k
,
k
−
1
=
a
k
−
1
,
k
−
1
(
3
)
a_{k,k-1}=a_{k-1,k-1}\quad(3)
ak,k−1=ak−1,k−1(3)
修正方程
信息的计算与上节内容相同,
α
−
β
−
γ
\alpha-\beta-\gamma
α−β−γ滤波器使用三个常数对目标的位置、速度、加速度的估计值进行调整
:
x
k
,
k
=
x
k
,
k
−
1
+
α
r
k
(
4
)
\mathbf{x}_{k,k} =\mathbf{x}_{k,k-1}+\alpha\mathbf{r}_k \quad(4)
xk,k=xk,k−1+αrk(4)
v
k
,
k
=
v
k
,
k
−
1
+
β
Δ
t
r
k
(
5
)
\mathbf{v}_{k,k} =\mathbf{v}_{k,k-1}+\frac{\beta}{\Delta t}\mathbf{r}_k \quad(5)
vk,k=vk,k−1+Δtβrk(5)
a
k
,
k
=
a
k
,
k
−
1
+
2
γ
Δ
t
2
r
k
(
6
)
\mathbf{a}_{k,k} =\textbf{a}_{k,k-1}+\frac{2\gamma}{\Delta t^2}\textbf{r}_k \quad(6)
ak,k=ak,k−1+Δt22γrk(6)
其中:
r
k
{r}_k
rk:k时刻的新息;
x
k
,
k
{x}_{k,k}
xk,k:基于k-1时刻对k时刻的预测值和k时刻的测量值所修正的位置;
v
k
,
k
{v}_{k,k}
vk,k:基于k-1时刻对k时刻的预测值和k时刻的测量值所修正的速度;
a
k
,
k
{a}_{k,k}
ak,k:基于k-1时刻对k时刻的预测值和k时刻的测量值所修正的加速度;
α
,
β
,
γ
\alpha,\beta,\gamma
α,β,γ:滤波器的三个常数
滤波器参数选择
其中滤波器的三个常数的选择参考如下:
α
=
1
−
s
2
(
7
)
\alpha=1-s^2\quad(7)
α=1−s2(7)
β
=
2
(
1
−
s
)
2
(
8
)
\beta=2(1-s)^{2}\quad(8)
β=2(1−s)2(8)
γ
=
β
2
2
α
(
9
)
\gamma=\frac{\beta^2}{2\alpha}\quad(9)
γ=2αβ2(9)
0
≤
s
<
1
(
10
)
0\leq s<1\quad(10)
0≤s<1(10)
α
−
β
−
γ
\alpha-\beta-\gamma
α−β−γ滤波器的使用同
α
−
β
\alpha-\beta
α−β滤波器,不在此处进行赘述。
MATLAB仿真
我们同样对此滤波器进行仿真验证,验证的结果如下:
距离向滤波
可以看到,虽然此处的噪声值很大,但其在距离方向也不是特别的明显
。
速度向滤波
从结果中可以看到,随着滤波的进行,滤波后的速度与真实的速度越来越接近
。
加速度滤波值
与速度滤波相比,加速度方向上的收敛速度明显较慢
,选择其他的
α
,
β
,
γ
\alpha,\beta,\gamma
α,β,γ值也许会加快其收敛的速度,但与此同时,位置的滤波之上也有可能会出现更大的噪声。
代码
代码的下载链接在这里:
代码下载
上述内容即使今天的全部内容了,感谢大家的观看。
如果方便,辛苦大家点个赞和关注哦!
您的点赞或评论或关注是对我最大的肯定,谢谢大家!!!