昨天打开库文件,学习下,发现并不是简单的中值滤波。
“中值滤波”一般取奇数个采样值,将中间值作为输出。
“去极值平均滤波”,是采样n个,去掉两个极值对n-1个采样值求均值,下个周期重新采样新的n个值。
凌侠编写的应该是“滑动去极值平均滤波”,即每次采样一个值,替换掉缓存区的最老的那个值(环形队列),再去掉俩极值,最后求均值。该滤波对周期性干扰和脉冲性干扰有很好的抑制作用,平滑度高,灵敏度并不强,不适合模拟量变化较快的场合。
凌侠的环形队列,和不排序求均值写得很亮。
疑问是,为什么设置最大值最小值标志位,当来了一个最大值,故意将其丢掉,不更新环形队列,下次才将其更新到队列,进行计算。是这样吗?这样效果更好嘛