信号采集是非常常见的需求,我们也总是希望采集到的数据是纯净而真实的,但这只是我们的希望。环境中存在太多的干扰信号,为了让我们得到的数据尽可能地接近实际值,我们需要降低这些干扰信号的影响,于是就有了滤波器的用武之地。这里我们讨论的主要是软件实现的数字滤波器,这一篇我们就来讨论基于递推算术平均算法的平滑滤波器。
1、问题的提出
在我们通过AD采集获取数据时,不可避免会受到干扰信号的影响,而且很多时候我们希望尽可能的将这种影响减到最小。为实现这一目的,人们想了很多办法,有硬件方面的,也有软件方面的。在硬件难以改变或者软件能够达到相应效果时,我们一般采用软件方法来实现,通常称之为数字滤波。
实现数字滤波的算法有很多种,根据不同的应用需求我们可以选择不同滤波算法来实现。对于一般的AD采集最常见的是周期性干扰和随机性噪声,对于此类干扰一般采用算术平均的方法就能得到比较理想的效果。其计算公式如下:

使用简单的算术平均值算法虽然能够实现滤波,但在一些情况下有一个问题可能会有影响,那就是当做算术平均的数量比较大时会出现曲线并不是十分平滑的情况。这很容易理解,因为一次采集n个数做算术平均得到一个结果,当n越大则间隔的时间就越长。为了解决这一问题我们并不是甲酸完后就将n个数同时丢弃,而是将最早的数丢弃并采用最新采集的数代替,这就是所谓的递推算术平均算法。但其计算公式并没有发生变化。

最低0.47元/天 解锁文章
2062

被折叠的 条评论
为什么被折叠?



