多语言展示
当前在线:1122今日阅读:162今日分享:23

10种软件滤波程序

用软件来识别有用信号和干扰信号,并滤除干扰信号的方法叫软件滤波。
方法/步骤
1

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;  }

2

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

3、算术平均滤波法    #define N 12  char filter()  {  int sum = 0;  for ( count=0;count

4

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

5

5、中位值平均滤波法(又称防脉冲干扰平均滤波法)    #define N 12  char filter()  {  char count,i,j;  char value_buf[N];  int sum=0;  for (count=0;countvalue_buf[i+1] )  {  temp = value_buf[i];  value_buf[i] = value_buf[i+1];  value_buf[i+1] = temp;  }  }  }  for(count=1;count

6

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

7

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

8

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

9

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

10、限幅消抖滤波法    略 参考子程序1、9

推荐信息