10种软件滤波程序

2025-10-23 05:24:44

1、限副滤波    #define A 10  char value;  char filter()  {  char new_value;  new_value = get_ad();  if ( ( new_value - value > A ) || ( value - new_value > A )  return value;  return new_value;  }  

10种软件滤波程序

10种软件滤波程序

2、中位值滤波法    #define N 11  char filter()  {  char value_buf[N];  char count,i,j,temp;  for ( count=0;count<N;count++)  {  value_buf[count] = get_ad();  delay();  }  for (j=0;j<N-1;j++)  {  for (i=0;i<N-j;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];  }  

10种软件滤波程序

10种软件滤波程序

3、算术平均滤波法    #define N 12  char filter()  {  int sum = 0;  for ( count=0;count<N;count++)  {  sum + = get_ad();  delay();  }  return (char)(sum/N);  }  

10种软件滤波程序

10种软件滤波程序

4、递推平均滤波法(又称滑动平均滤波法)    #define N 12  char 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;count<N,count++)  sum = value_buf[count];  return (char)(sum/N);  }  

10种软件滤波程序

10种软件滤波程序

5、中位值平均滤波法(又称防脉冲干扰平均滤波法)    #define N 12  char filter()  {  char count,i,j;  char value_buf[N];  int sum=0;  for (count=0;count<N;count++)  {  value_buf[count] = get_ad();  delay();  }  for (j=0;j<N-1;j++)  {  for (i=0;i<N-j;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;count<N-1;count++)  sum += value[count];  return (char)(sum/(N-2));  }  

10种软件滤波程序

10种软件滤波程序

10种软件滤波程序

6、限幅平均滤波法    略 参考子程序1、3  

7、一阶滞后滤波法    #define a 50  char value;  char filter()  {  char new_value;  new_value = get_ad();  return (100-a)*value + a*new_value;  }  

8、加权递推平均滤波法    #define N 12  char 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<N;count++)  {  value_buf[count] = get_ad();  delay();  }  for (count=0,count<N;count++)  sum += value_buf[count]*coe[count];  return (char)(sum/sum_coe);  }  

9、消抖滤波法  #define N 12  char 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  

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢