↓ 跳过正文
  1. 文章/

DSP-12 数字滤波器的结构

学习笔记 DSP

目录
DSP - 这篇文章属于一个选集。
§ 12: 本文

🌟 欢迎来到第12讲:数字滤波器的结构 (Digital Filter Structure)
#

(对应课本第八章内容)

到目前为止,我们已经学会了如何用数学语言(差分方程、系统函数)来"设计"一个滤波器。但是,一个数学公式如何变成一段能在CPU上运行的代码,或者一个能在FPGA上实现的硬件电路呢?这就是今天的主题——数字滤波器的结构。

核心学习目标:

  1. 理解滤波器结构:掌握用方框图表示LTI系统的基本方法和三大基本单元。
  2. 区分FIR与IIR:系统性地对比FIR和IIR滤波器的优缺点和应用场景。
  3. 掌握FIR滤波器结构:学习直接型、级联型等FIR滤波器的实现结构,并理解线性相位结构如何节省计算资源。
  4. 掌握IIR滤波器结构:学习直接I型、直接II型、级联型和并联型等IIR结构,并重点理解直接II型(规范结构)在节省延迟单元上的优势。
  5. 认识等效结构:理解不同结构可以实现相同系统函数,并了解选择不同结构的现实考量。

📚 本讲知识地图
#

file-第12讲.jpg

📝 本讲主要内容
#

1. 滤波器的方框图表示
#

1.1 ✨ 为什么要研究结构?
#

一个系统函数 $H(z)$ 可以有多种不同的数学表达式,例如一个高阶多项式,或者分解成多个低阶多项式的乘积(级联)或和(并联)。不同的数学表达式就对应着不同的计算流程,也就是不同的"结构"。

  • 研究结构的意义:
    • 计算效率:需要多少次乘法和加法?
    • 资源消耗:需要多少个存储单元(延迟环节)?
    • 数值稳定性:在有限精度计算(如定点数)中,不同结构的舍入误差和稳定性表现差异巨大。

1.2 🔧 基本结构单元与示例
#

单元 方框图符号 作用
乘法器 三角形 $y[n] = a \cdot x[n]$
加法器 圆圈带"+“号 $y[n] = x_1[n] + x_2[n]$
单位延时 带 $z^{-1}$ 的方框 $y[n] = x[n-1]$

【示例】从差分方程到方框图 考虑一个简单的一阶IIR系统: $y[n] = b_0 x[n] + b_1 x[n-1] + a_1 y[n-1]$

这个方程直接告诉我们如何构建结构图:

  1. $y[n]$ 是三项之和,所以需要两个加法器。
  2. 需要 $x[n-1]$,所以需要一个延迟单元作用于输入 $x[n]$。
  3. 需要 $y[n-1]$,所以需要一个延迟单元作用于输出 $y[n]$(反馈)。
  4. 有三个系数 $b_0, b_1, a_1$,所以需要三个乘法器。

【图片:PPT P8中一阶IIR系统的框图和流图】 file-第12讲1.jpg

2. FIR 和 IIR 滤波器对比
#

特性 FIR 滤波器 IIR 滤波器
冲激响应 有限长 无限长
系统函数 只有零点 同时有零点和极点
反馈 无 有
稳定性 总是稳定 需要设计保证
相位特性 容易实现严格的线性相位 通常是非线性相位
阶数/资源 通常更高阶数 阶数较低

3. FIR 滤波器的结构
#

3.1 直接型 (Direct Form)
#

直接将差分方程 $y[n] = \sum_{k=0}^{N} h[k]x[n-k]$ 转化为结构图。

【示例】5阶FIR直接型结构 (N=5)

  • 系统函数: $H(z) = h + hz^{-1} + hz^{-2} + hz^{-3} + hz^{-4} + hz^{-5}$

  • 结构图: 【图片:PPT P26中N=5阶FIR直接型结构图,也称为抽头延迟线结构】 file-第12讲2.jpg

  • 分析:

  • 一条由5个 $z^{-1}$ 单元串联组成的延迟线。

  • 输入 $x[n]$ 以及每个延迟单元的输出(即 $x[n-k]$)分别乘以对应的系数 $h[k]$。

  • 所有乘积项累加得到输出 $y[n]$。

  • 需要 5 个延迟单元,6 个乘法器,5 个加法器。

3.2 级联型 (Cascade Form)
#

将 $H(z)$ 分解为多个二阶节(SOS)的乘积,然后串联。

【示例】6阶FIR级联型结构 (N=6)

  • 系统函数分解: $H(z) = h \prod_{k=1}^{3} (1 + \beta_{1k}z^{-1} + \beta_{2k}z^{-2})$
  • 结构图: 【图片:PPT P28中N=6阶FIR级联型结构图】 file-第12讲3.jpg
  • 分析:
    • 系统由3个二阶节和一个增益 $h$ 串联而成。
    • 每个二阶节实现一对零点,结构清晰,便于独立调整。
    • 这是实际中非常常用的结构,因为它对系数的量化误差不敏感,数值稳定性好。

3.3 线性相位优化结构
#

利用 $h[n] = \pm h[N-n]$ 的对称性,可以减少乘法器数量。

【示例】6阶 Type I 线性相位FIR (h[n]=h[6-n])

  • 系统函数: $H(z) = h(1+z^{-6}) + h(z^{-1}+z^{-5}) + h(z^{-2}+z^{-4}) + hz^{-3}$

  • 优化思路: 先加后乘。例如,计算 $(x[n] + x[n-6]) \cdot h$,而不是 $x[n] \cdot h + x[n-6] \cdot h$。

  • 结构图: 【图片:PPT P33中 Type I (N=7) 结构的类似实现,N=6时对称中心在h】 file-第12讲4.jpg

  • 分析:

  • 直接型需要 7 个乘法器。

  • 优化后,只需要 4 个乘法器 ($h, h, h, h$),乘法器数量几乎减半!

4. IIR 滤波器的结构
#

4.1 直接I型 (Direct Form I)
#

先实现零点(FIR部分),再实现极点(反馈部分)。

【示例】一个3阶IIR系统 (M=3, N=3)

  • 系统函数: $$H(z) = \frac{p_0 + p_1z^{-1} + p_2z^{-2} + p_3z^{-3}}{1 + d_1z^{-1} + d_2z^{-2} + d_3z^{-3}}$$

  • 结构图: 【图片:PPT P36中的直接I型结构图】 file-第12讲5.jpg

  • 分析:

  • 左半部分是一个3阶FIR结构,需要3个延迟单元。

  • 右半部分是一个3阶纯反馈结构,需要3个延迟单元。

  • 总共需要 M+N = 3+3 = 6 个延迟单元。这是一个非规范结构,因为系统阶数是3,但使用了6个延迟单元。

4.2 ✨ 直接II型 (Direct Form II)
#

交换直接I型的级联次序并合并延迟单元,得到延迟单元最少的规范结构。

【示例】从直接I型到直接II型

  1. 交换次序: 先实现反馈部分,再实现FIR部分。 【图片:PPT P40中调换级联次序后的结构图】 file-第12讲6.jpg

  2. 合并延迟单元: 两条延迟链的输入都是同一个中间信号,因此可以合并。 【图片:PPT P41中合并延迟单元后得到的直接II型结构图】 file-第12讲8.jpg

  • 分析:
    • 最终结构只需要 max(M,N) = 3 个延迟单元。
    • 这是实现IIR滤波器最节省存储资源的结构。

【综合示例】

  • 系统函数: $H(z) = \frac{1+2z^{-1}+z^{-2}}{1-0.75z^{-1}+0.125z^{-2}}$

  • 直接I型 vs 直接II型: 【图片:PPT P43中该系统直接I型和直接II型的对比图】 file-第12讲9.jpg

  • 直接I型: 需要 2+2=4 个延迟单元。

  • 直接II型: 只需要 max(2,2)=2 个延迟单元。

4.3 级联型 (Cascade Form)
#

将 $H(z)$ 分解为多个二阶节的乘积,然后串联。

【示例】三阶IIR级联结构

  • 系统函数分解: 分解为一个一阶节和一个二阶节的乘积。 $H(z) = p_0 \left(\frac{1+\beta_{11}z^{-1}}{1+\alpha_{11}z^{-1}}\right) \left(\frac{1+\beta_{12}z^{-1}+\beta_{22}z^{-2}}{1+\alpha_{12}z^{-1}+\alpha_{22}z^{-2}}\right)$
  • 结构图: 【图片:PPT P47中的三阶IIR级联结构图,每个子系统用直接II型实现】 file-第12讲10.jpg
  • 优点: 数值稳定性好,是高阶IIR滤波器的首选实现方式。

4.4 并联型 (Parallel Form)
#

对 $H(z)$ 进行部分分式展开,表示为多个一阶或二阶节的和。 400

400

【示例】一个IIR系统的并联实现

  • 系统函数: $H(z) = \frac{0.44z^{-1}+...+0.02z^{-3}}{1+0.4z^{-1}+...+ -0.2z^{-3}}$
  • 部分分式展开: (如PPT P54所示) $H(z) = -0.1 + \frac{0.6}{1-0.4z^{-1}} + \frac{-0.5-0.2z^{-1}}{1+0.8z^{-1}+0.5z^{-2}}$
  • 结构图: 【图片:PPT P55中的并联I型和II型结构图】 file-第12讲11.jpg
  • 分析:
    • 系统由一个常数增益、一个一阶节和一个二阶节并联相加构成。
    • 每个支路独立计算,它们的量化误差不会相互影响,因此误差最小。

🔗 知识关联与应用
#

  • 承上启下:滤波器结构是连接"数学设计"与"物理实现"的桥梁。上一讲我们学习了如何通过零极点来分析系统,而级联和并联结构正是将这种"分解"思想付诸实践的具体方法。

  • 现实应用:

    1. 硬件实现 (FPGA/ASIC):在设计硬件滤波器时,结构的选择直接影响到芯片面积、功耗和最高运行时钟频率。
    2. 音频插件 (VST/AU):你在音乐制作软件中使用的均衡器(EQ)插件,其内部实现通常就是多个二阶IIR滤波器(直接II型)的级联或并联。
    3. 嵌入式系统:在资源受限的微控制器(MCU)上实现数字滤波时,必须选用计算量和存储量都最小的结构,直接II型(规范结构)因其最少的延迟单元而备受青睐。

🤔 引导式提问
#

  1. 为什么直接II型结构被称为"规范结构”?它相对于直接I型结构,在资源使用上到底节省了什么?
  2. 对于一个非常高阶(比如100阶)的IIR滤波器,为什么工程师几乎从不使用直接型结构,而总是倾向于使用级联型或并联型? (提示:思考"系数敏感度"和有限字长效应。)
  3. FIR滤波器的线性相位结构通过利用h\[n\]的对称性,减少了近一半的乘法器。请画出一个Type I, N=7的线性相位FIR滤波器结构,并数一数它需要多少个乘法器,而直接型需要多少个?

💡 本讲总结
#

我们从抽象的数学世界走向了具体的工程实现,核心要点如下: * 结构决定实现:同一个系统函数可以有多种实现结构,不同的结构在计算成本、存储需求和数值精度上表现迥异。 * FIR vs IIR:FIR稳定、易于实现线性相位但成本高;IIR高效但需关心稳定性和相位非线性。 * FIR结构:直接型最直观,但级联型因其鲁棒性和模块化而更受欢迎。线性相位结构是利用对称性优化计算的典范。 * IIR结构:直接II型是使用最少延迟单元的规范结构。对于高阶系统,级联型和并联型通过"分而治之"的思想,极大地改善了系统的数值稳定性,是实际工程中的首选。

DSP - 这篇文章属于一个选集。
§ 12: 本文

相关文章