徐亦达卡尔曼滤波自测题

https://www.youtube.com/watch?v=YhxuD00S9WA&pbjreload=10

https://github.com/roboticcam/matlab_demos/blob/master/kalman_demo.m

1.给定哪些变量,可以完全确定一个卡尔曼滤波过程。

   1)初始概率  2)隐状态的条件概率,即transmition probability 3) 基于隐状态的观测概率,即 measurement   probability/ emit probability

2.三种常用的动态模型dynamic model有哪些:

  离散状态动态模型 hmm;线性高斯动态模型;非线性非高斯动态模型 

3.画出三种动态模型,以及对应的三个因子

  状态转移概率P(x_{t}|x_{t-1}) 测量概率P(y_{t}|y_{t}) 初始概率P(x_{1})  
离散状态动态模型 hmm 状态转移矩阵,一行对应上一状态,一列对应下一个状态,每一行概率和为1,每一列概率和为1 any 给定\pi HMM =\{A, B, \pi\}
线性高斯动态模型 kalman filter N(Ax_{t-1}+B, Q) N(Hx_{t}+C, R) N(\mu_{0}, \sigma_{0}) LDM = \{A, B, Q, H, C, R\}
非线性非高斯动态模型 particle filter f(x_{t-1}) g(x_{t}) f(x_{0})  

4.状态转移概率形式:

N(Ax_{t-1}+B, Q)

,那么函数形式什么样?

x_{t} = Ax_{t-1}+B+w, w\in N(0, Q)

  其中w是参数吗?

扫描二维码关注公众号,回复: 9153126 查看本文章

w不是,是噪音,Q才是参数

5.观测概率形式:

N(Hx_{t}+C, R)

  那么函数形式是什么样?

  y_{t}=Hx_{t}+C+v, v \in N(0, R)

   那么v是参数吗?不是,是噪音,R是参数

6.举例说明卡尔曼滤波的应用

   在一维有噪声,加速运动中

7.写出上应用中,通用卡尔曼滤波公式和其对应的具体形式。

\left\{\begin{matrix} &S_{t} =S_{t-1}+V_{t-1}\Delta t + \frac{1}{2} a \Delta t^{2} \\ & V_{t} = V_{t-1} + a\Delta t \end{matrix}\right.     其中a\sim N(0, \sigma^{2})

x_{t}=\bigl(\begin{smallmatrix} S_{t} & \\ V{t} & \end{smallmatrix}\bigr),那么对应到通用卡尔曼公式形式为:

x_{t}=\begin{bmatrix} 1 & \Delta t\\ 0 & 1 \end{bmatrix} x_{t-1}+ \begin{bmatrix} \frac{1}{2}\Delta t^{2}\\ \Delta t \end{bmatrix}a, 对应到通用公式,B=0, 加号后面的式子是w的一部分,w的完整形式,是按照求出来高斯采样后,加上这部分,共同了高斯噪声。那么参数Q,就是x_t的协方差

E(w*w^{T})=E\{a^2\begin{bmatrix} \frac{1}{4}\Delta t^4 & \frac{1}{2}\Delta t^3\\ \frac{1}{2}\Delta t^3 & \Delta t^2 \end{bmatrix} \} \\ =\sigma^2\begin{bmatrix} \frac{1}{4}\Delta t^4 & \frac{1}{2}\Delta t^3\\ \frac{1}{2}\Delta t^3 & \Delta t^2 \end{bmatrix}

而观测概率函数对应的形式为:

y_{t}=\begin{bmatrix} 1&0 \end{bmatrix} x_t, 那么y_t对应的协方差矩阵为,\sigma^2_y_t =\begin{bmatrix} 1\\ 0 \end{bmatrix}\sigma^2(x_t)=\\ \begin{bmatrix} 1 &0 \end{bmatrix}\sigma^2\begin{bmatrix} \frac{1}{4}\Delta t^4 & \frac{1}{2}\Delta t^3\\ \frac{1}{2}\Delta t^3 & \Delta t^2 \end{bmatrix} \\ =\sigma^2\begin{bmatrix} \frac{1}{4}\Delta t^4 & \frac{1}{2} \Delta t^3 \end{bmatrix}, 而结果里面后面的一项是没有意义的,可以直接扔掉,求得 y_t的方差,即R = \frac{1}{4}\sigma^2 \Delta ^4

8. 卡尔曼滤波里面的filtering指的是什么?

P(x_t|y_1, ..., y_t)

9. 卡尔曼滤波里面预测和更新公式各是什么?

  预测:P(x_t|y_1, ..., y_{t-1})

 更新:P(x_t|y_1, ..., y_t)


更详细的用于计算的是:

预测是:\bar{\mu_t} = A\hat\mu_{t-1}+B\\ \bar\Sigma_t = A \hat\Sigma_{t-1}A^T + Q

更新是(主要是后面两个式子,上面两个式子S, K是中间变量):

S=H\bar\Sigma_t H^T+R \\ K = \bar\Sigma_t H^T S^{-1} \\ \hat\mu_t = \bar\mu_t + K(y_t - H\bar\mu_t) \\ \hat\Sigma_t = (1-KH)\bar\Sigma_t

在预测和更新公式里面,A,B, Q, H, R都是给定的,(比如在一维速度,加速度,位移例子中,如第七题中,A,B,Q,H,R都是对应到物理公式里面去的), 初始值\hat\mu_1, \hat\Sigma_1, 也是给定的,这样就可以按照时间依次求出2,3,4...时刻的\mu, \Sigma

实际的预测值就是\bar\mu_t, 概率最大,作为预测输出。


10. 推导卡尔曼更新update公式的递归形式

P(x_t|y_1, ..., y_t) \propto P(x_t, y_1, ..., y_t) \\ =P(y_t|x_t, y_1, ..., y_{t-1}) P(x_t, y_1, ..., y_{t-1}) \\ \propto P(y_t|x_t) P(x_t | y_1, ..., y_{t-1})

其中P(x_t | y_1, ..., y_{t-1}) = \int_{x_{t-1}} P(x_t, x_{t-1}| y_1, ..., y_{t-1}) dx_{t-1} \\ = \int_{x_{t-1}}P(x_t, x_{t-1}, y1, ..., y_{t-1}) / P(y1, ...,, y_{t-1}) dx_{t-1} \\ =\int_{x_{t-1}}P(x_t , x_{t-1}, y_1, .., y_{t-1}) / P(x_{t-1}, y_1, ..., y_{t-1}) \times P(x_{t-1}, y_1, ..., y_{t-1}) / P(y_1, ..., y_{t-1}) dx_{t-1} \\ = \int_{x_{t-1}}P(x_t| x_{t-1}, y1,..., y_{t-1}) \times P(x_{t-1} | y_1, ..., y_{t-1} ) \\ =\int_{x_{t-1}}P(x_t | x_{t-1}) \times P(x_{t-1} | y_1, ..., y_{t-1})

发布了159 篇原创文章 · 获赞 55 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/northeastsqure/article/details/103305156
今日推荐