当前位置:网站首页>[转载]卡尔曼滤波(kalman filter)和均值滤波有什么关系?
[转载]卡尔曼滤波(kalman filter)和均值滤波有什么关系?
2022-08-05 12:20:00 【BIT_Legend】
本文转载自:卡尔曼滤波(kalman filter)和均值滤波有什么关系?
转载原因:原作者计划删除原博客
原作者知乎博客:青龙
感谢原作者的博客!!!
看了一篇文章《傻瓜也能懂的卡尔曼滤波器(翻译自外网博客)》,发现评论里很多人说看不懂,决定写一篇真傻瓜也能懂的卡尔曼滤波。
文章先从简单的平均值开始,问题从简单到复杂,最后引入卡尔曼滤波。
一、平均值
举个例子:如下图,有一个滑块在一根杆上,杆一端有一个测距激光头,现在要测量滑块的位置。
[激光头]->_______[滑块]__________
三次测量值:1米、0.9米、1.2米
显然取平均值(1+0.9+1.2)/3=1.033米更准确。
二、加权平均值
假设有两个激光头:
[两激光头]=》________[滑块]_________
两个激光头同时测出:1.1米和1.5米
平均值1.3米更准确吗?不一定,如果两个激光头的测量精度一样,那平均值1.3米就是更准确的。
如果它们测量精度不一样,比如激光头1测量误差方差为0.01,激光头2误差方差为0.1,那么单独激光头1的测量值1.1米比平均值1.3米更准确,因为激光头2实在太差了,可以计算一下平均值的方差
平均值的方差比激光头1的误差方差更大了,显然平均值不好。但是激光头2的测量值完全没用吗?可以换一种计算平均值的方法,叫做加权平均值
显然用0.9和0.1做加权平均,方差变小了,加权平均值比两个测量值都更准确。那加权平均值的两个权值取多少最好呢?可以假设 X1 的权值为a,则 X2 的权值为(1-a),代进去计算

这是关于a的二次函数,在

时加权平均值方差取得最小值(高中数学的二次函数极值问题),也就是X1和X2 的加权系数之比等于它们的方差之比的倒数。
三、卡尔曼滤波
现在滑块不是静止的了,是运动的,假设匀速运动,1米/秒,激光头每秒测量一次

xn 表示n时刻滑块位置, zn 表示n时刻激光头测量值, en 表示测量误差。显然现在不能对激光头多次测量值求平均或者加权平均了,因为滑块是运动的。怎么办呢?最简单的办法就是直接将 zn 作为结果,也就是 xn 的估计值xn=zn ,但是这不是最好的,因为滑块的运动方程没有用上。那就按最简单的求平均值的方式用上

这样计算是不是比直接用测量值作为结果更好呢,可以计算一下他们的估计值方差

显然这种求平均值的方法估计值方差更小,当n趋于无穷大时
![]()
还可以改变一下估计值的初值,比如以0作为初值

同样计算一下可以发现,n趋于无穷大时,估计值方差 D(Xn) 还是 D(Z)/3 ,也就是只要迭代次数足够,误差与初值无关,都收敛于同一个值。
其实上面的平均值还不是最优的,你可以试一下计算每一步的加权平均值,两个权值之比同样是方差之比的倒数。同样你会发现,估计值方差会收敛,收敛值与初值选择无关。
到这里发现没有,上面的结果很像卡尔曼滤波了,其实这就是卡尔曼滤波了,只不过状态转移方程和测量方程特别简单。把状态方程和测量方程换成标准的方程,同样地像上面那样,每一步迭代用最佳加权系数计算加权平均值,你就会发现这就是标准的卡尔曼滤波了,只要记住最佳加权系数之比等于方差之比的倒数。也就是说,卡尔曼滤波其实就是选择了最佳加权系数的加权平均。
上面说的状态方程和测量方程都是一维的,如果它们都是多维的会怎样呢?多维的方程组就需要用最小二乘法求解。一维的最小二乘解就是平均值,多维的最小二乘解可以理解为多维的平均值,而加权最小二乘解就是加权平均值。所以对于多维的状态方程和测量方程,在每一步迭代用加权最小二乘法计算状态估计值就可以了。
结论:卡尔曼滤波本质就是选择了最佳加权系数的加权平均;加权最小二乘法就是求多维加权平均。
理解这样有什么用?我发现有很多人一看到滤波有关的问题,就想去折腾看上去很高级的卡尔曼滤波,其实没必要,如果用平均值或者加权平均值(多维对应最小二乘法或者加权最小二乘法)能把所有测量值都包含了,一般就没必要折腾卡尔曼滤波了,本质上都是一样的,除非用卡尔曼滤波能引入额外的比较准确的观测值。
好了就到这了,需要的话可以补充详细的推导,我觉得只要理解道理就好,数学推导过程不重要。
边栏推荐
猜你喜欢

NFT卡牌游戏系统dapp开发NFT链游技术

AVL树大总结

isn't it?Is there anyone who can't locate the slow query problem of MySQL online?

Memory problems difficult to locate, it is because you do not use ASAN

软件设计七大原则之开闭原则(Open-Closed Principle, OCP)

Should you migrate your monolithic architecture to microservices?

STM32H743IIT6 study notes 03 - using third-party components FreeRTOS

MySQL's InnoDB thread model

【无标题】

食品饮料行业B2B商城系统:加速行业数字化转型,提升B2B平台交易效率
随机推荐
Cesium.js点线面绘制
[供应链·案例篇]疫情影响下的全球十大零售商都做了些什么
MySQL约束之check
Query optimization (TTFB is too long) left join index does not take effect
Shell script, help you improve the fishing time!
The memory problem is difficult to locate, that's because you don't use ASAN
使用ModelArts实现AnimeGANv2照片动漫化
华为分析&联运活动,助您提升游戏总体付费
2021 RoboCom 世界机器人开发者大赛-高职组(决赛)
Grid Infrastructure Installation Fails with Error
2022.08.03_每日一题
Object中的方法
Cesium.js 三维土壤地质剖面分割挖掘
一次多表关联顺序的慢查询——TiDB 关联特性
Small household appliance industry supply chain collaborative management system: help enterprises break through market competition and strengthen the rapid response capability of the supply chain
Shang Silicon Valley-JUC
C语言例题-打印日历
正则表达式实战
2021 RoboCom World Robot Developers Competition - Higher Vocational Group (Final)
家用电器行业数智化供应链系统:高效整合供应链,提升家电企业核心竞争力