滤波各种算法优缺点
C语言十大滤波算法

十大滤波算法程序大全精心整理版转自网络11、限幅滤波法函数名称:AmplitudeLimiterFilter-限幅滤波法优点:能有效克服因偶然因素引起的脉冲干扰缺点:无法抑制那种周期性的干扰,且平滑度差说明:1、调用函数GetAD,该函数用来取得当前值2、变量说明Value:最近一次有效采样的值,该变量为全局变量NewValue:当前采样的值ReturnValue:返回值3、常量说明A:两次采样的最大误差值,该值需要使用者根据实际情况设置入口:Value,上一次有效的采样值,在主程序里赋值出口:ReturnValue,返回值,本次滤波结果/define A 10unsigned char Valueunsigned char AmplitudeLimiterFilter {unsigned char NewValue;unsigned char ReturnValue;NewValue=GatAD;ifNewValue-Value>A||Value-NewValue>A ReturnValue=Value;else ReturnValue=NewValue;returnReturnValue;}2、中位值滤波法/函数名称:MiddlevalueFilter-中位值滤波法优点:能有效克服因偶然因素引起的波动干扰;对温度、液位等变化缓慢的被测参数有良好的滤波效果缺点:对流量,速度等快速变化的参数不宜说明:1、调用函数GetAD,该函数用来取得当前值Delay,基本延时函数2、变量说明ArrDataBufferN:用来存放一次性采集的N组数据Temp:完成冒泡法试用的临时寄存器i,j,k:循环试用的参数值3、常量说明N:数组长度入口:出口:value_bufN-1/2,返回值,本次滤波结果/define N 11unsigned char MiddlevalueFilter {unsigned char value_bufN;unsigned char i,j,k,temp;fori=0;i<N;i++{value_bufi = get_ad;delay;}for j=0;j<N-1;j++{for k=0;k<N-j;k++{ifvalue_bufk>value_bufk+1{temp = value_bufk;value_bufk = value_bufk+1;value_bufk+1 = temp;}}}return value_bufN-1/2;}3、算术平均滤波法/说明:连续取N个采样值进行算术平均运算优点:试用于对一般具有随机干扰的信号进行滤波;这种信号的特点是有一个平均值,信号在某一数值范围附近上下波动;缺点:对于测量速度较慢或要求数据计算较快的实时控制不适用;/define N 12char filter{unsigned int sum = 0;unsigned char i;for i=0;i<N;i++{sum + = get_ad;delay;}returncharsum/N;}4、递推平均滤波法又称滑动平均滤波法/说明:把连续N个采样值看成一个队列,队列长度固定为N;每次采样到一个新数据放入队尾,并扔掉队首的一次数据;把队列中的N各数据进行平均运算,既获得新的滤波结果;优点:对周期性干扰有良好的抑制作用,平滑度高;试用于高频振荡的系统缺点:灵敏度低;对偶然出现的脉冲性干扰的抑制作用较差,不适于脉冲干扰较严重的场合/define N 12unsigned char value_bufN;unsigned char filter{unsigned char i;unsigned char value;int sum=0;value_bufi++ = get_ad; //采集到的数据放入最高位fori=0;i<N;i++{value_bufi=value_bufi+1; //所有数据左移,低位扔掉sum += value_bufi;}value = sum/N;returnvalue;}5、中位值平均滤波法又称防脉冲干扰平均滤波法/说明:采一组队列去掉最大值和最小值优点:融合了两种滤波的优点;对于偶然出现的脉冲性干扰,可消除有其引起的采样值偏差;对周期干扰有良好的抑制作用,平滑度高,适于高频振荡的系统;缺点:测量速度慢/define N 12uchar filter{unsigned char i,j,k,l;unsigned char temp,sum=0,value; unsigned char value_bufN,;fori=0;i<N;i++{value_bufi = get_ad;delay;}//采样值从小到大排列冒泡法forj=0;j<N-1;j++{fori=0;i<N-j;i++{ifvalue_bufi>value_bufi+1{temp = value_bufi;value_bufi = value_bufi+1;value_bufi+1 = temp;}}}fori=1;i<N-1;i++sum += value_bufi;value = sum/N-2;returnvalue;}6、递推中位值滤波法/优点:对于偶然出现的脉冲性干扰,可消除由其引起的采样值偏差; 对周期性干扰有良好的抑制作用,平滑度高;试用于高频振荡的系统缺点:测量速度慢/char filterchar new_data,char queue,char n {char max,min;char sum;char i;queue0=new_data;max=queue0;min=queue0;sum=queue0;fori=n-1;i>0;i--{ifqueuei>maxmax=queuei;else if queuei<minmin=queuei;sum=sum+queuei;queuei=queuei-1;}i=n-2;sum=sum-max-min+i/2; //说明:+i/2的目的是为了四舍五入sum=sum/i;returnsum;}7、限幅平均滤波法/优点:对于偶然出现的脉冲性干扰,可消除有其引起的采样值偏差; /define A 10define N 12unsigned char data;unsigned char filterdata{unsigned char i;unsigned char value,sum;dataN=GetAD;ifdataN-dataN-1>A||dataN-1-dataN>A dataN=dataN-1;//else dataN=NewValue;fori=0;i<N;i++{datai=datai+1;sum+=datai;}value=sum/N;returnvalue;}8、一阶滞后滤波法/函数名称:filter-一阶滞后滤波法说明:1、调用函数GetAD,该函数用来取得当前值Delay,基本延时函数2、变量说明Or_dataN:采集的数据Dr0_flag、Dr1_flag:前一次比较与当前比较的方向位 coeff:滤波系数F_count:滤波计数器3、常量说明N:数组长度Thre_value:比较门槛值入口:出口:/define Thre_value 10define N 50float Or_dataN;unsigned char Dr0_flag=0,Dr1_flag=0; void absfloat first,float second {float abs;iffirst>second{abs=first-second;Dr1_flag=0;}else{abs=second-first;Dr1_flag=1;}returnabs;}void filtervoid{uchar i=0,F_count=0,coeff=0;float Abs=;//确定一阶滤波系数fori=1;i<N;i++{Abs=absOr_datai-1,Or_datai;ifDr1_flag^Dr0_flag //前后数据变化方向一致{F_count++;ifAbs>=Thre_value{F_count++;F_count++;}ifF_count>=12F_count=12;coeff=20F_count;}else //去抖动coeff=5;//一阶滤波算法ifDr1_flag==0 //当前值小于前一个值Or_datai=Or_datai-1-coeffOr_datai-1-Or_datai/256;elseOr_datai=Or_datai-1+coeffOr_datai-Or_datai-1/256;F_count=0; //滤波计数器清零Dr0_flag=Dr1_flag;}}9、加权递推平均滤波法/coe:数组为加权系数表,存在程序存储区;sum_coe:加权系数和/define N 12const char code coeN = {1,2,3,4,5,6,7,8,9,10,11,12}; const char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12; unsigned char filter{unsigned char i;unsigned char value_bufN; int sum=0;for i=0;i<N;i++{value_bufi = get_ad;delay;}for i=0,i<N;i++{value_bufi=value_bufi+1; sum += value_buficoei; }sum/=sum_coe;value=sum/N;returnvalue;}10、消抖滤波法//define N 12unsigned char filter{unsigned char i=0;unsigned char new_value; new_value = get_ad;ifvalue =new_value;{i++;if i>N{i=0;value=new_value; }}else i=0;returnvalue;}。
10种简单的数值滤波方法

单片机利用软件抗干扰的几种滤波方法1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。
B、优点:能有效克服因偶然因素引起的脉冲干扰。
C、缺点无法抑制那种周期性的干扰,平滑度差。
2、中位值滤波法A、方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。
B、优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果。
C、缺点:对流量、速度等快速变化的参数不宜。
3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算,N值较大时:信号平滑度较高,但灵敏度较低;N值较小时:信号平滑度较低,但灵敏度较高;N值的选取:一般流量,N=12;压力:N=4。
B、优点:适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。
C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。
4、递推平均滤波法(又称滑动平均滤波法)。
A、方法:把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则),把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。
N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4。
B、优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统C、缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。
5、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”,连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值,N值的选取:3~14,B、优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。
单片机中常用滤波算法

单片机中常用滤波算法在单片机中,滤波算法是非常常用的技术,用于去除信号中的噪声或干扰,提取出真正的有效信号。
滤波算法的选择取决于不同的应用场景和信号类型,下面将介绍几种常用的滤波算法。
1.均值滤波均值滤波是最简单且常用的滤波算法之一、它通过计算一定数量数据点的平均值来平滑信号。
具体实现上,可以使用一个滑动窗口,每次将最新的数据点加入窗口并去除最旧的数据点,然后计算窗口内数据点的平均值作为滤波后的输出值。
均值滤波对于去除高频噪声效果较好,但对于快速变化的信号可能会引入较大的延迟。
2.中值滤波中值滤波也是常用的滤波算法,它对信号的一组数据点进行排序,然后选择中间值作为滤波后的输出值。
与均值滤波不同,中值滤波可以有效去除椒盐噪声和脉冲噪声等突变噪声,但可能对于连续变化的信号引入较大的误差。
3.最大值/最小值滤波最大值/最小值滤波是一种简单有效的滤波算法,它通过选取一组数据点中的最大值或最小值作为滤波后的输出值。
最大值滤波可以用于检测异常峰值或波动,最小值滤波则可用于检测异常低谷或衰减。
4.加权移动平均滤波加权移动平均滤波是对均值滤波的改进,它引入权重因子对数据点进行加权平均,以更好地适应信号的动态变化。
常见的权重分配方式有线性加权和指数加权,可以根据实际需求进行调整。
5.卡尔曼滤波卡尔曼滤波是一种最优滤波算法,其主要应用于估计系统状态,包含两个步骤:预测和更新。
预测步骤用于根据上一时刻的状态和系统模型,预测当前时刻的状态;更新步骤通过测量值对预测值进行修正,得到最终的估计值。
卡尔曼滤波具有较好的估计精度和实时性,但对于复杂系统,可能涉及较高的计算量。
除了上述常见的滤波算法,还有一些针对特定应用的滤波算法值得一提,如带通滤波、带阻滤波、滑动平均滤波等。
在实际工程应用中,滤波算法的选择需要根据具体应用场景和信号特点进行权衡,寻找最适合的算法以获得满意的滤波效果。
数字信号处理中的滤波算法比较

数字信号处理中的滤波算法比较数字信号处理在现代通讯、音频、图像领域被广泛应用,而滤波技术则是数字信号处理中最核心和关键的技术之一。
随着新一代数字信号处理技术的发展,各种高效、高精度的数字滤波算法层出不穷,其中经典的滤波算法有FIR滤波器和IIR 滤波器。
下面将对它们进行比较分析。
一、FIR滤波器FIR滤波器是一种实现数字滤波的常用方法,它采用有限长冲激响应技术进行滤波。
FIR滤波器的主要特点是线性相位和稳定性。
在实际应用中,FIR滤波器常用于低通滤波、高通滤波和带通滤波。
优点:1. 稳定性好。
FIR滤波器没有反馈环,不存在极点,可以保证系统的稳定性。
2. 线性相位。
FIR滤波器的相位响应是线性的,可达到非常严格的线性相位要求。
3. 不会引起振荡。
FIR滤波器的频率响应是光滑的,不会引起振荡。
缺点:1. 会引入延迟。
由于FIR滤波器的冲击响应是有限长的,所以它的输出需要等待整个冲击响应的结束,这就会引入一定的延迟时间,造成信号的延迟。
2. 对于大的滤波器阶数,计算量较大。
二、IIR滤波器IIR滤波器是一种有反馈的数字滤波器,在数字信号处理中得到广泛的应用。
IIR滤波器可以是无限长冲激响应(IIR)或者是有限长冲激响应(FIR)滤波器。
IIR滤波器在实际应用中,可以用于数字滤波、频率分析、系统建模等。
优点:1. 滤波器阶数较低。
IIR滤波器可以用较低的阶数实现同等的滤波效果。
2. 频率响应的切变特性好。
IIR滤波器的特性函数是有极点和零点的,这些极点和零点的位置可以调整滤波器的频率响应,进而控制滤波器的切变特性。
3. 运算速度快。
由于IIR滤波器的计算形式简单,所以在数字信号处理中的运算速度通常比FIR滤波器快。
缺点:1. 稳定性问题。
由于IIR滤波器采用了反馈结构,存在稳定性问题,当滤波器的极点分布位置不合适时,就容易产生不稳定的结果。
2. 失真问题。
与FIR滤波器不同,IIR滤波器的输出会被反馈到滤波器的输入端,这就可能导致失真问题。
十大滤波算法

十大滤波算法滤波是一种常用的数据处理技术,用于有效构建和改善信号的质量,优化信号的性能。
通过滤波,可以有效地抑制信号中的噪声,从而提高信号的清晰度,改善信号的性能。
现在,在许多应用及其他领域中,滤波算法已经成为一个重要的研究课题。
首先,我们应该了解滤波算法有哪些,其中主要有十类滤波算法:低通滤波、带通滤波、带阻滤波、高通滤波、椭圆滤波、阶跃滤波、时间延迟滤波、均值滤波、中值滤波、振荡器滤波。
下面,我们来详细介绍这十类滤波算法。
1. 低通滤波:它是将所有高频成分从信号中滤除,保留低频成分的一种滤波器。
它可以有效地抑制信号中的噪声,提高信号的清晰度,同时改善信号的性能。
2.通滤波:它是一种仅保留低频和高频成分的滤波器,可以有效地去除中间频率的干扰成分,提高系统的鲁棒性。
3.阻滤波:它是滤除一定范围内的频率成分,保留高频成分和低频成分的一种滤波器。
它可以有效地利用低频成分进行模型适应,以解决信号的噪声问题。
4.通滤波:它是一种仅保留高频成分的滤波器,可以有效地滤除信号中的低频成分,增强信号的清晰度。
5.圆滤波:它是在低通滤波器和带通滤波器之间的一种滤波器,可以有效地去除信号中的噪声,提高信号的清晰度。
6.跃滤波:它是一种仅保留高频成分和低频成分的滤波器,可以有效地滤除信号中的中频成分,以消除信号中的干扰。
7.间延迟滤波:它是一种仅保留低频成分的滤波器,可以有效地抑制信号中的高频成分,提高信号的清晰度。
8.值滤波:它是一种仅保留低频成分的滤波器,可以有效地抑制信号中的噪声,提高信号的清晰度。
9. 中值滤波:它是一种仅保留低频成分的滤波器,可以有效地抑制信号中的噪声,提高信号的清晰度。
10.荡器滤波:它是一种放大和抑制信号中特定频率成分的滤波器,可以有效地改善信号的性能。
以上便是十大滤波算法,它们可以有效地分离信号中的高频、低频成分,抑制信号中的噪声,提高信号的清晰度,改善信号的性能。
因此,滤波算法在现代信号处理领域的应用也越来越广泛,并且取得了很好的效果。
均值滤波,高斯滤波,中值滤波

均值滤波,高斯滤波,中值滤波均值滤波,高斯滤波和中值滤波是数字图像处理中常用的三种平滑滤波技术,用于降低图像噪声和去除图像中的不相关细节。
本文将对这三种滤波方法进行介绍、比较和分析。
一、均值滤波均值滤波是一种简单的平滑滤波方法,它的原理是用滤波窗口内像素的平均值来代替中心像素的值。
具体来说,对于滤波窗口内的每个像素,计算其邻域内所有像素的平均值,然后将结果作为中心像素的值。
这样可以有效地平滑图像并去除高频噪声。
然而,均值滤波的缺点是它不能很好地保留图像的边缘信息,使得图像看起来模糊且失去细节。
二、高斯滤波高斯滤波是一种基于高斯分布的平滑滤波方法,它认为像素点的邻域内的像素值与中心像素点的距离越近,其权重越大。
它的滤波过程是在滤波窗口内,对每个像素点进行加权平均。
加权的权重由高斯函数决定,距离中心像素点越近的像素点的权重越大,距离越远的像素点的权重越小。
通过这种加权平均的方式,可以更好地保留图像的细节和边缘信息,同时有效地去除噪声。
高斯滤波的唯一缺点是计算复杂度较高,特别是对于大型滤波窗口和高分辨率图像来说。
三、中值滤波中值滤波是一种统计滤波方法,它的原理是用滤波窗口内像素的中值来代替中心像素的值。
具体来说,对于滤波窗口内的每个像素,将其邻域内的像素按照大小进行排序,然后将排序后像素的中值作为中心像素的值。
中值滤波对于椒盐噪声和脉冲噪声有很好的去噪效果,能够保持图像的边缘信息,避免了均值滤波和高斯滤波的模糊问题。
然而,中值滤波的缺点是不能去除高斯噪声和高频噪声,因为当滤波窗口内的像素含有这些噪声时,中值滤波会产生失真效果。
比较和分析:三种滤波方法各有优劣,应根据实际需求选择合适的滤波方法。
均值滤波是最简单、计算复杂度最低的方法,在去除高斯噪声和低频噪声方面效果较差,但对边缘信息的保留效果较差。
高斯滤波通过加权平均的方式更好地保留了图像的细节和边缘信息,适用于处理高斯噪声并且具有一定的平滑效果。
中值滤波对于椒盐噪声和脉冲噪声有很好的去噪效果,并保持了图像的边缘信息,但对于高斯噪声和高频噪声则效果较差。
各种滤波算法的比较

各种滤波算法的比较数字滤波方法有很多种,每种方法有其不同的特点和使用范围。
从大的范围可分为3类。
1、克服大脉冲干扰的数字滤波法㈠.限幅滤波法㈡.中值滤波法2、抑制小幅度高频噪声的平均滤波法㈠.算数平均㈡.滑动平均㈢.加权滑动平均㈣一阶滞后滤波法3、复合滤波法在这我选用了常用的8种滤波方法予以介绍(一)克服大脉冲干扰的数字滤波法:克服由仪器外部环境偶然因素引起的突变性扰动或仪器内部不稳定引起误码等造成的尖脉冲干扰,是仪器数据处理的第一步。
通常采用简单的非线性滤波法。
1、限幅滤波法(又称程序判断滤波法)限幅滤波是通过程序判断被测信号的变化幅度,从而消除缓变信号中的尖脉冲干扰。
A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差D、适用范围: 变化比较缓慢的被测量值2、中位值滤波法中位值滤波是一种典型的非线性滤波器,它运算简单,在滤除脉冲噪声的同时可以很好地保护信号的细节信息。
A、方法:连续采样N次(N取奇数)把N次采样值按大小排列(多采用冒泡法)取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动(脉冲)干扰C、缺点:对流量、速度等快速变化的参数不宜D、适用范围:对温度、液位的变化缓慢的被测参数有良好的滤波效果(二)抑制小幅度高频噪声的平均滤波法小幅度高频电子噪声:电子器件热噪声、A/D量化噪声等。
通常采用具有低通特性的线性滤波器:算数平均滤波法、加权平均滤波法、滑动加权平均滤波法一阶滞后滤波法等。
1、算术平均滤波法算术平均滤波法是对N个连续采样值相加,然后取其算术平均值作为本次测量的滤波值。
A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:对滤除混杂在被测信号上的随机干扰信号非常有效。
测速滤波算法

测速滤波算法测速滤波算法是一种用于测量和计算速度的方法。
它可以应用于各种领域,包括物理学、工程学和计算机科学等。
本文将介绍测速滤波算法的基本原理、应用场景以及其优缺点。
我们来了解一下测速滤波算法的原理。
测速滤波算法通过对速度数据进行滤波处理,去除噪声和异常值,从而得到更加准确和稳定的速度值。
常见的测速滤波算法包括移动平均法、卡尔曼滤波法和粒子滤波法等。
移动平均法是最简单和常用的测速滤波算法之一。
它通过计算一定时间窗口内的速度平均值来减小噪声的影响。
移动平均法的优点是实现简单、计算速度快,但它对速度的变化响应较慢,无法准确反映速度的瞬时变化。
卡尔曼滤波法是一种基于状态估计的测速滤波算法。
它通过建立系统的状态方程和观测方程,利用当前的测量值和先前的估计值来估计速度的真实值。
卡尔曼滤波法的优点是能够较好地处理噪声和不确定性,但它对系统模型的要求较高,需要较复杂的数学推导和计算。
粒子滤波法是一种基于概率推断的测速滤波算法。
它通过引入一组随机样本(粒子)来表示速度的可能取值,并根据观测数据对粒子进行权重更新和重采样,从而得到速度的估计值。
粒子滤波法的优点是可以处理非线性和非高斯分布的问题,但它对粒子数目的选择较为敏感,需要较高的计算资源。
测速滤波算法在实际应用中有广泛的应用场景。
例如,在无人驾驶汽车中,测速滤波算法可以用于估计车辆的实时速度,从而实现对车辆的控制和导航。
在天文学和物理学中,测速滤波算法可以用于分析星系和粒子的运动轨迹,从而研究宇宙的演化和物质的性质。
在计算机图形学中,测速滤波算法可以用于物体的运动模拟和动画效果的生成。
然而,测速滤波算法也存在一些局限性和缺点。
首先,测速滤波算法往往需要根据具体应用场景进行参数调整和优化,这增加了算法的复杂性和实现的困难度。
其次,测速滤波算法在处理非线性和非高斯分布的问题时,可能会引入估计误差,导致速度估计的不准确性。
此外,测速滤波算法对计算资源的要求较高,需要较快的计算速度和较大的存储空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
滤波关键看你什么应用!采样频率,这个方法很多的。
以下仅供参考:
1、限幅滤波法(又称程序判断滤波法)
A、方法:
根据经验判断,确定两次采样允许的最大偏差值(设为A)
每次检测到新值时判断:
如果本次值与上次值之差<=A,则本次值有效
如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
B、优点:
能有效克服因偶然因素引起的脉冲干扰
C、缺点
无法抑制那种周期性的干扰
平滑度差
2、中位值滤波法
A、方法:
连续采样N次(N取奇数)
把N次采样值按大小排列
取中间值为本次有效值
B、优点:
能有效克服因偶然因素引起的波动干扰
对温度、液位的变化缓慢的被测参数有良好的滤波效果
C、缺点:
对流量、速度等快速变化的参数不宜
3、算术平均滤波法
A、方法:
连续取N个采样值进行算术平均运算
N值较大时:信号平滑度较高,但灵敏度较低
N值较小时:信号平滑度较低,但灵敏度较高
N值的选取:一般流量,N=12;压力:N=4
B、优点:
适用于对一般具有随机干扰的信号进行滤波
这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动
C、缺点:
对于测量速度较慢或要求数据计算速度较快的实时控制不适用
比较浪费RAM
4、递推平均滤波法(又称滑动平均滤波法)
A、方法:
把连续取N个采样值看成一个队列
队列的长度固定为N
每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
B、优点:
对周期性干扰有良好的抑制作用,平滑度高
适用于高频振荡的系统
C、缺点:
灵敏度低
对偶然出现的脉冲性干扰的抑制作用较差
不易消除由于脉冲干扰所引起的采样值偏差
不适用于脉冲干扰比较严重的场合
比较浪费RAM
5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
A、方法:
相当于“中位值滤波法”+“算术平均滤波法”
连续采样N个数据,去掉一个最大值和一个最小值
然后计算N-2个数据的算术平均值
N值的选取:3~14
B、优点:
融合了两种滤波法的优点
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
C、缺点:
测量速度较慢,和算术平均滤波法一样
比较浪费RAM
6、限幅平均滤波法
A、方法:
相当于“限幅滤波法”+“递推平均滤波法”
每次采样到的新数据先进行限幅处理,
再送入队列进行递推平均滤波处理
B、优点:
融合了两种滤波法的优点
对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
C、缺点:
比较浪费RAM
7、一阶滞后滤波法
A、方法:
取a=0~1
本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
B、优点:
对周期性干扰具有良好的抑制作用
适用于波动频率较高的场合
C、缺点:
相位滞后,灵敏度低
滞后程度取决于a值大小
不能消除滤波频率高于采样频率的1/2的干扰信号
8、加权递推平均滤波法
A、方法:
是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
通常是,越接近现时刻的数据,权取得越大。
给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低
B、优点:
适用于有较大纯滞后时间常数的对象
和采样周期较短的系统
C、缺点:
对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号
不能迅速反应系统当前所受干扰的严重程度,滤波效果差
9、消抖滤波法
A、方法:
设置一个滤波计数器
将每次采样值与当前有效值比较:
如果采样值=当前有效值,则计数器清零
如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)
如果计数器溢出,则将本次值替换当前有效值,并清计数器
B、优点:
对于变化缓慢的被测参数有较好的滤波效果,
可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
C、缺点:
对于快速变化的参数不宜
如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统
10、限幅消抖滤波法
A、方法:
相当于“限幅滤波法”+“消抖滤波法”
先限幅,后消抖
B、优点:
继承了“限幅”和“消抖”的优点
改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统。