收藏 分享(赏)

十种软件滤波的算法.doc

上传人:精品资料 文档编号:11239866 上传时间:2020-02-22 格式:DOC 页数:7 大小:50KB
下载 相关 举报
十种软件滤波的算法.doc_第1页
第1页 / 共7页
十种软件滤波的算法.doc_第2页
第2页 / 共7页
十种软件滤波的算法.doc_第3页
第3页 / 共7页
十种软件滤波的算法.doc_第4页
第4页 / 共7页
十种软件滤波的算法.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、十种软件滤波的算法软件滤波在嵌入式的数据采集和处理中有着很重要的作用,这 10 种方法各有优劣,根据自己的需要选择。同时提供了 C 语言的参考代码,希望对各位能有帮助。1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为 A)每次检测到新值时判断:如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差/* A 值可根据实际情况调整 value 为有效值,new_value 为当前采样值 滤波程序返回有效的实际值 */ #define A 10 char

2、value; char filter() char new_value; new_value =get_ad(); if ( ( new_value - value A ) | ( value- new_value A ) return value; returnnew_value; 2、中位值滤波法A、方法:连续采样 N 次(N 取奇数)把 N 次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜/* N 值可根据实际情况调整 排序采用冒泡法*/ #define N 11

3、char filter() charvalue_bufN; charcount,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、算术平均滤波法A、方法:连续取 N 个采样值进行算术平均运算N 值较大时:信号平滑度较高,但灵敏度较低N 值较小时:信号平滑度较低,但灵敏度较高N 值的选取:一般流量, N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号

4、的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费 RAM#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当前有效值,则计数器+1,并判断计数器是否=上限 N(溢出)如果计数器溢出,则将本次值替换当前有效值,并清计数器B、优点:对于变化缓慢的被测参数有较好的滤波

5、效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动C、缺点:对于快速变化的参数不宜如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统#define N 12 char filter() char count=0; char new_value; new_value =get_ad(); while (value!=new_value); count+; if (count=N) return new_value; delay(); new_value =get_ad(); returnvalue; 10、限幅消抖滤波法A、方法:相当于“限幅滤波法”+“ 消抖滤波法”先限幅,后消抖B、优点:继承了“限幅” 和“ 消抖 ”的优点改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统C、缺点:对于快速变化的参数不宜

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报