完整版请参考:
模拟电路工程师不会对基于RLC的滤波器感到陌生,但对于数字滤波器或离散时间域滤波器就没那么熟悉了。今天我想总结一下简单的数字滤波器的分析方法、常用模拟滤波器对应的数字滤波器实现以及模拟滤波器的离散时间域建模方法。
模拟滤波器基本知识
模拟滤波器处理的是模拟信号,即对时间域上连续、电压域上也连续的信号进行处理。实现滤波功能的主要方式是利用电感、电容这类储能器件的特性,对于基于运算放大器的有源滤波器,还利用了反馈原理。
数字滤波器基本知识
基本结构
而数字滤波器处理的是数字信号,即对时间域上离散、电压域上也离散的信号进行处理,在数值与具体信号之间还存在编码问题。数字滤波器通常由乘法器、加法器和存储器构成。其中存储器通常用锁存器实现,框图上记为 z − 1 z^{-1} z−1,即对输入进行了 T s T_s Ts的延迟,也称作“延1拍”或“打1拍”,这里的 T s T_s Ts为数字滤波器工作时钟的周期。
根据滤波器的输出是否会参与下一次运算,数字滤波器可以分为有限冲击响应(FIR)和无限冲击响应(IIR)两种。通俗地讲,就是看输出是由有限的输入决定,还是由在此之前所有的输入决定。如下图所示,对于FIR滤波器而言,当 n = j + 1 n = j+1 n=j+1时 Y [ n ] Y[n] Y[n]便与 X [ 0 ] X[0] X[0]没有关系了;而同样的情况下对于IIR滤波器而言, X [ 0 ] X[0] X[0]还可以通过 Y [ n − 1 ] Y[n-1] Y[n−1]对 Y [ n ] Y[n] Y[n]施加影响。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KPKR5pEO-1584195469021)(/img/in-post/{ {page.id | replace:’/’,’-’}}/Diagram_FIR_IIR_Filter.png)]
因为FIR滤波器不会无限地积累,因此它是绝对稳定的。但因为同样的原因,FIR滤波器不能实现DC处的极点。
频域响应
从上一节不难推出滤波器的传递函数:
- 对于FIR滤波器,有
Y [ n ] = ∑ i = 0 j b i X [ n − i ] Y[n]=\sum_{i=0}^{j}{b_iX[n-i]} Y[n]=i=0∑jbiX[n−i]
→ Y [ z ] = ∑ i = 0 j b i X [ z ] z − i \rightarrow Y[z]=\sum_{i=0}^{j}{b_iX[z]z^{-i}} →Y[z]=i=0∑jbiX[z]z−i
→ H ( z ) = Y [ z ] / X [ z ] = ∑ i = 0 j b i z − i \rightarrow H(z) = Y[z]/X[z] = \sum_{i=0}^{j}{b_iz^{-i}} →H(z)=Y[z]/X[z]=i=0∑jbiz