欢迎来到天天文库
浏览记录
ID:44227362
大小:59.49 KB
页数:22页
时间:2019-10-19
《十大滤波 算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、十大滤波算法程序大全1、限幅滤波法(又称程序判断滤波法)ARDUINO代码1./*2.A、名称:限幅滤波法(又称程序判断滤波法)3.B、方法:4. 根据经验判断,确定两次采样允许的最大偏差值(设为A),5. 每次检测到新值时判断:6. 如果本次值与上次值之差<=A,则本次值有效,7. 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。8.C、优点:9. 能有效克服因偶然因素引起的脉冲干扰。10.D、缺点:11. 无法抑制那种周期性的干扰。12. 平滑度差。13.E、整理:
2、shenhaiyu2013-11-0114.*/15. 16.intFilter_Value;17.intValue;18. 19.voidsetup(){20. Serial.begin(9600); //初始化串口通信21. randomSeed(analogRead(0));//产生随机种子22. Value=300;23.}24. 25.voidloop(){26. Filter_Value=Filter(); //获得滤波器输出值1. Value=Filter_Value; //最
3、近一次有效采样的值,该变量为全局变量2. Serial.println(Filter_Value);//串口输出3. delay(50);4.}5. 6.//用于随机产生一个300左右的当前值7.intGet_AD(){8. returnrandom(295,305);9.}10. 11.//限幅滤波法(又称程序判断滤波法)12.#defineFILTER_A113.intFilter(){14. intNewValue;15. NewValue=Get_AD();16. if(((NewValue-Value
4、)>FILTER_A)
5、
6、((Value-NewValue)>FILTER_A))17. returnValue;18. else19. returnNewValue;20.}2、中位值滤波法ARDUINO代码1./*2.A、名称:中位值滤波法3.B、方法:4. 连续采样N次(N取奇数),把N次采样值按大小排列,5. 取中间值为本次有效值。6.C、优点:7. 能有效克服因偶然因素引起的波动干扰;8. 对温度、液位的变化缓慢的被测参数有良好的滤波效果。9.D、缺点:10. 对流量、速度等快速变化的参
7、数不宜。11.E、整理:shenhaiyu2013-11-0112.*/13. 14.intFilter_Value;15. 16.voidsetup(){17. Serial.begin(9600); //初始化串口通信18. randomSeed(analogRead(0));//产生随机种子19.}20. 21.voidloop(){22. Filter_Value=Filter(); //获得滤波器输出值23. Serial.println(Filter_Value);//串口输出24. de
8、lay(50);25.}26. 27.//用于随机产生一个300左右的当前值28.intGet_AD(){1. returnrandom(295,305);2.}3. 4.//中位值滤波法5.#defineFILTER_N1016.intFilter(){7. intfilter_buf[FILTER_N];8. inti,j;9. intfilter_temp;10. for(i=0;i9、14. //采样值从小到大排列(冒泡法)15. for(j=0;jfilter_buf[i+1]){18. filter_temp=filter_buf[i];19. filter_buf[i]=filter_buf[i+1];20. filter_buf[i+1]=filter_temp;21. }22. }23. }24. re10、turnfilter_buf[(FILTER_N-1)/2];25.}3、算术平均滤波法ARDUINO代码1./*2.A、名称:算术平均滤波法3.B、方法:4. 连续取N个采样值进行算术平均运算:5. N值较大时:信号平滑度较高,但灵敏度较低;6. N值较小时:信号平滑度较低,但灵敏度较高;
9、14. //采样值从小到大排列(冒泡法)15. for(j=0;jfilter_buf[i+1]){18. filter_temp=filter_buf[i];19. filter_buf[i]=filter_buf[i+1];20. filter_buf[i+1]=filter_temp;21. }22. }23. }24. re
10、turnfilter_buf[(FILTER_N-1)/2];25.}3、算术平均滤波法ARDUINO代码1./*2.A、名称:算术平均滤波法3.B、方法:4. 连续取N个采样值进行算术平均运算:5. N值较大时:信号平滑度较高,但灵敏度较低;6. N值较小时:信号平滑度较低,但灵敏度较高;
此文档下载收益归作者所有