STM32F4关于AD采样数据不稳定时“消抖”处理的几种方法

  STM32在利用AD采集时,若是是采集的传感器数据或其余传入的数据的灵敏度至关高,或者由于其余缘由致使数据不稳定,AD采样采集进去后,数据抖动明显,影响后期的数据利用,就须要对波动数据进行简单的处理,如下是慕尘提供的可供尝试的思路。大数据

  1、平均值滤波基础

  最为简单且容易想到的就是平均值滤波,屡次采样数据,而后取平均值,好比采样一组16包数据,对16包数据取平均,默认此时结果有效;可是均值滤波会将毛刺和错误的值也计算其中,同时,若是数据的波动不均匀,也会致使结果不稳定;再此基础上,咱们能够进一步考虑二次均值滤波,对多组采样数据取平均,而后再对取得的平均值再次进行平均,最后获得结果。方法

  2、四舍五入数据

  若是是对采样数据的精度要求不是很严格或者采样的数据在某种程度上面知足须要,就能够采起这种方法,以丢失部分精度来换取数据的稳定,便于后期处理。至于“四舍五入”,倒不必定非得是真的要按照四舍五入,好比,若是一组数据是3.23 4.45 5.78  6.88 7.01 8.34,按照须要能够进行整数位的四舍五入,或者小数十分位的四舍五入(可先将十分位数据倍乘十,再进行取整),以此类推;可是ha也能够按照必定的范围来设置四舍五入,好比上面这组数据,不必定非得取整四舍五入,能够选取必定范围,认为在这个范围里面的数就为有效,咱们能够认为整数附近加减0.3的数据均为有效,这样就能够筛选数据,可能这个方法适用于波动跳跃稍微大一些的状况。采集

  3、中值滤波错误

  屡次采样数据获得一组样本,而后对采样数据进行排列,取这组数据的中位值,便可;可是中值滤波会比较受到极值的干扰,两端的波动会干扰最终数据的稳定,咱们能够在中值滤波的基础上再进一步处理,前面已经获得了一组采样数据,咱们能够取多组采样数据,而后同时对多组采样数据排列后取中位值,若是最终的数据结果被要求在某一范围内,那么咱们能够设定这多组数据的中位值若是当中存在n次处于有效范围内,就认为这次中值有效,不然从新进行采样取值;若是最终结果没有指望范围,就能够直接再对这些中值排列取中位值,进行二次中值滤波,可是这样会对采样速率有必定要求。

  4、方差

  进行多组数据采样,而后对每一组的数据进行方差处理,最后获得最小方差的一组数据,能够认为这组数据的波动最小,而后再取这组最小方差的数据取平均,获得结果;

  小结:上述方法只是可供参考的简单的,在实际面对AD采样时数据抖动时的处理,固然还会存在更多更有效的滤波处理方法。能够想见的是上述方法都存在必定的缺陷,须要针对实际的状况来采起恰当的方法,好比上述的二次均值滤波,二次中值滤波,其实认真一看不过是加大采样率扩大数据样本的结果而已。

   

      牧尘执笔,转载请注明出处。

相关文章
相关标签/搜索