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、中位值滤波法 #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;count
3、算术平均滤波法 #define N 12 char filter() { int sum = 0; for ( count=0;count
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、中位值平均滤波法(又称防脉冲干扰平均滤波法) #define N 12 char filter() { char count,i,j; char value_buf[N]; int sum=0; for (count=0;count
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
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