kalman滤波实现曲线平滑

本文介绍如何通过Kalman滤波在Qt画板中平滑曲线。针对鼠标绘制时的抖动问题,应用Kalman滤波器进行坐标优化。文中详细阐述了Kalman滤波的基本原理,包括预测状态、预测协方差、Kalman增益、更新最优值和更新协方差等方程,并展示了滤波前后的效果对比,实现了更平滑的绘图体验。
摘要由CSDN通过智能技术生成

kalman滤波实现曲线平滑(qt画板)

使用qt完成画板绘图功能,由鼠标移动选取坐标完成绘制,但是因为抖动的因素导致绘制线条不够平滑,考虑使用kalman滤波优化坐标选择。

一、kalman滤波简单理解

Kalman滤波主要是用来跟踪某一个变量的值(在此为绘图的坐标位置)。首先根据系统的运动方程来对该值进行预测,比如我们知道本次点的位置以及运动方向,速率,则下时刻它的位置是可以预测到的,不过该预测会有误差(比如改变方向,改变速率),只能作为跟踪的依据。另一个依据是可以用测量手段来测量那个变量的值,当前鼠标的位置信息,当然该测量值可能不是我们需要的(比如抖动原因),所以可以看作有误差,也只能作为依据,不过这两个依据的权重比例不同。Kalman滤波就是利用这两个依据进行一系列迭代对目标进行预测并修正的。
Kalman滤波主要分为两个方面:预测下一个时刻的位置;修正当前状态的位置。采用递归的方法解决,并且其只需要当前的测量值(当前鼠标采集的坐标位置)和前一个采样周期的估计值就能进行状态估计,需要的存储空间小,每一步的计算量小。

二、kalman滤波方程

1.预测状态方程

由k-1时刻的最优值(k-1时刻kalman滤波的输出的点位置)和k时刻输入的点的位置计算出k时刻的预测值。

方程:在这里插入图片描述

2.预测协方差方程

由k-1时刻的系统协方差预测k时刻系统协方差(由k-1时刻对点的改变程度预测k时刻对输入点位置的改变程度)

方程:在这里插入图片描述

3.kalman增益方程

根据k时刻的协方差矩阵的预测值计算卡尔曼增益

方程:
在这里插入图片描述

4.更新最优值方程(卡尔曼滤波输出)

根据状态变量的预测值和系统测量值计算出k时刻状态变量的最优值(k时刻输出的点的位置)

方程:在这里插入图片描述

5.跟新协方差方程

求k时刻的协方差矩阵。(为得到k+1时刻的卡尔曼输出值做准备)

方程:在这里插入图片描述

五个方程的功能:方程1,2为预测方程,方程3计算kalman增益(采集的点占比的权重与预测点占比权重的分配),方程4利用两个预测值和比例计算输出量,方程5为下一时刻的方程预测做准备完成一个周期的循环。

三、滤波效果

未增加滤波效果
未增加滤波效果
增加滤波后效果
增加滤波后效果

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值