滤波算法讲解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
几种常用的滤波算法及其优缺点 217-薛增 为何要使用软件滤波 工业自动化系统中的大型系统或是小型设备,均含有各种噪声和干扰。干扰既有来自信号源本体或传感器,也有来自外界干扰。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。特别是随着自动化程度的提高,许多控制功能通过自动闭环调节来完成,设备控制的效果取决于外部模拟量采集、控制算法、执行输出等等环节,而在现场工业环境中,电磁干扰、源干扰、甚至于传感器本身都会影响外部信号,导致得到的数据失真、波动,如果在数据采集环节即出现问题,那整个系统将无法正常工作。所以要正确选择软件数字滤波的方式处理外部信号的正确采集,从而才能得到真实的数据,实现自动控制。 几种常用的滤波算法 1、限幅滤波法 2、中位值滤波法 3、算术平均滤波法 4、递推平均滤波法 5、中位值平均滤波法 6、限幅平均滤波法 7、一阶滞后滤波法 8、加权递推平均滤波法 9、消抖滤波法 限幅滤波法(程序判断滤波法) *函数名称:AmplitudeLimiterFilter()-限幅滤波法 *方法: ?? 根据经验判断,确定两次采样允许的最大偏差值(设为A) ?? 每次检测到新值时判断: ?? 如果本次值与上次值之差=A,则本次值有效 ?? 如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值 *优点:能有效克服因偶然因素引起的脉冲干扰 *缺点:无法抑制那种周期性的干扰,且平滑度差 *说明: ? 1、调用函数 ????GetAD(),该函数用来取得当前值 ? 2、变量 ????Value:最近一次有效采样的值,该变量为全局变量 ????NewValue:当前采样的值 ??? ReturnValue:返回值 3、常量说明 ??? A:两次采样的最大误差值,该值需要使用者根据实际情况设置 *入口:Value,上一次有效的采样值,在主程序里赋值 *出口:ReturnValue,返回值,本次滤波结果 #define? A?? 10 unsigned char Value unsigned char Filter() { ?? unsigned char NewValue; ?? unsigned char ReturnValue; ?? NewValue=GatAD(); ?? if(((NewValue-Value)A))||((Value-NewValue)A))) ?? ReturnValue=Value; ?? else ReturnValue=NewValue; ?? return(ReturnValue); } 中位值滤波法 *函数名称:MiddlevalueFilter()-中位值滤波法 *方法: ?? 连续采样N次(N取奇数) ?? 把N次采样值按大小排列 ?? 取中间值为本次有效值 *优点:能有效克服因偶然因素引起的波动干扰;对温度、 液位等变化缓慢的被测参数有良好的滤波效果 *缺点:对流量,速度等快速变化的参数不宜 *说明: 1、调用函数 ?GetAD(),该函数用来取得当前值 ?Delay(),基本延时函数 2、变量说明 ArrDataBuffer[N]:用来存放一次性采集的N组数据 Temp:完成冒泡法试用的临时寄存器 i,j,k:循环试用的参数值 3、常量说明 N:数组长度 #define N 11 unsigned char MiddlevalueFilter() { ? unsigned char value_buf[N]; ? unsigned char i,j,k,temp; ? for(i=0;iN;i++) ? { ??? value_buf[i] = get_ad(); ??? delay(); ? } for (j=0;jN-1;j++) ? { ?? for (k=0;kN-j;k++) ?? { ??? if(value_buf[k]value_buf[k+1]) ???? { ?????? temp = value_buf[k]; ?????? value_buf[k] = value_buf[k+1]; ?????? value_buf[k+1] = temp; ???? } ?? } ? } ? return value_buf[(N-1)/2]; } 算术平均滤波法 *方法: ?? 连续取N个采样值进行算术平均运算 ?? N值较大时:信号平滑度较高,但灵敏度较低 ?? N值较小时:信号平滑度较低,但灵敏度较高 ?? N值的选取:一般流量,N=12;压力:N=4 *优点: ?? 适用于对一般具有随机干扰的信号进行滤波 ?? 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 *缺点: ??

文档评论(0)

挑战不可能 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档