kalman滤波实现曲线平滑(qt画板)
使用qt完成画板绘图功能,由鼠标移动选取坐标完成绘制,但是因为抖动的因素导致绘制线条不够平滑,考虑使用kalman滤波优化坐标选择。
一、kalman滤波简单理解
Kalman滤波主要是用来跟踪某一个变量的值(在此为绘图的坐标位置)。首先根据系统的运动方程来对该值进行预测,比如我们知道本次点的位置以及运动方向,速率,则下时刻它的位置是可以预测到的,不过该预测会有误差(比如改变方向,改变速率),只能作为跟踪的依据。另一个依据是可以用测量手段来测量那个变量的值,当前鼠标的位置信息,当然该测量值可能不是我们需要的(比如抖动原因),所以可以看作有误差,也只能作为依据,不过这两个依据的权重比例不同。Kalman滤波就是利用这两个依据进行一系列迭代对目标进行预测并修正的。
Kalman滤波主要分为两个方面:预测下一个时刻的位置;修正当前状态的位置。采用递归的方法解决,并且其只需要当前的测量值(当前鼠标采集的坐标位置)和前一个采样周期的估计值就能进行状态估计,需要的存储空间小,每一步的计算量小。
二、kalman滤波方程
1.预测状态方程
由k-1时刻的最优值(k-1时刻kalman滤波的输出的点位置)和k时刻输入的点的位置计算出k时刻的预测值。
方程: