常用的滤波算法

66人阅读 评论(0) 收藏 举报
分类:

时域上的滤波有很多常用的算法,这里总结一下。

  1. 首先是消除大脉冲的噪声,噪声幅度大
    • 限幅滤波法
    • 中值滤波法
  2. 消除小幅度高频率的噪声(俗称毛刺)
    • 算术平均
    • 消抖滤波法
    • 加权滑动平均
    • 一阶滞后滤波法
  3. 复合算法
    • 中位值平均滤波法
    • 限幅平均滤波法
    • 限幅消抖滤波法

在这些方法中,用得最多的还是移动平均。但是移动平均有一个问题:计算大,内存大。(相对于资源有限的终端来说)。
这里有一个思路,是移动平均的变种,可以大大降低计算和内存占用。

初始化:C为信号序列,A为平滑后的序列,初始值=C1,S=A*N,N为滑动窗口的大小
S = S - A + C
A = S / N
就这么简单,三个变量(N可以是常数),只要 S 的量程足够,N可以任意调整。
可以看出,此算法是从队列平均值算法演变而来,因没有了队列,每次计算时不知道该丢弃的最老的一个采样值是多少,这里用了个替代的办法,丢弃上次计算出的平均值。
去掉了缓存维护,节省内存空间,同时也将运算量压缩到了最小,执行效率非常高。调试时容易修改采样数。

优化算法:
此算法的核心思想还是平均值滤波,虽然改进了运算量和内存占用,但同样继承了平均值滤波法 N 值较大时平滑度好,反应迟钝的特点。
为此,对算法引入 S7-200 系统滤波程序中死区的概念:采样值偏差在死区范围内时,进行滤波计算,采样值偏差在死区范围以外时直接使用采样值,达到快速反应的效果。(设置滤波门槛,保持数据敏感度)
再溶合限幅滤波法去掉偶然的干扰脉冲:采样值偏差在限幅范围内时,进行滤波计算,采样值偏差在限幅范围以外时直接丢弃,使用上次滤波输出值。显然,限幅值应该大于死区值。


Reference:
方法介绍与C语言版
方法介绍与C语言版2
以上两个链接代码仅供参考,可能有错误。
用于Arduino的C语言版

查看评论

硬件设计11---什么是滤波?

时间:2018.2.26 作者:Tom 工作:HWE 说明:如需转载,请注明出处。1.基本概念-----什么是谐振?    在具有电阻R、电感L和电容C元件的交流电路中,电路两端的电压与其中电...
  • wangdapao12138
  • wangdapao12138
  • 2018-02-26 23:42:05
  • 107

常用的滤波算法

时域上的滤波有很多常用的算法,这里总结一下。 首先是消除大脉冲的噪声,噪声幅度大 限幅滤波法 中值滤波法 消除小幅度高频率的噪声(俗称毛刺) 算术平均 消抖滤波法 加权滑动平均 一阶滞后滤波法...
  • yq_forever
  • yq_forever
  • 2018-03-15 18:41:57
  • 66

一维数据滤波并求极大值

立体匹配代码准备 关键函数:滤波medfilt1(x,
  • todayq
  • todayq
  • 2014-07-08 17:55:35
  • 850

10种常用滤波算法

  • 2013年07月11日 00:23
  • 55KB
  • 下载

常用数字滤波算法

常用数字滤波算法 第1种方法:限幅滤波法(又称程序判断滤波法)   A方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断: 如果本次值与上次值之差A,则...
  • fandq1223
  • fandq1223
  • 2017-05-25 16:19:49
  • 2741

海明窗滤波

转载于:http://rssthome.com/forum.php?mod=viewthread&tid=57&extra=page=1 可以利用海明窗滤波对影像进行低通滤波,其公式如下图所:  ...
  • ren_zhong_liang
  • ren_zhong_liang
  • 2016-11-06 19:31:37
  • 178

C# 数据的五点二次平滑算法

C# 五点二次 平滑算法 平滑数据 去除数据<em>毛刺</em> C# 五点二次 平滑算法 平滑...五点三次平滑<em>滤波C语言</em>程序 立即下载 上传者: xiaoyin0208_ 时间: 2011-08-...
  • 2018年03月21日 00:00

十大滤波算法程序大全

1、限幅滤波法(又称程序判断滤波法) /* A、名称:限幅滤波法(又称程序判断滤波法) B、方法:     根据经验判断,确定两次采样允许的最大偏差值(设为A),     每次检测到新值...
  • gezhiwu1213
  • gezhiwu1213
  • 2015-08-01 17:20:45
  • 1361

几种图像滤波算法的简单介绍

图像平滑处理
  • buki26
  • buki26
  • 2017-07-19 16:26:19
  • 326

大牛讲解信号与系统以及数字信号处理

第一课 什么是卷积 卷积有什么用 什么是傅利叶变换 什么是拉普拉斯变换  引子 很多朋友和我一样,工科电子类专业,学了一堆信号方面的课,什么都没学懂,背了公式考了试,然后毕业了。 先说"卷积有什...
  • syrchina
  • syrchina
  • 2013-05-20 15:08:16
  • 2143
    新家地址
    个人资料
    持之以恒
    等级:
    访问量: 7万+
    积分: 1852
    排名: 2万+
    最新评论