1 / 24
文档名称:

十大滤波算法.docx

格式:docx   大小:95KB   页数:24页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

十大滤波算法.docx

上传人:phl19870121 2019/11/16 文件大小:95 KB

下载得到文件列表

十大滤波算法.docx

相关文档

文档介绍

文档介绍:十大滤波算法————————————————————————————————作者:————————————————————————————————日期: 十大滤波算法程序大全1、限幅滤波法(又称程序判断滤波法)ARDUINO代码/*A、名称:限幅滤波法(又称程序判断滤波法)B、方法:   根据经验判断,确定两次采样允许的最大偏差值(设为A),   每次检测到新值时判断:   如果本次值与上次值之差<=A,则本次值有效,   如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。C、优点:   能有效克服因偶然因素引起的脉冲干扰。D、缺点:   无法抑制那种周期性的干扰。   平滑度差。E、整理:shenhaiyu2013-11-01*/ intFilter_Value;intValue; voidsetup(){  (9600);    //初始化串口通信  randomSeed(analogRead(0));//产生随机种子  Value=300;} voidloop(){  Filter_Value=Filter();    //获得滤波器输出值  Value=Filter_Value;      //最近一次有效采样的值,该变量为全局变量  (Filter_Value);//串口输出  delay(50);} //用于随机产生一个300左右的当前值intGet_AD(){  returnrandom(295,305);} //限幅滤波法(又称程序判断滤波法)#defineFILTER_A1intFilter(){  intNewValue;  NewValue=Get_AD();  if(((NewValue-Value)>FILTER_A)||((Value-NewValue)>FILTER_A))  returnValue;  else  returnNewValue;}2、中位值滤波法ARDUINO代码/*A、名称:中位值滤波法B、方法:   连续采样N次(N取奇数),把N次采样值按大小排列,   取中间值为本次有效值。C、优点:   能有效克服因偶然因素引起的波动干扰;   对温度、液位的变化缓慢的被测参数有良好的滤波效果。D、缺点:   对流量、速度等快速变化的参数不宜。E、整理:shenhaiyu2013-11-01*/ intFilter_Value; voidsetup(){  (9600);    //初始化串口通信  randomSeed(analogRead(0));//产生随机种子} voidloop(){  Filter_Value=Filter();    //获得滤波器输出值  (Filter_Value);//串口输出  delay(50);} //用于随机产生一个300左右的当前值intGet_AD(){  returnrandom(295,305);} //中位值滤波法#defineFILTER_N101intFilter(){  intfilter_buf[FILTER_N];  inti,j;  intfilter_temp;  for(i=0;i<FILTER_N;i++){  filter_buf[i]=Get_AD();  delay(1);  }  //采样值从小到大排列(冒泡法)  for(j=0;j<FILTER_N-1;j++){  for(i=0;i<FILTER_N-1-j;i++){    if(filter_buf[i]>filter_buf[i+1]){      filter_temp=filter_buf[i];      filter_buf[i]=filter_buf[i+1];      filter_buf[i+1]=filter_temp;    }  }  }  returnfilter_buf[(FILTER_N-1)/2];}3、算术平均滤波法ARDUINO代码/*A、名称:算术平均滤波法B、方法:   连续取N个采样值进行算术平均运算:   N值较大时:信号平滑度较高,但灵敏度较低;   N值较小时:信号平滑度较低,但灵敏度较高;   N值的选取:一般流量,N=12;压力:N=4。C、优点:   适用于对一般具有随机干扰的信号进行滤波;   这种信号的特点是有一个平均值,信号在某一数值范围附近上下波动。D、缺点:   对于测量速度较慢或要求数据计算速度较快的实时控制不适用;   比较浪费RAM。E、整理:shenhaiyu2013-11-01*/ intFilter_Value; voidsetup(){  Ser