信号处理原理 笔记 7

滤波器

从数学上来说,滤波器其实就是频域上的窗函数,分类为:

  • 高通滤波器(HP)
  • 低通滤波器(LP)
  • 带通滤波器(BP)
  • 带阻滤波器(BS)
  • 全通滤波器(AP)
不同种类滤波器图像
不同种类滤波器图像

由于滤波器要求是偶函数,因此我们只需要研究 ω[0,π]\omega \in [0, \pi] 的情况即可

滤波特性参数

假设滤波器为W(ω)W(\omega),由于不同种类的滤波器的数学表达式不相同,因此下面讨论低通滤波器的参数特性

  • 通带容限:dp=maxω[0,π](W(ω)1)d_{p} = \max\limits_{\omega\in [0, \pi]} (W(\omega) - 1)
  • 阻带容限:dsd_{s}定义为所有旁瓣的最大值
  • 通带:{ωabs(W(ω)1)dp}\{\omega \,|\, \mathrm{abs}\big(W(\omega) - 1\big) \leq d_{p} \},其边缘频率定义为ωp\omega_{p}
  • 阻带:{ωW(ω)ds}\{\omega \,|\, W(\omega) \leq d_{s} \},其边缘频率定义为ωs\omega_{s}
  • 过渡带:通带和阻带之外的部分
  • 实际滤波器截止频率:W1(12)W^{-1}\big(\dfrac{1}{\sqrt{2}}\big)
  • 理想滤波器截止频率:ωc=W1(12)\omega_{c} = W^{-1}\big(\dfrac{1}{2}\big)
低通滤波器特性参数
低通滤波器特性参数

注意,图中是低通滤波器,其他类型的滤波器图像并不一定这样,例如显然高通滤波器中,ωp>ωs\omega_{p} > \omega_{s}

滤波器的数学表示

差分方程

一个阶段的输出是本阶段输入、上阶段输入、上阶段输出的线性组合

y(n)=1b0[a0x(n)+a1x(n1)b1y(n1)]y(n) = \frac{1}{b_{0}}\bigl[a_{0}x(n) + a_{1}x(n-1) - b_{1}y(n-1) \bigr]

一般形式,扩展为其之前所有状态输入输出的线性组合:

k=0Nbky(nk)=r=0Marx(nr)\sum\limits_{k=0}^{N}b_{k}y(n-k) = \sum\limits_{r=0}^{M}a_{r}x(n-r)

其中NN称之为滤波器的阶数

所有符号是约定俗成的,严禁替换

流图

课程中,规范的流图绘制为:

流图规范
流图规范

流图只有这几个单元,每个单元内部是可替换的,绘制时注意:

  • 箭头
  • 箭头上的文字
  • 每个块的形状
流图绘制示例
流图绘制示例

对单位冲激响应的解释

在采样一章中,我们提出了一个概念:

以理想低通滤波器(频域矩形脉冲)的单位冲激响应作为内插函数

现在,我们解释一下其中单位冲激响应的含义

在一个系统中,我们将输入称之为激励,将输出称之为响应,因此滤波器的冲激响应是指激励为脉冲信号时的响应,而单位冲激信号为:

δ(n)={1n=00n0\begin{align*} \delta(n) = \begin{cases} 1 & n = 0 \\ 0 & n \neq 0 \end{cases} \end{align*}

当我们需要求滤波器单位冲激响应的时候,我们将差分方程的输入x(n)x(n)替换为δ(n)\delta(n)即可

课程规定:此时同样需要把y(n)y(n)替换为h(n)h(n)

分类

根据每个阶段的输出是否和之前的输出有关,我们将滤波器分为有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器

FIR:

y(n)=k=0Makx(nk)y(n) = \sum\limits_{k=0}^{M}a_{k}x(n-k)

IIR:

y(n)=k=0Makx(nk)+k=1Nbky(nk)y(n) = \sum\limits_{k=0}^{M}a_{k}x(n-k) + \sum\limits_{k=1}^{N}b_{k}y(n-k)

流图的变换

对于一个IIR,其流图有两种形式,即先递归后递推或先递推后递归,而通常情况下为了更好的内存效率,我们使用先递归后递推的方式,因此我们需要将另一种进行变换,变换方式为:

流图的变换
流图的变换

可以证明,这种变换之后得到的响应是一致的,详细证明见Appendix A

在这样的变化后,中间的Z1Z^{-1}块可以共用,因此减少了内存

滤波器与卷积

通常来说,滤波器的输入为一系列脉冲信号,即:

x(n)=k=x(k)δ(nk)x(n) = \sum\limits_{k=-\infty}^{\infty}x(k)\delta(n - k)

而我们知道,当输入为单位冲激信号即x(n)=δ(n)x(n) = \delta(n)时,得到的响应应该为单位冲激响应h(n)h(n),因此由线性可得:

y(n)=k=x(k)h(nk)=x(n)h(n)y(n) = \sum\limits_{k=-\infty}^{\infty}x(k)h(n - k) = x(n) * h(n)

也即输出就是输入与单位冲激响应的卷积

我们有,这个LTI系统是稳定系统(稳定系统:输入有界 -> 输出有界)当且仅当:

n=h(n)=P<\sum\limits_{n=-\infty}^{\infty}|h(n)| = P < \infty

证明详见Appendix B

  • 如果系统串联,那么等价系统的响应函数做卷积
  • 如果系统并联,那么等价系统的响应函数做加法

系统的频率响应

系统的频率响应即为h(n)h(n)的DTFT,得到的通常为一个复值函数,即:

H(ω)=n=h(n)ejnω=H(ω)ejφ(ω)H(\omega) = \sum\limits_{n=-\infty}^{\infty}h(n)e^{-jn\omega} = |H(\omega)|e^{j\varphi(\omega)}

根据输出的卷积表达式,我们有:

Y(ω)=DTFT(y(n))=DTFT(x(n)h(n))=X(ω)H(ω)\begin{align*} Y(\omega) &= \mathrm{DTFT}(y(n)) \\ &= \mathrm{DTFT}(x(n) * h(n)) \\ &= X(\omega)H(\omega) \end{align*}

而根据滤波器的差分方程表达形式:

k=0Nbky(nk)=r=0Marx(nr)\sum\limits_{k=0}^{N}b_{k}y(n-k) = \sum\limits_{r=0}^{M}a_{r}x(n-r)

我们对这个式子两边求DTFT,根据DTFT在时域上的平移特性,有:

Y(ω)k=0Nbkejkω=X(ω)r=0MarejrωY(\omega)\sum\limits_{k=0}^{N}b_{k}e^{-jk\omega} = X(\omega)\sum\limits_{r=0}^{M}a_{r}e^{-jr\omega}

于是得到H(ω)H(\omega)的表达式:

H(ω)=Y(ω)X(ω)=r=0Marejrωk=0NbkejkωH(\omega) = \frac{Y(\omega)}{X(\omega)} = \frac{\sum\limits_{r=0}^{M}a_{r}e^{-jr\omega}}{\sum\limits_{k=0}^{N}b_{k}e^{-jk\omega}}

  • 如果系统串联,那么等价系统的响应函数做乘法
  • 如果系统并联,那么等价系统的响应函数做加法

Appendix

Appendix A

原有的表达式为:

y(n)=r=0Marx(nr)+k=1Nbky(nk)y(n) = \sum\limits_{r=0}^{M}a_{r}x(n - r) + \sum\limits_{k=1}^{N}b_{k}y(n - k)

变换后的表达式为:

z(n)=x(n)+k=1Nbkz(nk)y(n)=r=0Marz(nr)\begin{align*} z(n) &= x(n) + \sum\limits_{k=1}^{N}b_{k}z(n - k) \\ y(n) &= \sum\limits_{r=0}^{M}a_{r}z(n - r) \end{align*}

因此变换之后:

y(n)=r=0Marz(nr)=r=0Marx(nr)+r=0Mk=1Narbkz(nrk)=r=0Marx(nr)+k=1Nbkr=0Marz((nk)r)=r=0Marx(nr)+k=1Nbky(nk)\begin{align*} y(n) &= \sum\limits_{r=0}^{M}a_{r}z(n - r) \\ &= \sum\limits_{r=0}^{M}a_{r}x(n - r) + \sum\limits_{r=0}^{M}\sum\limits_{k=1}^{N}a_{r}b_{k}z(n-r-k) \\ &= \sum\limits_{r=0}^{M}a_{r}x(n - r) + \sum\limits_{k=1}^{N}b_{k}\sum\limits_{r=0}^{M}a_{r}z((n-k)-r) \\ &= \sum\limits_{r=0}^{M}a_{r}x(n - r) + \sum\limits_{k=1}^{N}b_{k}y(n - k) \end{align*}

也即是等价的