概述
#Kalman filter
一个线性时不变系统如下:
x
k
+
1
=
A
x
k
+
B
u
k
+
w
k
y
k
=
C
x
k
+
v
k
x_{k+1} = Ax_k+Bu_k+w_k\ y_k = Cx_k+v_k
xk+1=Axk+Buk+wkyk=Cxk+vk
其中,
w
k
w_k
wk是process noise,
w
k
∈
R
n
w_kinmathbb{R}^n
wk∈Rn,
w
k
∼
N
(
0
,
Q
)
w_ksim mathcal{N}(0, Q)
wk∼N(0,Q),
v
k
v_k
vk是mearsurement ,
v
k
∼
R
m
v_ksimmathbb{R}^{m}
vk∼Rm
v
k
∈
N
(
0
,
R
)
v_kinmathcal{N}(0,R)
vk∈N(0,R),
A
,
B
,
C
A,B,C
A,B,C分别为系统参数,
x
k
+
1
x_{k+1}
xk+1代表
k
+
1
k+1
k+1 时刻状态变量的值,
y
k
y_k
yk表示
k
k
k 时刻测量值。
以下内容参考维基百科:
卡尔曼滤波是一种递归的估计,即只要获知上一时刻状态的估计值以及当前状态的观测值就可以计算出当前状态的估计值,因此不需要记录观测或者估计的历史信息。卡尔曼滤波器与大多数滤波器不同之处,在于它是一种纯粹的时域滤波器,它不需要像低通滤波器等频域滤波器那样,需要在频域设计再转换到时域实现。
卡尔曼滤波器的状态由以下两个变量表示:
$hat x_{k|k} $,在时刻k的状态的估计;
P k ∣ k {textbf {P}}_{k|k} Pk∣k,后验估计误差协方差矩阵,度量估计值的精确程度。
卡尔曼滤波器的操作包括两个阶段:预测与更新。在预测阶段,滤波器使用上一状态的估计,做出对当前状态的估计。在更新阶段,滤波器利用对当前状态的观测值优化在预测阶段获得的预测值,以获得一个更精确的新估计值。
首先定义几个接下来需要用的的变量。
P
k
∣
k
=
c
o
v
(
x
k
−
x
^
k
∣
k
)
{textbf {P}}_{k|k} = cov(x_k-hat x_{k|k})
Pk∣k=cov(xk−x^k∣k)
P
k
∣
k
=
c
o
v
(
x
k
−
x
^
k
∣
k
−
1
)
{textbf {P}}_{k|k} = cov(x_k-hat x_{k|k-1})
Pk∣k=cov(xk−x^k∣k−1)
S
k
=
c
o
v
(
y
k
−
C
x
^
k
∣
k
−
1
)
{textbf {S}}_{k} = cov(y_{k}-Chat x_{k|k-1})
Sk=cov(yk−Cx^k∣k−1)
最后
以上就是听话绿茶为你收集整理的kalman filter 卡尔曼滤波 公式推导的全部内容,希望文章能够帮你解决kalman filter 卡尔曼滤波 公式推导所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复