几种时域滤波的比较

2024-04-07 07:08
文章标签 比较 几种 滤波 时域

本文主要是介绍几种时域滤波的比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 平均值滤波

  1)算术平均滤波
    方法:连续取N个采样值进行算术平均运算。N值较大时,信号平滑度较高,但灵敏度较低;N值较小时,信号平滑度较低,但灵敏度较高。N值的选取一般规则为:流量N取12;压力N取4;温度、成分等缓变信号N可取2甚至不平均。
    优点:适用于对一般具有随机干扰的信号进行滤波,这种信号的特点是有一个平均值,信号在某一数值范围附近上下波动。
    缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,并且比较浪费RAM。
  2)中位值平均滤波法(又称防脉冲干扰平均滤波法)
     方法:相当于“中位值滤波法”+“算术平均滤波法”,连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值,N值的选取:3~14。
    优点:融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。
    缺点:测量速度较慢,和算术平均滤波法一样,比较浪费RAM。
  3)滑动平均滤波
    上述各种平均滤波算法有一个共同点,即每取得一个有效采样值,必须连续进行若干次采样,当系统的采样速度较慢(如双积分型A/D转换)或采样信号变化较快时,系统的实时性就无法得到保证。而滑动平均滤波算法能较好地解决这一问题。它在每个采样周期只采样一次,将这一次采样值和过去的若干采样值一起求平均,所得结果即为有效采样值。
    方法:把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据就放入队尾,并扔掉原来队首的第一个数据(先进先出原则)。把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的一般选取方法为:流量,N=12;压力:N=4;液位,N=4~12;温度,N=1~4。
    优点:对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。
    缺点:灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。
2 中值滤波
    方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。本算法为取中值,故采样次数应为奇数,一般3~5次即可。对于变化很慢的采样信号也可增加次数。其程序编制可采用几种常规的排序算法,如冒泡算法。
    优点:能有效克服因偶然因素引起的波动干扰,对温度、液位等变化较缓慢的被测参数有良好的滤波效果。
    缺点:对流量、速度等快速变化过程的参数处理效果不好。
3 限幅滤波
    方法:根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时进行判断,如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。
    优点:能有效克服因偶然因素引起的脉冲干扰,对随机干扰或采样器不稳定引起的失真有良好的滤波效果。
    缺点:无法抑制那种周期性的干扰,平滑度差。
 一阶滞后滤波法
方法:取a=0~1,本次滤波结果=(1-a)*本次采样值+a*上次滤波结果。
优点:对周期性干扰具有良好的抑制作用 适用于波动频率较高的场合。
缺点:相位滞后,灵敏度低,滞后程度取决于a值大小,不能消除滤波频率高于采样频率的1/2的干扰信号。
http://blog.sina.com.cn/s/blog_0522d5260100mm6p.html

这篇关于几种时域滤波的比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/881945

相关文章

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

JS 实现复制到剪贴板的几种方式小结

《JS实现复制到剪贴板的几种方式小结》本文主要介绍了JS实现复制到剪贴板的几种方式小结,包括ClipboardAPI和document.execCommand这两种方法,具有一定的参考价值,感兴趣的... 目录一、Clipboard API相关属性方法二、document.execCommand优点:缺点:

SpringMVC前后端传值的几种实现方式

《SpringMVC前后端传值的几种实现方式》本文主要介绍了SpringMVC前后端传值的方式实现,包括使用HttpServletRequest、HttpSession、Model和ModelAndV... 目录一、从Controller层到JSP界面1、使用HttpServletRequest的方式2、使

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

Java中List转Map的几种具体实现方式和特点

《Java中List转Map的几种具体实现方式和特点》:本文主要介绍几种常用的List转Map的方式,包括使用for循环遍历、Java8StreamAPI、ApacheCommonsCollect... 目录前言1、使用for循环遍历:2、Java8 Stream API:3、Apache Commons

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

python忽略warnings的几种方法

《python忽略warnings的几种方法》本文主要介绍了几种在Python忽略警告信息的方法,,可以使用Python内置的警告控制机制来抑制特定类型的警告,下面就来介绍一下,感兴趣的可以了解一下... 目录方法 1: 使用 warnings 模块过滤特定类型和消息内容的警告方法 2: 使用 warnin