前言
滤波器在数据采集和分析中具有很多应用,它们通过减小或放大某些频率来改变时间信号的频率成分。
本文主要介绍在数字信号处理(DSP)中经常使用的两种基本的低通滤波器,有限脉冲响应滤波器(FIR)、无限脉冲响应滤波器(IIR)。
一、滤波器
1.1 简介
滤波器通过减小或放大某些频率来改变时间信号的频率成分。
举例说明如下:
如上图1所示,低通滤波器以三种不同的方式影响信号中的频率成分:一些频率成分保持不变,而其它频率成分的幅度变小或从信号中完全移除。
滤波器还可以放大频率成分,而不仅仅是降低或消除频率成分。滤波器调整信号幅度的量可以用线性项(即放大系数)或增益/衰减的分贝表示,如下图2所示。
线性度量指标和分贝度量指标有以下等价关系:
- 线性振幅的1/2代表6分贝的衰减
- 没有幅度调整对应于衰减的线性增益为1或0 dB
虽然在频域查看滤波器特性很有用,但是滤波器是在时域进行工作的(如下图3)。滤波器以时域信号为输入,修改频率内容,得到新的时域信号。
1.2 类型
滤波器可以针对不同的任务进行设计。例如,滤波器可以分为高通(high pass)、低通(low pass)、带阻(band stop)或带通(band pass)滤波器。
滤波器类型:
- 高通:高通滤波器用于消除信号中的低频偏移。例如,如果仅对应变仪信号的动态内容感兴趣,则可以使用高通滤波器消除应变仪中的任何低频漂移。
- 低通:低通滤波器会衰减或消除高于指定频率的频率。例如,这可以用于从音频记录中去除高频嘶嘶声。
- 带通:该滤波器用于仅允许频率内容的有限频带部分通过滤波器。
- 带阻:带阻滤波器用于去除指定范围内的频率成分。
这些滤波器类型可以使用FIR或IIR滤波器来实现。也可以将这些组合使用以产生任意形状的过滤器。
1.3 应用
滤波器可用于信号清理与信号分析。在某些应用中,滤波器用于通过衰减不需要的频率内容来调节时域信号。例如:
- 抗混叠滤波器(Anti-Aliasing Filter):抗混叠滤波器用于去除模拟数字转换前不能正确数字化的信号频带。
- 去噪(Noise Removal):可以用来去除信号中不需要的高频噪声,例如在音乐录音中的呲呲声。
- 漂移消除(Drift Removal):通过高通滤波器或交流耦合器(AC coupling)从信号中消除漂移或较大的偏移。
有时滤波器用于将特定的信号特性保留下来用于后续分析:
-
A加权(A-Weighting):A加权滤波器(如下图4)用于将人的听觉特性引入麦克风数据采集。麦克风在听不同频率的信号时,其状态是一样的,即无法区分不同的频率输入,而人耳却能感觉到不同频率信号的差异。A加权滤波器降低麦克风采集信号的高频和低频部分,以模拟人耳感知声音的方式。
-
全身振动加权–人体对某些振动频率的敏感度高于其他振动频率。可以使用一个过滤器(由ISO 2631定义)基于加速度计的振动信号来评估人体的健康和舒适度。
滤波器可以在模拟(用于实时信号)系统中实现,也可以在数字方式(用于在PC上处理已记录的信号)中实现。
二、FIR与IIR滤波
有限脉冲响应(FIR)和无限脉冲响应(IIR)是两类数字滤波器。
2.1 脉冲响应
其中脉冲响应”是指滤波器在时域中的外观。滤波器通常具有较宽的频率响应,其对应于时域中的短持续时间脉冲,如下图6所示。
2.2 FIR与IIR比较
- 数学定义上的差异
IIR和FIR滤波器的方程如式1所示 ,滤波器的输入为时间序列x(n),滤波器的输出为时间序列y(n). 第一个样本点在n=0处。
IIR和FIR实现之间的数学区别在于IIR滤波器使用一些滤波器的输出作为输入。这使得IIR滤波器成为一个递归函数。
每个方程都有三个数字序列: 输入时间序列、滤波器和输出时间序列(如图7):
- x(n):输入时间序列是x(0), x(1), x(2), …, x(n). 小写n是输入时间序列中数据点的总数。
- a(k):FIR滤波器用字符“a” 表示,IIR滤波器用字符“a”和“b”. 大写字母N和P分别表示滤波器中的项数,也称为滤波器的阶数。
- y(n):输出时间序列y(0), y(1), y(2), …
- 性能上的差异
FIR和IIR滤波器具有重要的性能差异,如图8所示