首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Apache卡尔曼滤波器时,正确设置测量噪声矩阵

问使用Apache卡尔曼滤波器时,正确设置测量噪声矩阵
EN

Stack Overflow用户
提问于 2018-06-11 17:46:09
回答 1查看 69关注 0票数 0

在阿帕奇的卡尔曼滤波器代码中的KalmanFilter.java中,我发现了我无法解释的这一行:

代码语言:javascript
复制
} else if (measNoise.getRowDimension() != this.measurementMatrix.getRowDimension() || measNoise.getColumnDimension() != 1) {
                throw new MatrixDimensionMismatchException(measNoise.getRowDimension(), measNoise.getColumnDimension(), this.measurementMatrix.getRowDimension(), 1);
            }

显然,测量噪声应该是N x 1矩阵,measurementMatrix应该是N x ?大小矩阵,但是,我也发现:

代码语言:javascript
复制
RealMatrix s = this.measurementMatrix.multiply(this.errorCovariance).multiply(this.measurementMatrixT).add(this.measurementModel.getMeasurementNoise());

因此,this.measurementMatrix.multiply(this.errorCovariance).multiply(this.measurementMatrixT)部分将产生N x N矩阵,该矩阵不能添加到N x 1矩阵中。我哪里错了?

EN

回答 1

Stack Overflow用户

发布于 2018-06-28 15:12:29

事实证明,这是Apache的卡尔曼滤波器库(org.apache.commons:commons-math3)以前版本中的一个错误。升级到最新版本(3.6.1)解决了此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50794792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档