
十种常见的滤波算法(C语言实现)。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
1、限幅滤波法(又称程序判断滤波法)采用经验判断,确定两次采样允许的最大偏差值(设为A)。每次检测到新值时,系统会判断:如果本次值与上次值之差小于等于A,则本次值被认为是有效的;反之,本次值无效,放弃本次值,并使用上次值代替本次值。2、中位值滤波法通过连续采样N次(其中N为奇数),对N次采样值进行排序后,取中间值为本次有效值。该方法能够有效地克服因偶然因素引起的波动干扰,并且对温度、液位的缓慢变化参数具有良好的滤波效果。然而,它不适用于流量、速度等快速变化的参数。3、算术平均滤波法在连续取N个采样值后进行算术平均运算。当N较大时,信号的平滑度较高但灵敏度较低;当N较小时,信号的平滑度较低但灵敏度较高。通常情况下,流量选择N=12;压力选择N=4。该方法适用于对一般具有随机干扰的信号进行滤波,使得信号呈现一个平均值并在一定数值范围内上下波动。但对于测量速度较慢或要求数据计算速度较快的实时控制系统来说,存在浪费RAM的问题。4、递推平均滤波法(又称滑动平均滤波法)将连续取N个采样值的序列视为一个队列。队列的长度固定为N,每次采样到一个新数据时将其放入队尾并移除队首的数据(遵循先进先出原则)。然后对队列中的N个数据进行算术平均运算以获得新的滤波结果。通常情况下,流量选择N=12;压力选择N=4;液面选择N=4~12;温度选择N=1~4。该方法能够有效地抑制周期性干扰并提供较高的平滑度,适用于高频振荡的系统。但是其灵敏度较低且难以抑制偶然出现的脉冲性干扰以及由于脉冲干扰引起的采样值偏差,因此不适合脉冲干扰较为严重的场合,并且存在浪费RAM的情况.5、中位值平均滤波法(又称防脉冲干扰平均滤波法)是“中位值滤波法”和“算术平均滤波法”的融合实现。首先对连续采样到的N个数据去除一个最大值和一个最小值,然后计算剩余的(N-2)个数据的算术平均值为本次有效值的结果. 针对偶然出现的脉冲性干扰,可以消除由于脉冲干扰所引起的采样值的偏差.6、限幅平均滤波法是“限幅滤波法”和“递推平均滤波法”的结合实现方案。“限幅处理”之后再送入队列进行递推平均滤波器处理. 该方法融合了两种方法的优点,能够有效消除偶然出现的脉冲性干扰带来的影响.7、一阶滞后滤波法采用a=0~1的值来确定本次过滤结果。(1-a) * 本次采样 值 + a * 上次过滤结果作为本次过滤的结果. 该方法在波动频率较高的场合具有良好的抑制周期性干扰的作用,但其相位滞后且灵敏度较低,滞后程度取决于a的值的大小. 不能消除频率高于采样频率一半的 1/2 的干扰信号.8、加权递推平均滤波法的改进版本,即不同时刻的数据赋予不同的权重系数,通常越接近当前时刻的数据权重越大,给予新采样值的权系数越大则灵敏度越高,但信号平滑度也越低. 适用于有较大纯滞后时间常数的对象和采样周期较短的系统. 对于纯滞后时间常数较小且采样周期较长的信号变化缓慢的情况,无法迅速反应系统当前所受到的干扰程度,导致滤波器效果不佳9、消抖滤波法的核心在于设置一个计数器来记录相邻两次采样的差异数量。“如果当前采样的数值与前一次有效数值相等则清零;否则计数器+1”,当计数器溢出时将当前数值替换为有效数值并清空计数器 。 该方法对于变化缓慢的被测参数具有较好的过滤效果并能避免控制器反复开/关跳动或显示器数值抖动问题 。 但对于快速变化的参数不宜使用 。 10、限幅消抖滤波器结合了“限幅滤波器”和“消抖滤波器”的功能。“先进行限幅处理后再进行消抖处理”。继承了两种方法的优点并改进了消抖滤波器中的一些缺陷以避免将错误的值导入系统。
全部评论 (0)


