《10种简单的数字滤波算法(C语言源程序》由会员分享,可在线阅读,更多相关《10种简单的数字滤波算法(C语言源程序(4页珍藏版)》请在人人文库网上搜索。
1、假定从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值可根据实际情况调整。
2、 排序采用冒泡法*/ #define N 11 char filter() char value_bufN; char count,i,j,temp; for ( count=0;countvalue_bufi+1 ) temp = value_bufi; value_bufi = value_bufi+1; value_bufi+1 = temp; return value_buf(N-1)/2; 3、算术平均滤波法 /* */ #define N 12 char filter() int sum = 0; for ( count=0;countvalue_bufi+1 ) temp = value_bufi; value_bufi = value_bufi+1; value_bufi+1 = temp; for(count=1;count=N) return new_value; delay(); new_value = get_ad(); return value; 10、限幅消抖滤波法 /* */。