欢迎来到天天文库
浏览记录
ID:10904508
大小:24.50 KB
页数:4页
时间:2018-07-08
《10种简单的数字滤波算法(c语言源程序)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波/* A值可根据实际情况调整 value为有效值,new_value为当前采样值 滤波程序返回有效的实际值 */#defineA10charvalue;charfilter(){ char new_value; new_value=get_ad(); if((new_value-value>A)
2、
3、(value-new_value>A) returnvalue; returnnew_value;}2、中位值滤波法/* N值可根据实际情况调整
4、 排序采用冒泡法*/#defineN 11charfilter(){ charvalue_buf[N]; charcount,i,j,temp; for(count=0;countvalue_buf[i+1]) { temp=value_buf[i];
5、 value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } returnvalue_buf[(N-1)/2];} 3、算术平均滤波法/**/#defineN12charfilter(){ int sum=0; for(count=0;count6、charvalue_buf[N];chari=0;charfilter(){ charcount; int sum=0; value_buf[i++]=get_ad(); if(i==N) i=0; for(count=0;count7、nt=0;countvalue_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } 8、 for(count=1;count9、eN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};charcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount; charvalue_buf[N]; int sum=0; for(count=0,count
6、charvalue_buf[N];chari=0;charfilter(){ charcount; int sum=0; value_buf[i++]=get_ad(); if(i==N) i=0; for(count=0;count7、nt=0;countvalue_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } 8、 for(count=1;count9、eN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};charcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount; charvalue_buf[N]; int sum=0; for(count=0,count
7、nt=0;countvalue_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } }
8、 for(count=1;count9、eN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};charcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount; charvalue_buf[N]; int sum=0; for(count=0,count
9、eN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};charcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount; charvalue_buf[N]; int sum=0; for(count=0,count
此文档下载收益归作者所有