FIR设计

线性相位 FIR

前面说过,零相位系统的时域响应以 n=0 对称,如果我们将它进行平移,DTFT频率上对应一个频移,就会得到线性相位 FIR

设 $N+1$ 长的 FIR 滤波器为:

设频率响应为:

因为是线性相位,所以 $\phi(\omega)=-\alpha \omega + \beta$,其中 $\alpha$ 是时延因子

从而:

上式中的虚部为0,所以:

上面有点复杂,为了简化分析,我们不妨这样考虑:$\sin$ 是奇/偶函数,则$h[n]$是偶/奇函数就能让上式为0.

所以我们有两种情况:

  • $h[n]$ 为偶,$\sin$ 为奇
    • $h[n]=h[N-n]$
    • $\beta=0,\alpha=\frac{N}{2}$
  • $h[n]$ 为奇,$\sin$ 为偶
    • $h[n]=-h[N-n]$
    • $\beta=\frac{\pi}{2},\alpha=\frac{N}{2}$

另外,由于 $h[n]$ 的长度可以是奇数或偶数,所以一共有 4 种类型:

四种类型FIR


Ⅰ型 FIR 传输函数

  • 奇数长度,偶对称
  • $\vert H(e^{j\omega})\vert =h[\frac{N}{2}]+2 \sum_{n=0}^{N/2-1}h[\frac{N}{2}-n]\cos(\omega n)$
  • $\theta=-\frac{N}{2}\omega+\beta,\beta=0,\pi$
  • $\tau_g(\omega)=\frac{\dif \theta(\omega)}{\dif \omega}=-N/2$

Ⅱ型 FIR 传输函数

  • 偶数长度,偶对称
  • $\vert H(e^{j\omega})\vert =2 \sum_{n=0}^{(N+1)/2}h[\frac{N+1}{2}-n]\cos(\omega (n-\frac{1}{2})$
  • $\theta=-\frac{N}{2}\omega+\beta,\beta=0,\pi$
  • $\tau_g(\omega)=\frac{\dif \theta(\omega)}{\dif \omega}=-N/2$

Ⅲ型 FIR 传输函数

  • 奇数长度,奇对称

Ⅳ型 FIR 传输函数

  • 偶数长度,奇对称

线性相位 FIR 的零极点

偶对称的多项式满足:$H(z)=z^{-N}H(z^{-1})$,称为 镜像多项式

奇对称的多项式满足:$H(z)=-z^{-N}H(z^{-1})$,称为 镜像多项式

根据上两式,若 $\xi_0$ 是一个零点,则 $1/\xi_0$ 也是零点。又因为实冲激响应的滤波器的零点以复共轭的方式出现,所以下面四个零点一起出现:

  • 当零点在单位圆上时,只有两个。
  • 当零点在实轴上时,也只有两个。
  • 当零点在 $z=\pm 1$ 时,只有一个零点。(另外,偶数个 $z=1$ 对应镜像多项式,奇数个对应反镜像多项式;$z=-1$ 对应镜像多项式)

而要产生 $k$ 个零点,就要有 $k$ 阶的多项式,反之亦然。注意到上面的零点组合中,只有 $z=\pm 1$ 是奇数。

那么我们说这些废话和 FIR 有什么关系呢?还记得上面的四种 FIR 的长度吗?我们可以从长度知道它们的零点组合:

  • Ⅰ型 FIR——奇数长,偶数阶,镜像多项式
    • 在 $z=+ 1$ 有偶数个零点,或没有
    • 在 $z=- 1$ 有偶数个零点,或没有
  • Ⅱ型 FIR——偶数长,奇数阶,镜像多项式
    • 在 $z=+1$ 有偶数个零点,或没有
    • 在 $z=-1$ 有奇数个零点
  • Ⅲ型 FIR——奇数长,偶数阶,反镜像多项式
    • 在 $z=+ 1$ 有奇数个零点
    • 在 $z=- 1$ 有奇数个零点
  • Ⅳ型 FIR——偶数长,奇数阶,反镜像多项式
    • 在 $z=+ 1$ 有奇数个零点
    • 在 $z=- 1$ 有偶数个零点,或没有

那么,知道了零点对我们的设计有什么用呢?因为 $z=1$ 的零点对应低频 $\omega=0$,$z=-1$ 的零点对应高频 $\omega=\infty$。所以凡是在这些地方有零点的,这部分频率就是阻带。所以,四种 FIR 中不能设计某些滤波器:

  • Ⅰ型 FIR:任何滤波器
  • Ⅱ型 FIR:不能设计高通
  • Ⅲ型 FIR:不能设计低通、高通、带阻
  • Ⅳ型 FIR:不能设计低通

设计 FIR 滤波器

窗函数法

  窗函数法就是利用一个窗函数+时移,将无穷、非因果的理想滤波器转换为物理可实现的滤波器。加窗的过程如下图所示:

FIR 窗函数法

  常见的窗函数的特性见下表:

窗类型 主瓣宽度 过渡带宽度 相对旁瓣水平 最小阻带衰减
矩形窗 4π/(2M+1) 0.92π/M -13.3dB -20.9dB
汉宁窗 8π/(2M+1) 3.11π/M -31.5dB -43.9dB
汉明窗 8π/(2M+1) 3.32π/M -42.7dB -54.5dB
布莱克曼窗 12π/(2M+1) 5.56π/M -58.1dB -75.3dB

等波纹滤波器法

  等波纹最佳逼近法是一种优化设计法,即最大误差最小化准则,它克服了窗函数设计法和频率采样法的缺点,使最大误差(即波纹的峰值)最小化,并在整个逼近频段上均匀分布。用等波纹最佳逼近法设计的FIR数字滤波器的幅频响应在通带和阻带都是等波纹的,而且可以分别控制通带和阻带波纹幅度,这就是等波纹的含义。最佳逼近是指在滤波器长度给定的条件下,使加权误差波纹幅度最小化。与窗函数设计法和频率采样法比较,由于这种设计法使滤波器的最大逼近误差均匀分布,所以设计的滤波器性能价格比最高。阶数相同时,这种设计法使滤波器的最大逼近误差最小,即通带最大衰减最小,阻带最小衰减最大;指标相同时,这种设计法使滤波器阶数最低。

  等波纹最佳逼近法的设计思想:用 $H_d(\omega)$ 表示希望逼近的幅度特性函数,要求设计线性相位FIR数字滤波器时,$H_d(\omega)$ 必须满足线性相位约束条件。用 $H(\omega)$ 表示实际设计的滤波器的幅度特性函数。定义加权误差函数$\varepsilon(\omega)$为:

  式中,$W(\omega)$ 为幅度误差加权函数,用来控制不同频带(一般指通带和阻带)的幅度逼近精度。等波纹最佳逼近法的设计在于找到滤波器的系数向量 $h[n]$,使得在通带和阻带内的最大绝对值幅度误差 $\vert \varepsilon(\omega)\vert$为最小,这也就是最大误差最小化问题。

习题

10.17(a) 设计低通 FIR 滤波器,指标为 $\omega_p=0.42\pi$,$\omega_s=0.58\pi$,$\delta_p=0.002$,$\delta_s=0.008$,要求长度尽可能小。

解:
$$ \Delta \omega = \omega_s-\omega_p = 0.16\pi\\ \alpha_s = -20 \lg \delta_s=41.93 \text{dB} $$
选择汉宁窗,$M=\dfrac{3.11\pi}{0.16 \pi} \approx 20$


10.18 设计带通 FIR 滤波器,指标为:
$$ \omega_{p1} = 0.4 \pi \quad \omega_{p2}=0.55\pi\\ \omega_{s1}=0.25\pi \quad \omega_{s1}=0.75\pi\\ \delta_p = 0.022\\ \delta_{s1}=0.006 \quad \delta_{s2}=0.008 $$

解:总之就是取更苛刻的指标来设计窗,具体原理不太理解。
$$ \Delta \omega_1 = \omega_{p1} - \omega_{s1}=0.15\pi\\ \Delta \omega_2 = \omega_{p2} - \omega_{s2}=0.2\pi\,\;\\ \alpha_{s1}=-20 \lg \delta_{s1}=44.43\text{dB}\\ \alpha_{s2}=-20 \lg \delta_{s2}=41.93\text{dB} $$
以 $\Delta \omega_1$ 和 $\alpha_{s1}$ 作为指标,则选取 Hann 窗,$M=\frac{3.11\pi}{0.15 \pi}\approx 21$

以下是我上学期与下学期写的一些笔记,请老师斧正。