卡尔曼滤波器是贝叶斯滤波器在线性高斯系统下的一个特例。
假设线性高斯系统下运动模型和观测模型如下:
运动方程:
x
k
=
A
k
−
1
x
k
−
1
+
v
k
+
w
k
,
k
=
1
,
⋯
,
K
观测方程:
y
k
=
C
k
x
k
+
n
k
,
k
=
0
,
⋯
,
K
其中:
用 ( ⋅ ) ˇ \check{(\cdot)} (⋅)ˇ 表示先验,用 ( ⋅ ) ^ \hat{(\cdot)} (⋅)^ 表示后验,卡尔曼滤波器则可以表示为:
x ˇ k = A k − 1 x ^ k − 1 + v k \check{\boldsymbol{x}}_{k}=\boldsymbol{A}_{k-1} \hat{\boldsymbol{x}}_{k-1}+\boldsymbol{v}_{k} xˇk=Ak−1x^k−1+vk
P ˇ k = A k − 1 P ^ k − 1 A k − 1 T + Q k \check{\boldsymbol{P}}_{k}=\boldsymbol{A}_{k-1} \hat{\boldsymbol{P}}_{k-1} \boldsymbol{A}_{k-1}^{\mathrm{T}}+\boldsymbol{Q}_{k} Pˇk=Ak−1P^k−1Ak−1T+Qk
K k = P ˇ k C k T ( C k P ˇ k C k T + R k ) − 1 \quad \boldsymbol{K}_{k}=\check{\boldsymbol{P}}_{k} \boldsymbol{C}_{k}^{\mathrm{T}}\left(\boldsymbol{C}_{k} \check{\boldsymbol{P}}_{k} \boldsymbol{C}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}\right)^{-1} Kk=PˇkCkT(CkPˇkCkT+Rk)−1
x ^ k = x ˇ k + K k ( y k − C k x ˇ k ) ⏟ 更新量 \hat{\boldsymbol{x}}_{k}=\check{\boldsymbol{x}}_{k}+\boldsymbol{K}_{k} \underbrace{\left(\boldsymbol{y}_{k}-\boldsymbol{C}_{k} \check{\boldsymbol{x}}_{k}\right)}_{\text {更新量 }} x^k=xˇk+Kk更新量 (yk−Ckxˇk)
P ^ k = ( 1 − K k C k ) P ˇ k \hat{\boldsymbol{P}}_{k}=\left(\mathbf{1}-\boldsymbol{K}_{k} \boldsymbol{C}_{k}\right) \check{\boldsymbol{P}}_{k} P^k=(1−KkCk)Pˇk
由于是线性高斯系统,因此直接将 k − 1 k-1 k−1 时刻的后验分布通过线性运动模型传递,即可得到 k k k 时刻的先验:
x
ˇ
k
=
E
[
x
k
]
=
E
[
A
k
−
1
x
k
−
1
+
v
k
+
w
k
]
=
A
k
−
1
E
[
x
k
−
1
]
⏟
x
k
−
1
+
v
k
+
E
[
w
k
]
⏟
0
=
A
k
−
1
x
^
k
−
1
+
v
k
P
ˇ
k
=
E
[
(
x
k
−
E
[
x
k
]
)
(
x
k
−
E
[
x
k
]
)
T
]
=
E
[
(
A
k
−
1
x
k
−
1
+
v
k
+
w
k
−
A
k
−
1
x
^
k
−
1
−
v
k
)
×
(
A
k
−
1
x
k
−
1
+
v
k
+
w
k
−
A
k
−
1
x
^
k
−
1
−
v
k
)
T
]
=
A
k
−
1
E
[
(
x
k
−
1
−
x
^
k
−
1
)
(
x
k
−
1
−
x
^
k
−
1
)
T
]
⏟
P
^
k
−
1
A
k
−
1
T
+
E
[
w
k
w
k
T
]
⏟
Q
k
=
A
k
−
1
P
^
k
−
1
A
k
−
1
T
+
Q
k
对于更新部分,我们将状态与 k k k 时刻的测量写成联合高斯分布的形式:
p
(
x
k
,
y
k
∣
x
ˇ
0
,
v
1
:
k
,
y
0
:
k
−
1
)
=
N
(
[
μ
x
μ
y
]
,
[
Σ
x
x
Σ
x
y
Σ
y
x
Σ
y
y
]
)
=
N
(
[
x
ˇ
k
C
k
x
ˇ
k
]
,
[
P
ˇ
k
P
ˇ
k
C
k
T
C
k
P
ˇ
k
C
k
P
ˇ
k
C
k
T
+
R
k
]
)
由高斯推断可以直接得到 k k k 时刻的条件分布(即后验概率):
p ( x k ∣ x ˇ 0 , v 1 : k , y 0 : k ) = N ( μ x + Σ x y Σ y y − 1 ( y k − μ y ) ⏟ x ^ k , Σ x x − Σ x y Σ y y − 1 Σ y x ⏟ P ^ k ) p\left(\boldsymbol{x}_{k} \mid \check{\boldsymbol{x}}_{0}, \boldsymbol{v}_{1: k}, \boldsymbol{y}_{0: k}\right)=\mathcal{N}(\underbrace{\boldsymbol{\mu}_{x}+\boldsymbol{\Sigma}_{x y} \boldsymbol{\Sigma}_{y y}^{-1}\left(\boldsymbol{y}_{k}-\boldsymbol{\mu}_{y}\right)}_{\hat{\boldsymbol{x}}_{k}}, \underbrace{\boldsymbol{\Sigma}_{x x}-\boldsymbol{\Sigma}_{x y} \boldsymbol{\Sigma}_{y y}^{-1} \boldsymbol{\Sigma}_{y x}}_{\hat{\boldsymbol{P}}_{k}}) p(xk∣xˇ0,v1:k,y0:k)=N(x^k μx+ΣxyΣyy−1(yk−μy),P^k Σxx−ΣxyΣyy−1Σyx)
令 K k = Σ x y Σ y y − 1 = P ˇ k C k T ( C k P ˇ k C k T + R k ) − 1 \boldsymbol{K}_{k}=\boldsymbol{\Sigma}_{x y} \boldsymbol{\Sigma}_{y y}^{-1}=\check{\boldsymbol{P}}_{k} \boldsymbol{C}_{k}^{\mathrm{T}}\left(\boldsymbol{C}_{k} \check{\boldsymbol{P}}_{k} \boldsymbol{C}_{k}^{\mathrm{T}}+\boldsymbol{R}_{k}\right)^{-1} Kk=ΣxyΣyy−1=PˇkCkT(CkPˇkCkT+Rk)−1(卡尔曼增益),则有:
x ^ k = x ˇ k + K k ( y k − C k x ˇ k ) \hat{\boldsymbol{x}}_{k}=\check{\boldsymbol{x}}_{k}+\boldsymbol{K}_{k} \left(\boldsymbol{y}_{k}-\boldsymbol{C}_{k} \check{\boldsymbol{x}}_{k}\right) x^k=xˇk+Kk(yk−Ckxˇk)
P ^ k = ( 1 − K k C k ) P ˇ k \hat{\boldsymbol{P}}_{k}=\left(\mathbf{1}-\boldsymbol{K}_{k} \boldsymbol{C}_{k}\right) \check{\boldsymbol{P}}_{k} P^k=(1−KkCk)Pˇk
即证。