几种时域滤波的比较

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

相关文章

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Spring 中使用反射创建 Bean 实例的几种方式

《Spring中使用反射创建Bean实例的几种方式》文章介绍了在Spring框架中如何使用反射来创建Bean实例,包括使用Class.newInstance()、Constructor.newI... 目录1. 使用 Class.newInstance() (仅限无参构造函数):2. 使用 Construc

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

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优点:缺点: