凡亿专栏 | C语言宝典:简谈十种软件滤波方法
C语言宝典:简谈十种软件滤波方法

在C语言编程中,软件滤波是处理传感器数据、减少噪声和干扰的重要手段,下面将列出十种软件滤波方法,希望对小伙伴们有所帮助。

image.png

1、限幅滤波法

方法:设定两次采样允许的最大偏差值,若新值与旧值之差超过此值,则视为无效,用旧值替代。

优点:能有效克服偶然因素引起的脉冲干扰。

缺点:无法抑制周期性干扰,平滑度差。

2、中位值滤波法

方法:连续采样N次(N取奇数),将采样值排序后取中间值作为有效值。

优点:对温度、液位等变化缓慢的参数有良好的滤波效果。

缺点:对流量、速度等快速变化的参数不宜。

3、算数平均滤波法

方法:连续取N个采样值进行算术平均运算。

优点:适用于一般具有随机干扰的信号滤波。

缺点:测量速度较慢或要求数据计算速度较快的实时控制不适用,浪费RAM。

4、递推平均滤波法(滑动平均滤波法)

方法:将连续N个采样值视为队列,每次新采样值放入队尾并移植队首值,计算队列平均值。

优点:对周期性干扰有良好的抑制作用,平滑度高。

缺点:灵敏度低,对脉冲星干扰抑制交叉,浪费RAM。

5、中位值平均滤波法

方法:连续采样N个数据,去掉一个最大值和一个最小值,计算剩余N-2个数据的算术平均值。

优点:融合中位值和算术平均滤波法的优点,能消除脉冲干扰引起的偏差。

缺点:测量速度慢,浪费RAM。

6、限幅平均滤波法

方法:先进行限幅处理,再进行递推平均滤波。

优点:结合限幅和递推平均滤波的优点,能消除脉冲干扰。

缺点:浪费RAM。

7、一阶滞后滤波法

方法:本次滤波结果 = (1-a) * 本次采样值 + a * 上次滤波结果,a为滤波系数。

优点:对周期性干扰有良好抑制作用,适用于波动频率较高的场合。

缺点:相位滞后,灵敏度低。

8、加权递推平均滤波法

方法:不同时刻的数据赋予不同权重,新数据权重较大。

优点:适用于有较大纯滞后时间常数的对象和采样周期较短的系统。

缺点:对纯滞后时间常数较小、采样周期较长的信号滤波效果差。

9、消抖滤波法

方法:设置一个计数器,比较采样值与当前有效值,若不同则计数器加1,达到上限则替换有效值。

优点:对变化缓慢的参数有较好的滤波效果,避免临界值附近的抖动。

缺点:对快速变化的参数不宜。

10、限幅消抖滤波法

方法:先进行限幅处理,再进行消抖滤波。

优点:结合限幅和消抖的优点,避免将干扰值导入系统。

缺点:对快速变化的参数不宜。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论