滤波方法——2016-01-07
- 格式:pptx
- 大小:681.27 KB
- 文档页数:19
10种经典的软件滤波办法1、限幅滤波法(又称程序差异滤波法)A、办法:依据履历差异,断定两次采样容许的最大过失值(设为A)每次查看到新值时差异:假定本次值与前次值之差lt;=A,则本次值有用假定本次值与前次值之差A,则本次值无效,丢掉本次值,用前次值替代本次值B、长处:能有用打败因偶尔要素致使的脉冲搅扰C、缺陷无法按捺那种周期性的搅扰滑润度差2、中位值滤波法A、办法:接连采样N次(N取奇数)把N次采样值按巨细摆放取基地值为本次有用值B、长处:能有用打败因偶尔要素致使的不坚决搅扰对温度、液位的改动缓慢的被测参数有杰出的滤波作用C、缺陷:对流量、速度等活络改动的参数不宜3、算术均匀滤波法A、办法:接连取N个采样值进行算术均匀运算N值较大时:信号滑润度较高,但活络度较低N值较小时:信号滑润度较低,但活络度较高N值的挑选:通常流量,N=12;压力:N=4B、长处:适用于对通常具有随机搅扰的信号进行滤波这么信号的特征是有一个均匀值,信号在某一数值方案邻近上下不坚决C、缺陷:关于丈量速度较慢或央求数据核算速度较快的实时操控不适用比照糟蹋RAM4、递推均匀滤波法(又称滑动均匀滤波法)A、办法:把接连取N个采样值当作一个行列行列的长度固定为N每次采样到一个新数据放入队尾,并丢掉正本队首的一次数据.(抢先先出准则)把行列中的N个数据进行算术均匀运算,就可取得新的滤波作用N值的挑选:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4B、长处:对周期性搅扰有杰出的按捺作用,滑润度高适用于高频振动的体系C、缺陷:活络度低对偶尔呈现的脉冲性搅扰的按捺作用较差不易消除由于脉冲搅扰所构成的使的采样值过失不适用于脉冲搅扰比照严峻的场合比照糟蹋RAM5、中位值均匀滤波法(又称防脉冲搅扰均匀滤波法)A、办法:恰当于中位值滤波法+算术均匀滤波法接连采样N个数据,去掉一个最大值和一个最小值然后核算N-2个数据的算术均匀值N值的挑选:3~14B、长处:交融了两种滤波法的长处关于偶尔呈现的脉冲性搅扰,可消除由于脉冲搅扰所构成的使的采样值过失C、缺陷:丈量速度较慢,和算术均匀滤波法相同比照糟蹋RAM6、限幅均匀滤波法A、办法:恰当于限幅滤波法+递推均匀滤波法每次采样到的新数据抢先行限幅处理,再送入行列进行递推均匀滤波处理B、长处:交融了两种滤波法的长处关于偶尔呈现的脉冲性搅扰,可消除由于脉冲搅扰所构成的使的采样值过失C、缺陷:比照糟蹋RAM7、一阶滞后滤波法A、办法:取a=0~1本次滤波作用=(1-a)*本次采样值+a*前次滤波作用B、长处:对周期性搅扰具有杰出的按捺作用适用于不坚决频率较高的场合C、缺陷:相位滞后,活络度低滞后程度取决于a值巨细。
单片机利用软件抗干扰的几种滤波方法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、优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。
10种经典的软件滤波方法(zt)Post By:2007-7-17 10:36:00作者:未知1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N个采样值看成一个队列队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM本人接单片机开发设计程序,有两年工作经验另有朋友加我QQ做技术交流,在这里说明下,工作时间我是很少回答QQ留言的,有问题交流可以发我的邮箱,谢谢^_^我的邮箱xupu_lyg@(^_^)[本帖被加为精华]版主评定:好评,获得15个金币奖励(理由:好文章好资料)0 支持(0) 中立(0) 反对(0)加好友发短信等级:版主帖子:1019积分:6666 威望:0 精华:4 注册:2006-11-21 12:47:00回复:(shinea8868)[推荐]10种经典的软件滤波方法(z...Post By:2007-7-17 10:36:005、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM6、限幅平均滤波法A、方法:相当于“限幅滤波法”+“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM7、一阶滞后滤波法A、方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合C、缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号8、加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A, 则本次值有效& x9 b' R& {% k如果本次值与上次值之差>A, 则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点…无法抑制那种周期性的干扰; K8 k3 E) w) d1 e)平滑度差2、中位值滤波法$ t& r* ^1 R % e6 r- H6 ?- sA、方法:连续采样N次(N取奇数)把N 次采样值按大小排列取中间值为本次有效值……B、优点:能有效克服因偶然因素引起的波动干扰$ U9 b- ~! _6 K: u, z 5 g* {5 o& [0 A对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N 个采样值进行算术平均运算N 值较大时:信号平滑度较高,但灵敏度较低0 i7 t6 l / j/ UN 值较小时:信号平滑度较低,但灵敏度较高N 值的选取:一般流量,N=12 ;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动E…C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM4、递推平均滤波法(又称滑动平均滤波法)…A、方法:把连续取N 个采样值看成一个队列队列的长度固定为N…-j每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果…N 值的选取:流量,N=12 ;压力:N=4 ;液面,N=4~12 ;温度,N=1~4B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:....灵敏度低%「对偶然出现的脉冲性干扰的抑制作用较差’S'不易消除由于脉冲干扰所引起的采样值偏差…不适用于脉冲干扰比较严重的场合比较浪费RAM5、中位值平均滤波法(又称防脉冲干扰平均滤波法)- j) m# [$ t- W% U & @6 @) rA、方法:相当于“中位值滤波法”+算“术平均滤波法” 连续采样N 个数据,去掉一个最大值和一个最小值然后计算N-2 个数据的算术平均值9 {9 O# T+ _+ _' KN 值的选取:3~14 $ }6 |2 k ( K9 hB、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM , {& A- Z! ^6 s 4 a6、限幅平均滤波法A、方法:相当于限幅滤波法” ■+“推平均滤波法”-C 每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点c! b7 p- u4 U 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:… 比较浪费RAM7、一阶滞后滤波法$_A、方法:…取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用, R- L% P+ W, I5 h/ @2 o; S适用于波动频率较高的场合; B' B" }/ Q; K0 n( fC、缺点:相位滞后,灵敏度低一滞后程度取决于a值大小…,…不能消除滤波频率高于采样频率的1/2的干扰信号…&加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM5、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM6、限幅平均滤波法A、方法:相当于“限幅滤波法”+“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM7、一阶滞后滤波法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、优点:继承了“限幅”和“消抖”的优点改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统C、缺点:对于快速变化的参数不宜以下是我编的示例程序,如有不足之处还望各位同行指教假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();1、限副滤波/* A值可根据实际情况调整value为有效值,new_value为当前采样值滤波程序返回有效的实际值*/#define A 10char value;char filter(){char new_value;new_value = get_ad();if ( ( new_value - value > A ) || ( value - new_value > A ) return value;return new_value;}2、中位值滤波法/* N值可根据实际情况调整排序采用冒泡法*/#define N 11char filter(){char value_buf[N];char count,i,j,temp;for ( count=0;count{value_buf[count] = get_ad();delay();}for (j=0;j{for (i=0;i{if ( value_buf[i]>value_buf[i+1] ){temp = value_buf[i];value_buf[i] = value_buf[i+1];value_buf[i+1] = temp;}}}return value_buf[(N-1)/2];}3、算术平均滤波法/**/#define N 12char filter(){int sum = 0;for ( count=0;count{sum + = get_ad();delay();}return (char)(sum/N);}4、递推平均滤波法(又称滑动平均滤波法)/**/#define N 12char value_buf[N];char i=0;char filter(){char count;int sum=0;value_buf[i++] = get_ad();if ( i == N ) i = 0;for ( count=0;countsum = value_buf[count];return (char)(sum/N);}5、中位值平均滤波法(又称防脉冲干扰平均滤波法) /**/#define N 12char filter(){char count,i,j;char value_buf[N];int sum=0;for (count=0;count{value_buf[count] = get_ad();delay();}for (j=0;j{for (i=0;i{if ( value_buf[i]>value_buf[i+1] ){temp = value_buf[i];value_buf[i] = value_buf[i+1];value_buf[i+1] = temp;}}}for(count=1;countsum += value[count];return (char)(sum/(N-2));}6、限幅平均滤波法/**/略参考子程序1、37、一阶滞后滤波法/* 为加快程序处理速度假定基数为100,a=0~100 */ #define a 50char value;char filter(){char new_value;new_value = get_ad();return (100-a)*value + a*new_value;}8、加权递推平均滤波法/* coe数组为加权系数表,存在程序存储区.*/#define N 12char code coe[N] = {1,2,3,4,5,6,7,8,9,10,11,12};char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;char filter(){char count;char value_buf[N];int sum=0;for (count=0,count{value_buf[count] = get_ad();delay();}for (count=0,countsum += value_buf[count]*coe[count];return (char)(sum/sum_coe);}9、消抖滤波法#define N 12char filter(){char count=0;char new_value;new_value = get_ad();while (value !=new_value);{count++;if (count>=N) return new_value;delay();new_value = get_ad();}return value;}10、限幅消抖滤波法/**/略参考子程序1、9。
11种滤波算法及程序十一种滤波算法及程序1 概述数字滤波方法有很多种,每种方法有其不同的特点和使用范围。
从大的范围可分为3 类。
1.1 克服大脉冲干扰的数字滤波法克服由仪器外部环境偶然因素引起的突变性扰动或仪器内部不稳定引起误码等造成的尖脉冲干扰,是仪器数据处理的第一步。
通常采用简单的非线性滤波法。
㈠.限幅滤波法㈡.中值滤波法1.2 抑制小幅度高频噪声的平均滤波法小幅度高频电子噪声:电子器件热噪声、A/D 量化噪声等。
通常采用具有低通特性的线性滤波器:算数平均滤波法、加权平均滤波法、滑动加权平均滤波法一阶滞后滤波法等。
㈠.算数平均㈡.滑动平均㈢.加权滑动平均㈣一阶滞后滤波法1.3 复合滤波法在实际应用中,有时既要消除大幅度的脉冲干扰,有要做到数据平滑。
因此常把前面介绍的两种以上的方法结合起来使用,形成复合滤波。
去极值平均滤波算法:先用中值滤波算法滤除采样值中的脉冲性干扰,然后把剩余的各采样值进行平均滤波。
连续采样N 次,剔除其最大值和最小值,再求余下N-2 个采样的平均值。
显然,这种方法既能抑制随机干扰,又能滤除明显的脉冲干扰。
2 十一种通用滤波算法2.1 限幅滤波法(又称程序判断滤波法)根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2.2 中位值滤波法A、方法:连续采样N 次(N 取奇数)把N 次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜2.3 算术平均滤波法A、方法:连续取N 个采样值进行算术平均运算N 值较大时:信号平滑度较高,但灵敏度较低N 值较小时:信号平滑度较低,但灵敏度较高N 值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM2.4 递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N 个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N 个数据进行算术平均运算,就可获得新的滤波结果N 值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM2.5 中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法” +“算术平均滤波法”连续采样N 个数据,去掉一个最大值和一个最小值然后计算N-2 个数据的算术平均值N 值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM2.6 限幅平均滤波法A、方法:相当于“限幅滤波法” +“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM2.7 一阶滞后滤波法A、方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合C、缺点:相位滞后,灵敏度低滞后程度取决于a 值大小不能消除滤波频率高于采样频率的1/2 的干扰信号2.8 加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
常见滤波⽅法1.维纳滤波维纳滤波是⼀种平稳随机过程的最佳滤波理论,换句话说就是在滤波过程中系统的状态参数(或信号的波形参数)是稳定不变的。
它将所有时刻的采样数据⽤来计算互相关矩阵,涉及到解维纳-霍夫⽅程。
可以说维纳滤波仅在理论上有意义,在实际应⽤中的局限性表现在:不适⽤于⾮平稳的随机过程的滤波;要⽤到所有时刻的采样数据,需要的数据存储容量⼤;解维纳-霍夫⽅程是要⽤到矩阵的求逆运算,计算量⼤(因为互相关矩阵的阶数很⼤),⽽且实际数据下的维纳-霍夫⽅程可能⽆解。
2.卡尔曼滤波卡尔曼滤波不仅适⽤于平稳随机过程,也适⽤于⾮平稳随机过程。
它将系统的状态迁移⽤状态⽅程来表述,并⽤固定维数的矩阵运算递推式代替了维纳滤波的解维数巨⼤的线性⽅程组,克服了维纳滤波的⼀系列局限性,获得了成功应⽤,被称为上个世纪四⼗年代统计信号处理的最⼤成果。
在应⽤中,Kalman滤波的关键是建⽴准确的系统模型(包括状态⽅程和观测⽅程)。
kalman filter考虑了系统噪声和测量噪声,最⼩⼆乘⼀般没有考虑系统噪声,如果kalman filter不考虑系统噪声,就相当于递归加权最⼩⼆乘,如果⼆者皆不考虑就是最简单的最⼩⼆乘。
3.匹配滤波匹配滤波跟前⾯的两个滤波理论不⼀样,它不属于波形估计(或称系统的状态估计),⽽是属于信号的统计检测这个范畴,这⼀点⼀定要记住!匹配滤波不同于⼀般的滤波⽅法,其⽬的不是为了最好地恢复信号波形,⽽是使得在某⼀判决时刻T时,使得输出的信噪⽐最⼤,从⽽有效的检测到信号(或发现信号)。
已知信号是指数衰减信号s(t),它淹没在到达的信号r(t)所含的噪声q(t)中,经采样后表⽰为r(n)=s(n)+q(n)使⽤匹配滤波器h(t)=s(T-t)作卷积,就得到输出的最佳估计。
由卷积运算的过程看,在信号幅度最⼤的地⽅,卷积加权最多,⽽在噪声占主要的地⽅,卷积的结果削弱了噪声的作⽤。
可以看出来,匹配滤波器可以看作是⾃相关运算,也可以看作是⼀个⾃相关运算。
10种软件滤波方法1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM5、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM6、限幅平均滤波法A、方法:相当于“限幅滤波法”+“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM7、一阶滞后滤波法A、方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合C、缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号8、加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
1、限幅滤波法限幅滤波法又称嵌入位滤波法,或程序判断滤波法。
这种滤波法的思路是:先根据经验判断,确定两次允许的最大偏差值(设为A)。
(1)、如果本次新采样值与上次滤波结果之差≤A,则本次采样值有效,令本次滤波结果=新采样值;(2)如果本次采样值与上次滤波结果之差>A,则本次采样值无效,放弃本次值,令本次滤波=上次滤波结果。
优点:能有效克服因偶然因素引起的脉冲干扰。
缺点:无法抑制周期性的干扰,且平滑度差。
例程/********************************************函数名称: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=GetAD();if(((NewValue-Value)>A))||((Value-NewValue)>A)))ReturnValue=Value;else ReturnValue=NewValue;return(ReturnValue);}2、中位值滤波法1.方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。