钓鱼滤波
汽车油箱的液位在变化,一是因为油被吸走了,慢慢变少了。二是路面颠簸,油在晃荡。
司机只想知道还有多少油,能开多少路,不关心晃荡。
于是仪表上的油位,不能晃动,要反映油量的消耗,于是用到滤波(也叫阻尼)。
滤波的方法:
①限幅。本次测量值与上一次比较,小于最大偏移,则保留数据,大于最大偏移,则是上一次+最大偏移值。
②平均。取N次测量值,求平均值。害群之马会带偏,N越大,占用时间越长,把波形拉平而失真。
③取中位数,连续取三个值,去大放小,留下中值。中值再与后两次比较。
④掐头去尾再平均。取20个测量值,排序,把高5位和低5位去掉,中间10位平均。这种方法精度高,但是占用时间。
⑤钓鱼。设定一个初值,每次测量值与初值比较,大则加1,小则减1。更新的初值,不仅避免了干扰,而且把握了趋势。用DMA或中断方式,不占用CPU的算力,需要显示或控制的数,经过了钓鱼滤波,只服鱼线,不理水的波动。