滤波器简介:FIR与IIR

孤者浪人 提交于 2020-12-16 09:18:19

滤波器简介:FIR与IIR

转载于:滤波器简介:FIR与IIR

关于本博文的说明:本博文为翻译文章,主要分享数字滤波器相关知识,包括有限脉冲响应数字滤波器(finite impulse response, FIR)和无限脉冲响应数字滤波器(infinite impulse response, IIR). 原文为‘Introduction to Filters: FIR versus IIR’,由Siemens Phenom发布,原文链接为https://community.plm.automation.siemens.com/t5/Testing-Knowledge-Base/Introduction-to-Filters-FIR-versus-IIR/ta-p/520959

1. 引言

滤波器在数据采集和分析中具有很多应用. 它们通过减小或放大某些频率来改变时间信号的频率成分. 例如,如图1所示,低通滤   波器以三种不同的方式影响信号中的频率成分:一些频率成分保持不变,而其它频率成分的幅度变小或从信号中完全移除. 

              filter_overview.png

Figure 1: A low pass filter passes low frequencies unaltered (left) and removes high frequencies (right)..

滤波器还可以放大特定的频带,而不仅仅是减弱或删除部分频带. 滤波器调整信号的幅度可以用线性形式表示(即放大系数)或增益/衰减分贝,如图2所示.

filter_gain_attenutation.png

Figure 2: Left graph – Linear filter amplitude in multiplication factor versus frequency, Right graph – Same filter in decibel scale of attenuation versus frequency.

线性度量指标和分贝度量指标有以下等价关系:

  1. 线性振幅的1/2代表6分贝的衰减
  2. 没有调整的频带对应线性增益为1,或0分贝衰减

虽然在频域查看滤波器特性很有用,但是滤波器是在时域进行工作的(图3). 滤波器以时域信号为输入,修改频率内容,得到新的时域信号.

               filter_what_it_does.png

Figure 3: An input signal with high frequency noise is passed through a low pass filter. The resulting output has the high frequency noise removed, resulting in a clean signal. (带有高频噪声的输入信号经过低通滤波器后得到纯净的输出信号)

2. 滤波器的应用(Applications of Filters)

滤波器可用于信号清理与信号分析. 在某些应用中,滤波器用于通过衰减不需要的频率内容来调节时域信号. 例如:

  • 抗混叠滤波器(Anti-Aliasing Filter)—抗混叠滤波器用于去除模拟数字转换前不能正确数字化的信号频带
  • 去噪(Noise Removal)—可以用来去除信号中不需要的高频噪声,例如在音乐录音中的呲呲声
  • 漂移消除(Drift Removal)—通过高通滤波器或交流耦合器(AC coupling)从信号中消除漂移或较大的偏移

有时滤波器用于将特定的信号特性保留下来用于后续分析:

  • A加权(A-Weighting)—A加权滤波器(图4)用于将人的听觉特性引入麦克风数据采集. 麦克风在听不同频率的信号时,其状态是一样的,即无法区分不同的频率输入,而人耳却能感觉到不同频率信号的差异. A加权滤波器降低麦克风采集信号的高频和低频部分,以模拟人耳感知声音的方式

 

 

Figure 4: A-weighting filter frequency domain shape. Y-axis is gain or attenuation in dB versus X-axis in frequency.

  • 全身振动加权(Whole Body Vibration Weighting)—人体对某些特定的振动频率比较敏感,因此,基于加速度计的振动信号,结合全身振动加权滤波器(ISO 2631)可以对人体的健康和舒适度进行评价

滤波器可应用于模拟系统(针对实时信号),或数字系统(针对PC上已记录的信号).

3. 滤波器类型(Filter Types)

滤波器可以针对不同的任务进行设计. 例如,滤波器可以分为高通(high pass)、低通(low pass)、带阻(band stop)或带通(band pass)滤波器(参见图5).

                    filter_types.png

Figure 5: Types of Filters

滤波器类型:

  • 高通滤波器—高通滤波器用于去除信号中的低频偏移. 例如,如果仅对应变仪信号的动态内容感兴趣,则可以使用高通滤波器去除仪表中的任何低频漂移
  • 低通滤波器—低通滤波器衰减或消除指定频率以上的频率. 例如,其可以用来去除音频记录中的高频嘶嘶声
  • 带通滤波器—此滤波器用于仅允许指定频率范围内的信号通过滤波器
  • 带阻滤波器—带阻滤波器用于去除指定范围内的信号频率

这些滤波器类型可以使用FIR或IIR滤波器来实现, 也可以使用这些组合来生成任意形状的滤波器.

4. FIR和IIR(FIR versus IIR)

两类数字滤波器是有限脉冲响应(Finite Impulse Response, FIR)和无限脉冲响应(Infinite Impulse Response , IIR).

脉冲响应是指滤波器在时域内的出现,滤波器通常具有较宽的频率响应,这对应于时域内的短时间脉冲,如图6所示.

freq_vs_time_filt.png

Figure 6: Frequency (left) and time (right) domain representations of filter shape.

IIR和FIR滤波器的方程如式1所示. 滤波器的输入为时间序列x(n),滤波器的输出为时间序列y(n). 第一个样本点在n=0处.

     filter_equation.png

Equation 1: Finite Impulse Response (FIR) filter equations versus Infinite Impulse Response (IIR) filter.

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), …

filter_eqn_graphic.png

Figure 7: Time series for input time history, “x(n)” , FIR filter - Series “a(k)”, and output time history, “y(n)”.

在实践中,FIR和IIR滤波器具有重要的性能差异,如图8所示.

 

Figure 8: Summary of differences between IIR and FIR filters.

IIR滤波器的优点是,对于与FIR类似的滤波器,可以使用较低的阶数或项数. 这意味着实现相同结果所需的计算量更少,使得IIR的计算速度更快. 然而,IIR具有非线性相位和稳定性问题. 这有点像龟兔赛跑的寓言,FIR滤波器就像赛跑中的乌龟—缓慢而稳定,总是能跑完全程. 兔子就像IIR滤波器—非常快,但有时崩溃,并没有完成比赛.

4.1. 滤波器阶数和计算速度(Filter Order and Computational Speed)

由式1中的FIR滤波器方程可知,N越大,滤波器的阶数越高. 例如,如果滤波器项数为10,而不是5,那么滤波器的计算将花费两倍的时间。然而,滤波器的频率下降会更清晰,如图9所示.

         5term_vs_10term_filter.png

Figure 9: Top – The roll off sharpness of the filter (top) with fewer terms is less sharp than filter with more terms (bottom).

包含更多项(阶数更高)滤波器在通过频率和截止频率之间有更剧烈的转换. 图10显示了相同滤波器类型在使用不同阶数计算时的幅频响应图. 使滤波器的幅频响应变化更锐利是通过增加滤波器阶数来实现的,这意味着需要更多的计算,同时也会影响滤波器引入的时间延迟.

                                   filter_rolloff_vs_order.png

Figure 10: Increasing the order of filter, but keeping all else the same, increases the sharpness of the filter roll off.

                      Key - order vs sharp.png

阶数越高,滤波器的幅频响应变化曲线越陡峭,滤波器对滤除的频率截断效果越显著.

对于相同的阶数,FIR和IIR滤波器的锐度差别很大,如图11所示. 由于IIR滤波器的递归性质(见公式1),其中部分滤波器输出用作输入,它可以使用相同阶的滤波器实现更陡峭的增益变化.

                                                filter_iir_fir_same_order.png

Figure 11: For the same order, the IIR filter has a sharper roll off than a FIR filter.

因此,IIR可以使用更少的阶数来实现与FIR相同的性能,如图12所示. 

                                                 iir_vs_fir_different_order.png

Figure 12: An IIR filter can achieve similar performance to an FIR filter with a lower order.

从计算的角度来看,这使得IIR滤波器比FIR滤波器更快. 如果必须在实时应用程序中实现滤波器(例如在监听时进行交互过滤),通常选择IIR.

然而,使用IIR滤波器也有一些潜在的缺点: 

  • 延迟—IIR在不同频率下的延迟不同,而FIR在每个频率的延迟一致
  • 稳定性—由于其结构的特殊性,IIR滤波器有时可能是不稳定的,可能出现无法计算或应用于数据的情况,而FIR滤波器的计算始终是稳定的

key_fir_iir_rolloff.png

即想要达到相同的滤波效果,IIR滤波器所需的阶数更少,计算量更小,速度也就更快.

4.2. 滤波器的时间延迟(Time Delay)

滤波后的时间序列,与原始时间序列相比,会出现轻微的偏移或时间延迟. 图13显示了同步采集的声音数据(红色曲线,顶部)和振动数据(蓝色曲线,底部). 对声音数据滤波器后(绿色曲线,顶部)会导致声音和振动数据之间出现时延现象.

                               filter_time_shift.png

Figure 13: Top - Original time signal (red) is time delayed (green) by filter. Bottom – Vibration signal (blue) no longer aligned with filtered sound signal (green).

在某些应用程序中,这不是问题,因为偏移量是已知的,可以忽略. 而在其他应用程序中,这种延迟可能很重要. 例如:

  • 故障排除(Troubleshooting)—对于多通道的声音和振动数据,如果只对声音通道使用滤波器,相对于振动通道,滤波后的声音会引入一个时间延迟(见图13底部图). 当试图确定一个振动事件是否产生了一个声音时,这一次的不对齐将很难看到振动和声音事件是否相关
  • 运行变形振型(Operational Deflection Shapes)—如果运行变形振型中的某些振动通道使用了滤波器,而其它通道没有,这将导致这些通道之间的相位关系发生改变,结果其animation(实在不知道该如何翻译,超出大纲了TAT)将不正确

是什么原因导致滤波器在输出时间序列中引入了时间延迟?

从图14中得到FIR滤波器的方程,通过对该方程的分析,可以看出产生时延的原因.

                                   filter_delay_equation.png

Figure 14: To be fully realized (i.e., actually work) the filter requires as many data points (n) as the terms (N) to be passed through the filter.

输入信号(x)中的一些时间序列样本必须通过与项数(N)成比例的滤波器,然后滤波器才会工作。此外,在输入滤波器的样本点数(n)大于N以前,滤波后的时间序列不会开始输出.

因为必须先有一些数据通过滤波器才能创建输出,所以与输入时间序列(x)相比,输出时间序列(y)的创建会有一个延迟,如图13所示. 滤波器的幅频响应变化曲线越陡峭锐利,这种延迟就越长.

                      key_sharp_time.png

FIR和IIR滤波器的延迟特性有很大的不同,如图15所示. FIR滤波器在所有频率上具有相同的时延,而IIR滤波器的时延随频率而变化. 通常IIR滤波器中最大的时延出现在滤波器的截止频率处.

                            filter_iir_fir_delay.png

Figure 15: IIR and FIR Filter amplitude (top) and time delay (bottom). A FIR has equal delay at all frequencies while the IIR filter time delay varies with frequency.

             key_iir_vs_fir_delay.png

FIR滤波器在所有频率上具有相同的时延,而IIR滤波器的时延随频率而变化.

所有的滤波器都会产生某种时延(模拟或数字),根据滤波器的特性,延迟或长或短,它们也可以是频率的函数.

4.3. 零相位滤波(Zero Phase)

通过“前向和后向”滤波,输出时间序列中的时延可以被消除. 在对x(n)滤波得到输出y(n)之后,可以对y(n)再次进行滤波,首先将y(n)中的数据点反转,再输入滤波器进行滤波. 这就是所谓的零相位滤波(zero phase filtering),结果如图16所示.

                direct_versus_zero_phase.png

Figure 16: Original signal (red) filtered directly (green) and with zero phase (blue). Zero phase removes the delay, but data is lost at the end of zero phase filtered time history.

注意,时间延迟位于零相位滤波输出的末尾(蓝色).

零相位滤波的输出y(n)与x(n)实现了对齐,但数据由于滤波了两次,衰减加倍. 当使用零相位滤波器时,需要进行以下权衡:

  • 计算时间加倍
  • 针对数字信号的实现比较容易,针对模拟信号并不是
  • 输出序列末尾的样本点被消除了

key_zero_phase.png
5. 滤波器属性(Filter Methods and Attributes)

可以选择滤波器的系数a(n)来控制特定的滤波器属性,如图17所示.

                                          Filter_bands.png

Figure 17: Pass, Transition, and Stop band.

滤波器有四个主要的属性:

  • 通频带(Pass Band)–通频带中的数据直接输出到输出时间序列. 为了保证通频带内的数据与原始时程数据一致,滤波器中不应有纹波. 纹波是振幅随频率的微小变化,理想情况下,在这个波段,滤波器的振幅应该恰好为1.
  • 过渡带宽(Transition Width)–根据应用程序的不同,可能希望通过和截止频带之间的转换在频率方面尽可能窄,该方法和滤波器的阶数决定了通带和截止带之间转换发生的速度.
  • 截止频带(Stop Band)–如果滤波器有纹波,截止带也可以包含输出数据. 在某些应用中,纹波的存在可能无关紧要,而在某些特定的场合下,则不能接受纹波的存在.
  • 群时延(Group Delay/Phase)–滤波器在输出时间序列中引入了时延,该时延可能是随频率变化的函数. 如前所述,通过前向和后向滤波器(零相位滤波器)可以消除输出时间序列中的时延现象. 在某些应用程,相位也是很重要的,此时就不能再用零相位滤波器了.

5.1 FIR滤波方法(FIR Filter Methods)

下面列出了有限脉冲响应(FIR)滤波器的方法,如图18所示.

                              fir_filter_types.png

Figure 18: FIR Filter Methods.

FIR方法在从频域到时域的转换中使用了不同的谱窗。一些窗口方法包括:

  • Chebyshev - 停止带纹波最小,过渡带最宽
  • Hamming - 过渡区窄,波纹比Hanning小
  • Kaiser - 在停止区有较小的纹波
  • Hanning - 过渡带最窄,停止带纹波较大
  • Rectangular - 纹波最大,甚至影响通带

5.2 IIR滤波方法(IIR Filter Methods)

无限脉冲响应滤波器的方法如图19所示.

        iir_filter_methods.png

Figure 19: Comparison of Low Pass IIR filters with same order and cutoff frequency.

不同IIR滤波方法的属性:

  • Butterworth - 在通带和停止带响应平稳,但过渡区较宽
  • Inverse Chebyshev - 通带平坦,过渡带宽度比巴特沃斯滤波器窄,但在停止带有波纹
  • Chebyshev - 在通带可以有纹波,但其过渡带比反向Chebyshev更短
  • Cauer - 过渡带最短,通带和停止带均有纹波
  • Bessel - 在通带和停止带均出现幅度倾斜(Sloping),过度带非常宽

      key_filter_methods.png

The END.

由于翻译水平有限(主要是对滤波器相关知识理解得不是很到位),文中可能存在一些错误,还请各位看官结合原文进行深度理解 :-).

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!