数字滤波器

通常的滤波器分为有源滤波器和无源滤波器
有源滤波器:各种不同型号的运算放大器为核心构建的有源滤波器
无源滤波器:各种电阻电感搭建成的无源滤波器
这就是硬件滤波器

现在我们简绍数字滤波器;由于现在微型处理器有很强大的运算能力,所以我们用CPU的运算能力制造数字滤波器。
数字滤波器对硬件滤波器的独特优势是,不需要硬件电路支持,为系统设计节省空间。

数字滤波方法:

1.限幅滤波

限幅滤波又称为程序判断滤波,根据多次采集到的数据,如果当前采集值与前一次采集的数值相差一般维持在一 定的偏差🔺D内,则将每次采集到的数据和前一次的数据进行比较,如果他们的差的绝对值小于🔺D则本次采集到的数据有效,否则无效舍弃。以前次数据作为本次采样值。

适用性分析:

限幅滤波程序设计简单、运算速度快、占用RAM少,是一种最简单的基本滤波方法。能够克服偶然因素引入的脉冲干扰,也可以消除波形上的尖峰毛刺,但是不能抑制周期性的干扰,而且其完全削除大幅度的阶跃信号,容易造成控制失调,一般不适用于开关电源这类变化剧烈需要迅速反馈的场景,适用于水温控制等变化缓慢,安全性的应用。

2.中值滤波

其基本滤波思路是将原来的采样间隔🔺T进行细分,也就是在原来的采样间隔🔺T内采样N次,然后把N次采样值按照大小排序,取中间值为本次采样值。

适用性分析:

这种滤波方法能够有效的克服偶然因素引起的波动干扰,特别是对于像温度、液位等变化缓慢的被测参数有良好的滤波效果,但是对于流量、速度或者其他快速变化的信号参数则不适合使用这种方法。中值滤波法的程序设计要稍复杂一些,排序可以使用冒泡法或者选择排序法等,由于引入了排序算法,所以该方法不能处理速度要求很高的信号。其运算处理速度和占用的RAM直接受所选择的数值N决定。

3.算术平均滤波

该方法也是先将原来设计要求的采样间隔🔺T进行细分,在🔺T内采样N次,但是对于采集进来的数据不是进行排序,而是进行算术平均,算术平均的结果作为本次采样值。N值的选取比较关键,N值较大者处理信号的平滑度会较高,但是灵敏度降低;相反,N值较小者处理信号的灵敏度提高,但是平滑度降低。

适用性分析:

这种滤波方法是适用于对具有随机干扰的信号进行处理,并且被处理的信号必须具有一个平均值,信号在这个平均值上下波动。该方法对于高速信号并不适用。对于毛刺信号,可以看到均值滤波将其分担到了周圈的采样点上,不如中值滤波那样能够完全去除。但是对于随机噪声信号,由于其理论均值为0 ,均值滤波对第一段噪声有良好的滤除效果。
该滤波方法运算处理速度和RAM的占用率也受所选择的数值N决定,可以使用时间复杂度较低的排序方法降低运算开销。

4.递推平均滤波

递推平均滤波又称为滑动平均滤波,是将连续N个采样值设为一个先入先出的队列,队列的长度为N ,每次采样得到的新数据加入队尾,并扔掉原队列的队首,然后对队列中的N个数据进行算术平均,获得的结果作为此次采样值。

适用性分析:

可以看到,长度为20的波形更好但延迟也更大。可见该方法对于周期性干扰有良好的抑制作用,平滑度也很高。但是灵敏度较低,对于偶然出现的脉冲干扰的抑制作用较差,不适用于脉冲干扰比较严重的场合,其运算处理速度和RAM的占用率也直接受N值影响。

另外,这种方法还有一个特殊用法:制作成软件陷波器,滤除某个单-频率信号的干扰(如工频干扰)。具体实现方法介绍如下;由于正弦波一个周期内任取N个等分点的幅值和为零,其它周期波形的N等分点的幅值和为常数C ,设每次采样值为Xq ,采样的平均值为
在这里插入图片描述

若取N=s/f (其中s为每秒的采样次数即采样率; f是要消除的波形的频率,s和N都取整数) ,这样最终的结果就是Y -C,对于50Hz
的工频干扰,C为零,只要选择合适的N和s就可以直接将其消除,构成一个陷波器。

在这里插入图片描述

对于本测试样例,我们针对最后一段的纹波设计滤波器,由于这里是测试的一组数组,没有采样率概念,但是根据前面的关系换算,设置滤波点数为100点,对最后一段纹波进行了较好的滤除。
由于这一-段数据较少,加之前面数据的相移影响,学生可自己构造一段足够长的纹波信号验证,效果将更加明显。

5.中值平均滤波

中值平均滤波也称为防脉冲干扰平均滤波,相当于中值滤波和算术平均滤波思想的结合。连续采样N个数据,去掉其中的最大值和最小值,求剩下的N- 2个数据的算术平均作为一次采样值。

适用性分析:

此法综合了两种滤波法的优点,可以有效抑制、消除脉冲干扰,同时相对于纯中值滤波更加平滑,但由于计算开销加上均值的延迟作用,它也只能用在速度比较慢的场合,不适合高速环境,运算处理速度和RAM占有率由N决定。

6.递推中值平均滤波

递推中值平均滤波也称为滑动中值平均滤波,与上一种不同的是采用滑动方法对序列采样,不降低系统采样率与采样速度。
设定- 个长度为N的先进先出队列,同时为了方便排序同时构造一个同样长度为N的已排序数组,每个周期采样一个新的数值 ,插入采样队列队尾并移除队首的旧值。对这个队列进行插入排序(其他快速排序方法均可),然后去掉用户指定个数的较大值与较小值,取中间剩下值的平均数作为最终结果。

适用性分析:

上图采用了32点滤波长度,首尾去除8个点,波形平滑,没有突变的噪声与毛刺现象,对各种噪声适应性比较均衡,是我们电子竞赛实际中应用的最多的一种滤波方法。
但是,细心的读者可以发现,波形向后的延迟很高,差不多与滤波长度相当,这也是此方法的弊端。所以我们经常使用32点或者64点甚至更长的滑动中值平均滤波进行数据校准阶段的信号滤波,在恒压恒流等达到准确的稳态值后换用前面的中值滤波等高灵敏度方法进行PID的整定与调节,获得系统速的动态响应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值