10 种简单的数字滤波算法(C 语言源程序) 假定从8 位AD 中读取数据(如果是更高位的AD 可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* A 值可根据实际情况调整 value 为有效值,new_value 为当前采样值 滤波程序返回有效的实际值 */ #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、中位值滤波法 /* N 值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;count