TensorFlow - 卡尔曼滤波

TensorFlow - 卡尔曼滤波

flyfish
噪声:也是无用信号,是指观测数据对系统没有贡献或者起干扰作用的信号。
在传感器数据测量中,无用信号表现为幅度干扰。

例如温度测量中,传感器测量值与真实温度之间有一定的随机波动。
噪声是一个随机过程,随机过程有 功率谱密度函数。
高斯白噪声就是干扰信号幅度服从高斯分布,功率谱密度是均匀分布的。
测量是存储误差的,例如你拿着尺子去量一条线的长度,每次读数时都存在误差的,那解决这个问题是,我们是在相同条件下独立的测量这条线的长度,最后计算一个平均数。
还有另一类问题。
有个X,不同的时刻,X是不同的值,随着时刻t的值为X_t,但是X_t不知道是多少,我们就测量它,结果测量的值为Y_t,这个测量结果是包含误差的,误差为Z_t
于是就有这样的式子
Y t = X t + Z t Y_t=X_t+Z_t Yt=Xt+Zt
思路就是知道了 Y t Y_t Yt,估计下 X t X_t Xt是多少
在t时刻和t-1时刻,X的值分别是 X t X_t Xt X t − 1 ) X_t -_1) Xt1),X_t和 X t − 1 ) X_t -_1) Xt1)之间差了 W t W_t Wt
那就有这样的式子
X t = X t − 1 + W t X_t=X_t-1+W_t Xt=Xt1+Wt
这个式子就像测量室温,时刻t的温度值为 X t X_t Xt,但是天气情况,阳光情况,密闭情况都会影响到室内温度的变化,这个变化就是 W t W_t Wt
X 0 ∼ N ( 0 , σ 0 2 ) , W t ∼ N ( 0 , α 2 ) , Z t ∼ N ( 0 , β 2 ) , X 0 , W 1 , W 2 , ⋯   , Z 1 , Z 2 , ⋯ X_{0} \sim \mathrm{N}\left(0, \sigma_{0}^{2}\right), W_{t} \sim \mathrm{N}\left(0, \alpha^{2}\right), Z_{t} \sim \mathrm{N}\left(0, \beta^{2}\right), X_{0}, W_{1}, W_{2}, \cdots,Z_{1}, Z_{2}, \cdots X0N(0,σ02),WtN(0,α2),ZtN(0,β2),X0,W1,W2,,Z1,Z2,
它们之间都是相互独立的,

σ 0 2 , α 2 , β 2 \sigma_{0}^{2}, \alpha^{2},\beta^{2} σ02,α2,β2是已知的,通过 Y 1 , ⋯   , Y t Y_{1}, \cdots, Y_{t} Y1,,Yt估算 X t X_t Xt

t=1的时候,根据Y_1估算X_1
先组成方程组
X 1 = X 0 + W 1 , Y 1 = X 1 + Z 1 = X 0 + W 1 + Z 1 X_{1}=X_{0}+W_{1}, \quad Y_{1}=X_{1}+Z_{1}=X_{0}+W_{1}+Z_{1} X1=X0+W1,Y1=X1+Z1=X0+W1+Z1

再转换成矩阵形式

( Y 1 X 1 ) = ( 1 1 1 0 1 1 ) ( Z 1 W 1 X 0 ) \left( \begin{array}{l}{Y_{1}} \\ {X_{1}}\end{array}\right)=\left( \begin{array}{lll}{1} & {1} & {1} \\ {0} & {1} & {1}\end{array}\right) \left( \begin{array}{l}{Z_{1}} \\ {W_{1}} \\ {X_{0}}\end{array}\right) (Y1X1)=(101111)Z1W1X0

J ≡ ( 1 1 1 0 1 1 ) J \equiv \left( \begin{array}{lll}{1} & {1} & {1} \\ {0} & {1} & {1}\end{array}\right) J(101111)

( Y 1 X 1 ) ∼ N ( o , V 1 ) \left( \begin{array}{l}{Y_{1}} \\ {X_{1}}\end{array}\right) \sim \mathrm{N}\left(o, V_{1}\right) (Y1X1)N(o,V1)

V 1 ≡ J ( β 2 0 0 0 α 2 0 0 0 σ 0 2 ) J T = ( τ 1 2 + β 2 τ 1 2 τ 1 2 τ 1 2 ) V_{1} \equiv J \left( \begin{array}{ccc}{\beta^{2}} & {0} & {0} \\ {0} & {\alpha^{2}} & {0} \\ {0} & {0} & {\sigma_{0}^{2}}\end{array}\right) J^{T}=\left( \begin{array}{cc}{\tau_{1}^{2}+\beta^{2}} & {\tau_{1}^{2}} \\ {\tau_{1}^{2}} & {\tau_{1}^{2}}\end{array}\right) V1Jβ2000α2000σ02JT=(τ12+β2τ12τ12τ12)

τ 1 2 ≡ V [ X 1 ] = σ 0 2 + α 2 \tau_{1}^{2} \equiv \mathrm{V}\left[X_{1}\right]=\sigma_{0}^{2}+\alpha^{2} τ12V[X1]=σ02+α2

计算
μ 1 ≡ E [ X 1 ∣ Y 1 = y 1 ] = τ 1 2 y 1 τ 1 2 + β 2 σ 1 2 ≡ V [ X 1 ∣ Y 1 = y 1 ] = τ 1 2 β 2 τ 1 2 + β 2 \begin{aligned} \mu_{1} & \equiv \mathrm{E}\left[X_{1} | Y_{1}=y_{1}\right]=\frac{\tau_{1}^{2} y_{1}}{\tau_{1}^{2}+\beta^{2}} \\ \sigma_{1}^{2} & \equiv \mathrm{V}\left[X_{1} | Y_{1}=y_{1}\right]=\frac{\tau_{1}^{2} \beta^{2}}{\tau_{1}^{2}+\beta^{2}} \end{aligned} μ1σ12E[X1Y1=y1]=τ12+β2τ12y1V[X1Y1=y1]=τ12+β2τ12β2

上面是t=1的情况,再看t=2的情况
( Y 2 X 2 ) = ( 1 1 1 0 1 1 ) ( Z 2 W 2 X 1 ) \left( \begin{array}{c}{Y_{2}} \\ {X_{2}}\end{array}\right)=\left( \begin{array}{ccc}{1} & {1} & {1} \\ {0} & {1} & {1}\end{array}\right) \left( \begin{array}{l}{Z_{2}} \\ {W_{2}} \\ {X_{1}}\end{array}\right) (Y2X2)=(101111)Z2W2X1
μ 2 ≡ E [ X 2 ∣ Y 2 = y 2 , Y 1 = y 1 ] = μ 1 + τ 2 2 ( y 2 − μ 1 ) τ 2 2 + β 2 = τ 2 2 y 2 + β 2 μ 1 τ 2 2 + β 2 σ 2 2 = V [ X 2 ∣ Y 2 = y 2 , Y 1 = y 1 ] = τ 2 2 β 2 τ 2 2 + β 2 τ 2 2 = V [ X 2 ∣ Y 1 = y 1 ] = σ 1 2 + α 2 \begin{aligned} \mu_{2} & \equiv \mathrm{E}\left[X_{2} | Y_{2}=y_{2}, Y_{1}=y_{1}\right]=\mu_{1}+\frac{\tau_{2}^{2}\left(y_{2}-\mu_{1}\right)}{\tau_{2}^{2}+\beta^{2}}=\frac{\tau_{2}^{2} y_{2}+\beta^{2} \mu_{1}}{\tau_{2}^{2}+\beta^{2}} \\ \sigma_{2}^{2} &=\mathrm{V}\left[X_{2} | Y_{2}=y_{2}, Y_{1}=y_{1}\right]=\frac{\tau_{2}^{2} \beta^{2}}{\tau_{2}^{2}+\beta^{2}} \\ \tau_{2}^{2} &=\mathrm{V}\left[X_{2} | Y_{1}=y_{1}\right]=\sigma_{1}^{2}+\alpha^{2} \end{aligned} μ2σ22τ22E[X2Y2=y2,Y1=y1]=μ1+τ22+β2τ22(y2μ1)=τ22+β2τ22y2+β2μ1=V[X2Y2=y2,Y1=y1]=τ22+β2τ22β2=V[X2Y1=y1]=σ12+α2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西笑生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值