好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

十大滤波算法程序大全(版).doc

13页
  • 卖家[上传人]:ni****g
  • 文档编号:393924077
  • 上传时间:2023-12-21
  • 文档格式:DOC
  • 文档大小:25KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、限幅滤波法****************************************************函数名称: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();   if(((NewValue-Value)>A))||((Value-NewValue)>A)))   ReturnValue=Value;   else ReturnValue=NewValue;   return(ReturnValue);} 2、中位值滤波法/*****************************************************函数名称:MiddlevalueFilter()-中位值滤波法*长处:能有效克服因偶尔因素引起的波动干扰;对温度、液       位等变化缓慢的被测参数有良好的滤波效果*缺陷:对流量,速度等迅速变化的参数不适宜*阐明:  1、调用函数     GetAD(),该函数用来获得目前值     Delay(),基本延时函数  2、变量阐明     ArrDataBuffer[N]:用来寄存一次性采集的N组数据     Temp:完毕冒泡法试用的临时寄存器     i,j,k:循环试用的参数值  3、常量阐明     N:数组长度*入口:*出口:value_buf[(N-1)/2],返回值,本次滤波成果*****************************************************/#define N 11unsigned char MiddlevalueFilter(){  unsigned char value_buf[N];  unsigned char i,j,k,temp;  for(i=0;ivalue_buf[k+1])     {       temp = value_buf[k];       value_buf[k] = value_buf[k+1];       value_buf[k+1] = temp;     }   }  }  return value_buf[(N-1)/2];}3、算术平均滤波法 /*********************************************************阐明:持续取N个采样值进行算术平均运算长处:试用于对一般具有随机干扰的信号进行滤波。

      这种信号的特点是      有一种平均值,信号在某一数值范畴附近上下波动缺陷:对于测量速度较慢或规定数据计算较快的实时控制不合用/#define N 12char filter(){  unsigned int sum = 0;  unsigned char i;  for (i=0;i

      对于偶尔浮现的脉冲性干扰,可消       除有其引起的采样值偏差对周期干扰有良好的克制作用,       平滑度高,适于高频振荡的系统 缺陷:测量速度慢*********************************************/#define N 12uchar filter(){  unsigned char i,j,k,l;  unsigned char temp,sum=0,value;  unsigned char value_buf[N],;  for(i=0;ivalue_buf[i+1])      {        temp = value_buf[i];        value_buf[i] = value_buf[i+1];        value_buf[i+1] = temp;      }    }  }  for(i=1;i

             对周期性干扰有良好的克制作用,平滑度高;试用于高频振荡       的系统 缺陷:测量速度慢*************************************************/char filter(char new_data,char queue[],char n){  char max,min;  char sum;  char i;  queue[0]=new_data;  max=queue[0];  min=queue[0];  sum=queue[0];  for(i=n-1;i>0;i--)  {    if(queue[i]>max)    max=queue[i];    else if (queue[i]

      /#define A 10#define N 12unsigned char data[];unsigned char filter(data[]){  unsigned char i;  unsigned char value,sum;  data[N]=GetAD();  if(((data[N]-data[N-1])>A||((data[N-1]-data[N])>A))  data[N]=data[N-1];  //else data[N]=NewValue;  for(i=0;i

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.