问题在哪?
在使用移动设备传感器时,会出现数据抖动现象(帕金森),传感器数据会在极小的范围内来回抖动,导致业务展示出现帕金森现象。
最常见的就是手机姿态传感器,xyz的值一直在变化。为了让数据的变化平滑,我们必须对数据进行清洗和处理,再使用。
解决方案
1.窗口平均
我们可以取一个窗口,一般为4或者6,然后我们对这个窗口里的值进行取平均,然后得出输出值,然后再使用。
代码就不附了,这个思路非常简单。
优点:使用简单,可以更换窗口的大小来调优
缺点:趋势性被大幅降低,转折点钝化
2.N阶低通滤波器
其实这个也是取平均的一种做法,只不过进行的全部的加权。做法如下:
取影响系数X,则前置系数为(1-X)。得到方程
Output[n] = (1-X) * Ouput[n-1] + X * Output[n]
这个就是简单的1阶低通滤波器。以此类推我们可以得到N阶低通滤波器,有:
Y(n)=a1 * X(n-10)+a2 * X(n-9)+…a11 * X(n)+a12 * X(n+1)+…+a21 * X(n+10)
令a1 + a2 + … an = 1 即可。
调优方式:n-1 的系数 > n-2 的系数>> n-10的系数这样,越近的权重越大,则趋势越明显。
根据不同场景调优后,曲线光滑,稳定。