Matrix 卡尔曼增益和误差协方差矩阵应该是对角的吗?

Matrix 卡尔曼增益和误差协方差矩阵应该是对角的吗?,matrix,kalman-filter,Matrix,Kalman Filter,我开发了一个扩展卡尔曼滤波器,并将卡尔曼增益矩阵、前一状态、当前状态和下一状态误差协方差矩阵初始化为1的对角线。在第一个样本之后,矩阵不再是对角的。这是正确的还是应该保持对角线?协方差矩阵(通常称为p)是对您状态中错误的估计。对角线元素是状态变量的方差。非对角元素表示状态变量(误差/不确定性)之间的相关性 通常,通过将对角元素设置为状态初始值中的不确定性(在大多数情况下相当大)来初始化p,运行过滤器时,测量值将降低不确定性,并且在几乎所有情况下,非对角元素将变为非零 请注意,p应该是对称的,并且

我开发了一个扩展卡尔曼滤波器,并将卡尔曼增益矩阵、前一状态、当前状态和下一状态误差协方差矩阵初始化为1的对角线。在第一个样本之后,矩阵不再是对角的。这是正确的还是应该保持对角线?

协方差矩阵(通常称为p)是对您状态中错误的估计。对角线元素是状态变量的方差。非对角元素表示状态变量(误差/不确定性)之间的相关性

通常,通过将对角元素设置为状态初始值中的不确定性(在大多数情况下相当大)来初始化p,运行过滤器时,测量值将降低不确定性,并且在几乎所有情况下,非对角元素将变为非零


请注意,p应该是对称的,并且保持对称。

什么时候发生相关性?当你写出KF方程时,你会观察到它,例如传播:x=Ax+w,p=APA^T+Q。例如:对于KF估计位置和速度,a={{1,T^2},{0,1}。如果应用P的传播,你会发现P中的非对角元素现在是非零的,这意味着我不能控制它们?换句话说,如果我把它们设为零会发生什么?或者我应该应用这些方程,就这样?你可以先把偏移对角线设为零,但在那之后,你就不要碰它们了。在繁殖过程中,它们变大了。经过测量,它们变小了。对于上述简单的2状态位置速度过滤器的情况,非对角矩阵元素确保如果有速度测量,位置也会得到校正。如果将它们设置为零,则不会出现这种情况。所以,协方差矩阵“知道”一个状态中有多少错误导致了其他状态中的错误。我有一个类似的问题。我的矩阵P不是对称的。我不知道如何调试这个问题:(关于误差协方差矩阵的半正定性的交叉验证回答: