欢迎来到天天文库
浏览记录
ID:1342370
大小:214.00 KB
页数:24页
时间:2017-11-10
《10种简单的数字滤波算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、10种简单的数字滤波算法假定从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) returnval
4、ue; returnnew_value;}2、中位值滤波法/* N值可根据实际情况调整 排序采用冒泡法*/#defineN 11charfilter(){ charvalue_buf[N]; charcount,i,j,temp; for(count=0;count5、 if(value_buf[i]>value_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } }24 returnvalue_buf[(N-1)/2];} 3、算术平均滤波法/**/#defineN12charfilter(){ int sum=0; for(count=0;co6、unt7、buf[count]; return(char)(sum/N);}5、中位值平均滤波法(又称防脉冲干扰平均滤波法)/**/#defineN12charfilter(){ charcount,i,j; charvalue_buf[N]; int sum=0; for (count=0;count8、+) { if(value_buf[i]>value_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } for(count=1;count9、限幅平均滤波法/**/ 略参考子程序1、37、一阶滞后滤波法/*为加快程序处理速度假定基数为100,a=0~100*/#definea50charvalue;charfilter(){ char new_value; new_value=get_ad(); return(100-a)*value+a*new_value; }8、加权递推平均滤波法/*coe数组为加权系数表,存在程序存储区。*/#defineN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};cha10、rcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount;24 charvalue_buf[N]; int sum=0; for(count=0,count
5、 if(value_buf[i]>value_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } }24 returnvalue_buf[(N-1)/2];} 3、算术平均滤波法/**/#defineN12charfilter(){ int sum=0; for(count=0;co
6、unt7、buf[count]; return(char)(sum/N);}5、中位值平均滤波法(又称防脉冲干扰平均滤波法)/**/#defineN12charfilter(){ charcount,i,j; charvalue_buf[N]; int sum=0; for (count=0;count8、+) { if(value_buf[i]>value_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } for(count=1;count9、限幅平均滤波法/**/ 略参考子程序1、37、一阶滞后滤波法/*为加快程序处理速度假定基数为100,a=0~100*/#definea50charvalue;charfilter(){ char new_value; new_value=get_ad(); return(100-a)*value+a*new_value; }8、加权递推平均滤波法/*coe数组为加权系数表,存在程序存储区。*/#defineN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};cha10、rcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount;24 charvalue_buf[N]; int sum=0; for(count=0,count
7、buf[count]; return(char)(sum/N);}5、中位值平均滤波法(又称防脉冲干扰平均滤波法)/**/#defineN12charfilter(){ charcount,i,j; charvalue_buf[N]; int sum=0; for (count=0;count8、+) { if(value_buf[i]>value_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } for(count=1;count9、限幅平均滤波法/**/ 略参考子程序1、37、一阶滞后滤波法/*为加快程序处理速度假定基数为100,a=0~100*/#definea50charvalue;charfilter(){ char new_value; new_value=get_ad(); return(100-a)*value+a*new_value; }8、加权递推平均滤波法/*coe数组为加权系数表,存在程序存储区。*/#defineN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};cha10、rcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount;24 charvalue_buf[N]; int sum=0; for(count=0,count
8、+) { if(value_buf[i]>value_buf[i+1]) { temp=value_buf[i]; value_buf[i]=value_buf[i+1]; value_buf[i+1]=temp; } } } for(count=1;count9、限幅平均滤波法/**/ 略参考子程序1、37、一阶滞后滤波法/*为加快程序处理速度假定基数为100,a=0~100*/#definea50charvalue;charfilter(){ char new_value; new_value=get_ad(); return(100-a)*value+a*new_value; }8、加权递推平均滤波法/*coe数组为加权系数表,存在程序存储区。*/#defineN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};cha10、rcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount;24 charvalue_buf[N]; int sum=0; for(count=0,count
9、限幅平均滤波法/**/ 略参考子程序1、37、一阶滞后滤波法/*为加快程序处理速度假定基数为100,a=0~100*/#definea50charvalue;charfilter(){ char new_value; new_value=get_ad(); return(100-a)*value+a*new_value; }8、加权递推平均滤波法/*coe数组为加权系数表,存在程序存储区。*/#defineN12charcodecoe[N]={1,2,3,4,5,6,7,8,9,10,11,12};cha
10、rcodesum_coe=1+2+3+4+5+6+7+8+9+10+11+12;charfilter(){ charcount;24 charvalue_buf[N]; int sum=0; for(count=0,count
此文档下载收益归作者所有