7

我正在研究安卓手机的加速度计。我希望过滤掉加速度计返回的记录手机动作的可怕噪音。

我正在阅读卡尔曼滤波器,因为低通是不够的。

但是我没有从ACCELERATION(k-1)到过渡的模型,ACCELERATION(k)因为它是用户的动作。所以我没有状态转移矩阵(不同论文中的 H 或 F,在等式 Xk = H Xk-1 + B命令+噪声中乘以 Xk-1 的那个)

我看到一些人在简单的例子中使用单位矩阵。它如何用于动态加速?

我知道卡尔曼滤波器,人们总是会产生一些 H 矩阵,我只是不知道在我的情况下如何。

4

4 回答 4

5

卡尔曼滤波器通常被认为是一个线性滤波器,其中您拥有所有模型矩阵,但滤波器的概念及其最初的应用来自非线性模型。在这种情况下,您使用函数而不是矩阵。

如果预测和更新函数是高度非线性的,您可以使用统计方法在线估计您的参数。您首先可以看到的是unscented kalman 滤波器,它从确定性采样技术中恢复均值和协方差 - unscented 变换。我认为在你的情况下,这可能是最好的开始。

卡尔曼滤波器还有其他变体。您可以从维基百科开始,但如果您搜索“自适应卡尔曼滤波器”,您可以看到该主题的多样性。

如果您想更深入地了解该主题但没有必要从所有数学开始,我推荐非常好的书:Kalman Filter for Beginners to start with Phil Kim。传感器融合还有其他可能性,但它是另一个广泛的主题。

于 2013-01-23T13:28:59.963 回答
4

您可以使用单位矩阵。

在没有任何新测量的情况下,状态转移矩阵用于根据当前状态预测未来状态。正如您所说,在您的情况下,您没有任何方法可以预测未来状态(加速度) - 所以您最好的猜测是未来状态(加速度)与当前状态相同。这正是单位矩阵的作用。

在许多卡尔曼滤波器中,有一些方法可以根据当前状态预测未来状态,这就是非恒等状态转换矩阵将介入的地方。例如,假设您的卡尔曼滤波器根据 GPS 和速度计估计车辆位置和速度; 那么即使没有新的测量值,您也可以通过根据速度改变位置来预测未来的位置。戴夫的回答展示了如何使用状态转换矩阵来做到这一点。

于 2013-11-30T12:40:36.210 回答
2

给定一个状态向量[x, v_x, a_x],即物体在一个方向上的位置、速度和加速度(同样的逻辑适用于其他两个自由度)。您通常将状态转换矩阵定义为

1   dt   0.5*dt*dt
0   1    dt
0   0    1

如果你把它写出来,你会得到:

xnew = x+v_x*dt + 0.5*a_x*dt*dt
vnew = v_x + a_x*dt
anew = a_x

这些是物体以恒定加速度运动的运动方程。

在卡尔曼框架中处理未知用户引起的运动的方式是通过植物噪声项。您假设,不是以完全相同的加速度继续前进,而是对加速度(以及状态的其他组件)存在未知的随机扰动。

于 2013-02-26T18:50:56.620 回答
-1

卡尔曼滤波器的作用在于它进行预测,然后根据您的观察纠正您的预测。如果您的模型不是很动态,尽管您的模型假定位置不变,但根据您的观察,您会得到介于两者之间的东西。所以 Identity 可以工作。

于 2017-03-31T01:36:12.950 回答