课程笔记
第8章 数字滤波器结构
数字滤波器基本构件、DF-I、DF-II、级联、并联、线性相位 FIR 结构和资源估算。
2026年6月26日 · 8 分钟阅读 · 数字信号处理
第8章 数字滤波器结构
📌 考试定位:本章对应 2025 Q4 的 Direct Form II 结构图,也服务 2022 Q4(c) 和复习题中的 “fewest multipliers/adders/delayers”。核心能力是把 H(z) 或差分方程变成可实现结构,并估算资源。
0. 先用一句话抓住本章
滤波器结构就是把 H(z) 翻译成“延时器、乘法器、加法器”的计算流程;考试最常考的是:从差分方程画直接型,知道 Direct Form II 是 canonical structure,并利用 FIR 对称性减少乘法器。
题干出现这些关键词就翻本章:
- block diagram、signal flow graph;
- adder、multiplier、delay、z−1;
- Direct Form I / Direct Form II;
- canonical structure;
- cascade / parallel realization;
- second-order sections;
- fewest multipliers / adders / delayers;
- linear-phase FIR structure。
最常见错误:把 z−1 当代数倒数而不是延时;反馈项符号画反;DF-II 结构没有共用延时链;线性相位 FIR 没有先加/减再乘共享系数。
1. 30 秒公式速查
| 编号 | 公式 / 结论 | 名称 | 看到什么题干就用 |
|---|
| 8.1 | z−1 表示单位延时 | delay element | 框图读写 |
| 8.2 | H(z)=∑k=0Mbkz−k | FIR 直接型 | FIR structure |
| 8.3 | y[n]=∑k=0Mbkx[n−k] | FIR 差分方程 | FIR 结构 |
| 8.4 | H(z)=1+a1z−1+⋯+aNz−Nb0+⋯+bMz−M | IIR 标准型 | DF-I/DF-II |
| 8.5 | y[n]=∑k=0Mbkx[n−k]−∑k=1Naky[n−k] | IIR 差分方程 | 反馈符号 |
| 8.6 | DF-I 延时数约 M+N | Direct Form I | 前馈反馈分开 |
| 8.7 | DF-II 延时数 max(M,N) | canonical structure | 最少延时器 |
| 8.8 | 级联:H=∏iHi | cascade | 二阶节实现 |
| 8.9 | 并联:H=C+∑iHi | parallel | 部分分式实现 |
| 8.10 | 对称 FIR:h[n]=h[M−n] | 先相加再乘 | fewest multipliers |
| 8.11 | 反对称 FIR:h[n]=−h[M−n] | 先相减再乘 | linear phase structure |
| 8.12 | 奇数长度对称 FIR 乘法器数 ⌈N/2⌉ | 资源估算 | 最省乘法器 |
2. 5 分钟直觉
2.1 框图就是逐样本算法
数字滤波器框图不是装饰图。每条线表示一个中间变量;每个 z−1 表示“把这个变量延迟一个采样点”;每个乘法器表示乘一个常数系数;加法器就是求和。
比如
y[n]=x[n]+2x[n−1]+3x[n−2]
就需要一条输入延时链,产生 x[n]、x[n−1]、x[n−2],分别乘 1,2,3 后相加。
2.2 DF-I 和 DF-II 的区别
IIR 系统有前馈分子和反馈分母。Direct Form I 把两部分分开实现:一条输入延时链处理 bkx[n−k],一条输出延时链处理 aky[n−k]。
Direct Form II 把两条延时链合并成一条中间变量 w[n] 的延时链,因此延时器数量最少。它叫 canonical structure,意思是“用最少延时器实现该系统函数”。
2.3 反馈项符号为什么总写错
标准形式是
H(z)=1+a1z−1+⋯+aNz−Nb0+b1z−1+⋯+bMz−M.
这意味着
(1+a1z−1+⋯+aNz−N)Y(z)=(b0+⋯+bMz−M)X(z).
回到时域:
y[n]+a1y[n−1]+⋯+aNy[n−N]=k=0∑Mbkx[n−k].
所以移项后:
y[n]=k=0∑Mbkx[n−k]−k=1∑Naky[n−k].
也就是说,结构图中的反馈乘法器通常是 −ak。
2.4 线性相位 FIR 为什么能省乘法器
若 FIR 系数对称:
h[n]=h[M−n],
则两个对称项可以合并:
h[n]x[k−n]+h[M−n]x[k−(M−n)]=h[n]{x[k−n]+x[k−M+n]}.
原本两个乘法器,现在先把两个输入相加,再乘同一个系数,只需要一个乘法器。反对称时把加号换成减号。
3. 做题套路
套路 1:由 H(z) 写差分方程
输入: H(z)。
输出: 差分方程和结构系数。
对应真题: 2025 Q4、结构题。
-
化成标准形式:
H(z)=1+a1z−1+⋯+aNz−Nb0+b1z−1+⋯+bMz−M.
-
写:
(1+a1z−1+⋯+aNz−N)Y(z)=(b0+⋯+bMz−M)X(z).
-
变回时域:
y[n]=k=0∑Mbkx[n−k]−k=1∑Naky[n−k].
-
前馈系数是 bk;反馈支路系数是 −ak。
输入: 标准形式 H(z)。
输出: DF-II / canonical structure。
对应真题: 2025 Q4。
设
H(z)=A(z)B(z).
引入中间变量 w[n],让
W(z)=A(z)X(z),Y(z)=B(z)W(z).
时域:
w[n]=x[n]−k=1∑Nakw[n−k].
y[n]=k=0∑Mbkw[n−k].
画图步骤:
- 画一条 w[n] 的延时链,长度 max(M,N)。
- 输入 x[n] 加上反馈项 −akw[n−k],形成 w[n]。
- 从 w[n] 延时链抽头,乘 bk,相加得到 y[n]。
- 延时器数写 max(M,N),这是 canonical 的关键。
⚠️ 注意:DF-II 的反馈来自 w[n−k],不是直接从 y[n−k] 抽头。这是很多图画错的地方。
套路 3:级联结构
输入: H(z) 可因式分解为多个一阶/二阶因子。
输出: cascade realization。
对应真题/复习题: IIR 结构、二阶节。
-
因式分解:
H(z)=Gi∏Hi(z).
-
每个 Hi(z) 实现成一阶或二阶小节。
-
前一节输出接后一节输入。
-
对实系数系统,复共轭极点/零点要放在同一个二阶节。
优点:高阶 IIR 用二阶节更稳,系数量化误差更可控。
套路 4:并联结构
输入: 有理函数 H(z)。
输出: parallel realization。
对应真题/复习题: 部分分式结构。
-
做部分分式展开:
H(z)=C+i∑Hi(z).
-
每个 Hi(z) 实现成低阶滤波器。
-
所有支路共用输入,输出相加。
-
不要漏掉直接项 C。
级联是相乘,并联是相加。这是最重要的区分。
套路 5:最省资源 FIR 结构
输入: FIR 系数,通常线性相位。
输出: fewest multipliers / adders / delayers。
对应真题: 2022 Q4(c)、复习题设计小问。
- 判断系数是否对称或反对称。
- 对称:成对输入先相加;反对称:成对输入先相减。
- 再乘共享系数。
- 延时器数通常为 M=N−1。
- 乘法器数:
- 对称奇数长度:(N+1)/2;
- 对称偶数长度:N/2;
- 若乘以 1、0、-1 不计,可进一步减少。
4. 典型题精讲
例题 1:IIR 系统函数写差分方程
题目:
H(z)=1−0.7z−11+0.2z−1.
写出差分方程。
解答:
(1−0.7z−1)Y(z)=(1+0.2z−1)X(z).
时域:
y[n]−0.7y[n−1]=x[n]+0.2x[n−1].
所以
y[n]=0.7y[n−1]+x[n]+0.2x[n−1].
答案: 如上。
易错提醒: 因为分母是 1−0.7z−1,标准形式中的 a1=−0.7,反馈项 −a1y[n−1]=0.7y[n−1]。
例题 2:DF-II 中间变量
题目:
H(z)=1+a1z−1+a2z−2b0+b1z−1+b2z−2.
写出 DF-II 的中间变量方程。
解答: 令
W(z)=1+a1z−1+a2z−2X(z).
则
(1+a1z−1+a2z−2)W(z)=X(z).
时域:
w[n]=x[n]−a1w[n−1]−a2w[n−2].
输出:
y[n]=b0w[n]+b1w[n−1]+b2w[n−2].
答案: 如上。需要 2 个延时器。
例题 3:对称 FIR 省乘法器
题目:
h=[1,3,4,3,1].
写出最省乘法器结构的输出表达式。
解答: 直接形式:
y[n]=x[n]+3x[n−1]+4x[n−2]+3x[n−3]+x[n−4].
利用对称性:
y[n]=1{x[n]+x[n−4]}+3{x[n−1]+x[n−3]}+4x[n−2].
若乘以 1 不计乘法器,则需要 2 个非平凡乘法器;若所有系数计入,则需要 3 个乘法器。
易错提醒: 先相加再乘,才能省乘法器。
例题 4:级联与并联区别
题目: H1(z) 和 H2(z) 级联、并联时总系统函数分别是什么?
解答:
级联:输出依次通过两个系统,频域相乘:
Hcas(z)=H1(z)H2(z).
并联:两个系统输出相加,频域相加:
Hpar(z)=H1(z)+H2(z).
答案: 级联相乘,并联相加。
5. 易错点表
| ❌ 错误做法 | ✅ 正确做法 | 来源 |
|---|
| 把 z−1 当成倒数 | z−1 是单位延时 | 框图题 |
| 反馈系数符号照抄分母 | 标准分母 1+a1z−1 对应反馈 −a1 | DF-I/DF-II |
| DF-II 画两条延时链 | DF-II 共用一条 w[n] 延时链 | 2025 Q4 |
| 级联结构写成相加 | 级联是系统函数相乘 | 结构题 |
| 并联结构漏掉常数项 | 部分分式中的 C 要单独直通支路 | 并联题 |
| 线性相位 FIR 先乘再加 | 应先加/减对称输入,再乘共享系数 | fewest multipliers |
| 延时器数和乘法器数混淆 | 延时器看阶数,乘法器看非零系数/共享系数 | 资源估算 |
6. 本章 90 分检查清单
7. 自测题与答案
题目
- 框图中的 z−1 表示什么?
- H(z)=1+2z−1+3z−2 的差分方程是什么?
- H(z)=1/(1+0.5z−1) 的反馈项是什么符号?
- DF-II 为什么比 DF-I 更 canonical?
- H(z)=H1(z)H2(z) 是级联还是并联?
- 部分分式结构通常对应级联还是并联?
- 对称 FIR h=[2,5,5,2] 可写成什么省乘法表达式?
- 若 IIR 分母阶数 3、分子阶数 2,DF-II 通常需要几个延时器?
- 为什么高阶 IIR 常用二阶节级联?
- 反对称 FIR 合并输入时用加还是减?
答案
-
表示单位延时,一个采样周期的存储。
y[n]=x[n]+2x[n−1]+3x[n−2].
-
分母为 1+a1z−1,a1=0.5,所以差分方程为
y[n]=−0.5y[n−1]+x[n].
-
因为 DF-II 合并前馈和反馈延时链,使用最少延时器。
-
级联。
-
并联。
y[n]=2{x[n]+x[n−3]}+5{x[n−1]+x[n−2]}.
-
max(3,2)=3 个延时器。
-
二阶节能把复共轭极点/零点成对处理,数值稳定性和量化鲁棒性通常比高阶直接型好。
-
用减:成对输入先相减,再乘共享系数。
8. 学习路线
- 先熟悉基本构件:加法器、乘法器、延时器。
- 练 FIR 直接型,从 H(z) 写差分方程。
- 练 IIR 标准形式,特别是反馈符号。
- 学 DF-II 中间变量 w[n],这是 2025 结构题重点。
- 学级联/并联,区分相乘和相加。
- 最后练线性相位 FIR 的最省资源结构。
9. 和前后章节的关系
- 第6章 提供 H(z)、差分方程和零极点,本章把它们变成实现结构。
- 第7章 的线性相位 FIR 对称性在本章用于减少乘法器。
- 第9章 和 第10章 设计出滤波器后,最终都要回到本章选择结构实现。