在C语言编程中,软件滤波是处理传感器数据、减少噪声和干扰的重要手段,下面将列出十种软件滤波方法,希望对小伙伴们有所帮助。
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、限幅消抖滤波法
方法:先进行限幅处理,再进行消抖滤波。
优点:结合限幅和消抖的优点,避免将干扰值导入系统。
缺点:对快速变化的参数不宜。
本文凡亿教育原创文章,转载请注明来源!