ESC
输入关键词搜索文章
目录

IIR 数字滤波器的设计

第六讲
从技术指标到数字实现:模拟原型、时域不变法、双线性变换与频率变换
7主节
4模拟原型
3变换方法
7+典型例题
一、基本概念
数字滤波器的基本概念

前置知识回顾

本节讨论"如何设计一个满足给定指标的数字滤波器"。读之前需要手边有:

  • 模拟滤波器基础:知道幅度响应、截止频率、通带/阻带/过渡带的概念。
  • 系统函数与零极点:会写 $H(s)$$H(z)$,理解稳定性与极点位置的关系。
  • 滤波器结构:知道直接型、级联型、并联型的区别。可回看 数字滤波器基础与结构

什么是模拟滤波器?什么是 IIR 数字滤波器?

模拟滤波器是直接处理连续时间信号的滤波器。它的输入、输出都是随时间连续变化的电压、电流或声学信号,通常用电阻、电容、电感、运算放大器等模拟电路实现。

从数学上看,模拟滤波器通常用拉普拉斯域系统函数 $H_a(s)$ 描述;从功能上看,它和数字滤波器一样,也是保留某些频率、压制另一些频率。例如低通模拟滤波器会让低频成分通过,衰减高频噪声。

IIR 数字滤波器则是处理离散时间序列 $x[n]$ 的数字系统,它的冲激响应理论上无限长,因此叫 Infinite Impulse Response。IIR 的系统函数一般写成

$$H(z)=\frac{b_0+b_1z^{-1}+\cdots+b_Mz^{-M}}{1+a_1z^{-1}+\cdots+a_Nz^{-N}},$$

对应的差分方程含有输出反馈项:

$$y[n]=\sum_{k=0}^{M}b_kx[n-k]-\sum_{k=1}^{N}a_ky[n-k].$$

也正因为有反馈,IIR 滤波器能用较低阶数实现陡峭的幅频特性,但必须检查极点是否在单位圆内,才能保证因果稳定。

对比项模拟滤波器IIR 数字滤波器
处理对象连续时间信号 $x_a(t)$离散时间序列 $x[n]$
数学表示$H_a(s)$,定义在 $s$ 平面$H(z)$,定义在 $z$ 平面
实现方式模拟电路,如 RC、RLC、运放电路差分方程、程序或 DSP 芯片
稳定条件因果系统极点在 $s$ 平面左半平面因果系统极点在 $z$ 平面单位圆内
本章作用作为 Butterworth、Chebyshev 等成熟原型最终要实现的离散系统
一句话理解:IIR 设计里先学模拟滤波器,是因为经典模拟原型已经有成熟公式;我们先设计 $H_a(s)$,再通过 $s\to z$ 的映射得到数字滤波器 $H(z)$

为什么可以用模拟滤波器设计 IIR 数字滤波器?

关键原因是:模拟滤波器和 IIR 数字滤波器都可以用有理系统函数描述。模拟滤波器是 $H_a(s)$,IIR 数字滤波器是 $H(z)$;只要找到合适的映射,把 $s$ 平面的稳定区域、频率轴和系统函数关系转换到 $z$ 平面,就可以把成熟的模拟原型变成可实现的数字滤波器。

更具体地说,模拟设计已经解决了“怎样根据通带、阻带、波纹和衰减指标构造 Butterworth、Chebyshev、椭圆原型”的问题。IIR 设计借用这些原型,再处理两个转换问题:

  1. 频率指标转换:把数字频率 $\omega$ 和模拟频率 $\Omega$ 对齐,必要时做预畸变。
  2. 系统函数映射:把 $H_a(s)$ 变成 $H(z)$,同时尽量保持稳定性和目标幅频特性。
设计方法核心思想优点主要限制
冲激响应不变法$h[n]$ 对应 $h_a(t)$ 的采样时域意义直观,频率关系局部线性频谱周期复制会产生混叠
阶跃响应不变法令阶跃响应 $g[n]$ 对应 $g_a(t)$ 的采样保留阶跃响应采样点仍然受混叠限制
双线性变换法$s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}$ 做一一映射无混叠,稳定性保持频率轴非线性压缩,需要预畸变
频率变换法先设计低通原型,再变成高通、带通或带阻复用低通设计公式需要正确处理截止频率映射

数字滤波器的设计通常走一条"间接"路线:先在模拟域设计一个满足指标的原型滤波器,再通过某种变换把它映射到数字域。这是因为模拟滤波器(Butterworth、Chebyshev、椭圆)已有成熟的设计公式和表格,而数字域直接设计 IIR 滤波器则困难得多。第六讲的主线正是:先明确数字滤波器的技术指标,再学习三类模拟原型,最后用冲激响应不变法、阶跃响应不变法、双线性变换和频率变换得到目标数字滤波器。

数字滤波器如何分类?

从设计思想看,数字滤波器可以粗略分成两大类:

类别核心问题典型代表本节关系
经典滤波器按频率选择信号成分低通、高通、带通、带阻、全通本节重点讨论的选频 IIR 滤波器
现代滤波器按统计模型、状态估计或在线学习改善信号维纳滤波、卡尔曼滤波、自适应滤波通常不只看固定幅频指标

如果按功能分类,经典选频滤波器又可以分为低通、高通、带通、带阻和全通。前四类主要规定“哪些频率通过、哪些频率被压制”;全通的幅度响应恒为 1,主要用来调整相位。

数字滤波器的分类可以从两条线理解:一条是经典滤波器现代滤波器的区分,另一条是经典选频滤波器内部按功能分成低通、高通、带通、带阻和全通。前者回答“滤波问题的建模方式是什么”,后者回答“频率轴上要保留或压制哪些成分”。

PDF数字滤波器分类:经典/现代与按功能分类 · p.4–5p.4–5
正在渲染 PDF 第 4 页…
正在渲染 PDF 第 5 页…
数字滤波器分类:经典/现代与按功能分类(PDF p.4–5) · 打开原文

因此,本讲的 IIR 设计主要处理经典选频滤波器,而不是维纳、卡尔曼或自适应滤波这类现代滤波问题。

什么是选频滤波器?

选频滤波器是一类按频率选择信号成分的滤波器:它让指定频带内的频率成分尽量通过,同时把其他频带内的频率成分尽量衰减。低通、高通、带通、带阻都属于选频滤波器;全通滤波器虽然幅度恒为 1,但也常放在滤波器分类中,用来改变相位而不改变幅度。

因此,选频滤波器设计的核心不是“让所有频率都好看”,而是把频率轴划分成通带阻带过渡带,再用容限规定每一段允许的误差。

选频数字滤波器的技术指标

选频滤波器的频率响应可写成

$$H(e^{j\omega})=|H(e^{j\omega})|e^{j\phi(\omega)}.$$

这里 $|H(e^{j\omega})|$幅度响应,也叫幅频特性,表示输入中频率为 $\omega$ 的正弦或复指数分量通过滤波器后会被放大或衰减多少倍。例如低通滤波器希望低频处 $|H(e^{j\omega})|\approx 1$,高频处 $|H(e^{j\omega})|\approx 0$$\phi(\omega)$相位响应,反映各频率成分通过滤波器后的相位移动或时间延迟。工程指标通常用通带截止频率、阻带截止频率、通带容限和阻带容限来规定滤波器。

频率响应、幅频特性和相频特性应当放在一起理解:$H(e^{j\omega})$ 是“每个频率分量通过系统后的复数增益”,模长对应幅度变化,辐角对应相位移动。

PDF频率响应:幅度响应与相位响应p.9
正在渲染 PDF 第 9 页…
频率响应:幅度响应与相位响应(PDF 第 9 页) · 打开原文

因此,后面讲通带、阻带和滤波器指标时,默认关注的是幅度响应;而最小相位系统、全通系统和相位均衡,则是在讨论相位响应。

符号含义在设计中的作用
$\omega_p$ / $\Omega_p$通带截止频率规定应该尽量通过的频率边界
$\omega_s$ / $\Omega_s$阻带截止频率规定必须充分衰减的频率边界
$\delta_1$$\alpha_p$通带容限 / 通带最大衰减控制通带内允许的波纹或衰减
$\delta_2$$\alpha_s$阻带容限 / 阻带最小衰减控制阻带中残留频率成分的上限

通带、过渡带和阻带是在频率轴上划出的三个区域。通带不是“完全等于 1”,阻带也不是“完全等于 0”,二者都允许一定误差;过渡带则是不强行规定指标的连接区域。

PDF技术指标中的通带、过渡带与阻带p.10
正在渲染 PDF 第 10 页…
技术指标中的通带、过渡带与阻带(PDF 第 10 页) · 打开原文

这正是上表里 $\omega_p$$\omega_s$$\delta_1$$\delta_2$ 的作用:它们把“想要一个低通/高通”变成可计算的设计约束。

IIR vs FIR 设计对比

特性IIRFIR
阶数低(同样指标)高(通常 5~10 倍)
相位非线性可严格线性
稳定性需检验极点总是稳定
设计方法模拟原型 + 变换窗函数 / 频率抽样 / 优化
典型应用音频均衡、通信信道线性相位系统、图像处理
flowchart LR
    A["数字滤波器指标"] --> B["模拟低通原型"]
    B --> C{"目标类型"}
    C -->|"低通"| D["模拟到数字映射"]
    C -->|"高通 / 带通 / 带阻"| E["频率变换"]
    E --> D
    D --> F["数字系统函数 H(z)"]
    F --> G["结构实现与指标验证"]
  
二、相位系统
最小与最大相位延时系统、最小与最大相位超前系统

频率选择滤波器首先看幅度响应,但系统函数的零点位置还会决定相位延时或相位超前。若两个系统有相同的幅度响应,它们的零点可以关于单位圆成镜像关系;零点放在单位圆内还是单位圆外,会改变相位,却不改变幅度包络。这就是最小相位、最大相位以及相位超前/延时系统要解决的问题。

因果稳定系统与逆因果稳定系统

对有理系统函数 $H(z)$,若系统因果稳定,则它的收敛域在最外极点之外并包含单位圆;等价地,所有极点都在单位圆内。若系统的逆系统 $1/H(z)$ 也要因果稳定,则 $1/H(z)$ 的极点,也就是 $H(z)$ 的零点,也必须在单位圆内。

系统稳定要求对零极点的含义
因果稳定系统 $H(z)$极点在单位圆内输出不会因反馈发散
逆因果稳定系统 $1/H(z)$$H(z)$ 的零点也在单位圆内可以稳定地反滤波或均衡
非最小相位系统极点可稳定,但存在单位圆外零点原系统稳定,逆系统会不稳定

四类相位系统怎么区分?

在具有相同幅度响应的系统族中,零点相对单位圆的位置决定相位延时或相位超前的极端情况:

名称零点位置相位特征直观理解
最小相位延时系统全部零点在单位圆内相位延时最小在同幅度响应系统中“最靠前”
最大相位延时系统零点尽量镜像到单位圆外相位延时最大同幅度响应下延时最重
最小相位超前系统按逆系统或反向时间系统讨论相位超前最小超前效果最弱
最大相位超前系统与最大延时情形互为反向视角相位超前最大超前效果最强

课程里最常用的是最小相位延时系统:它同时要求因果稳定和逆因果稳定,因此所有零点、极点都在单位圆内。

2.1 最小相位延时系统的性质

因果稳定的 LTI 系统,若所有零点和极点都在单位圆内,则称为最小相位延时系统,通常也简称最小相位系统。它的特点是:

  • 幅频响应相同时,相移最小。
  • 能量集中在最前面(最小能量延迟)。
  • 逆系统也是因果稳定的(所有零极点在单位圆内)。

最小相位系统的核心是零点位置:零点在单位圆内外移动时,系统相位延时会改变;把零点镜像到单位圆内,可以在保持幅度响应的同时降低相位延时。

PDF最小相位系统:零点位置与相位延时p.20
正在渲染 PDF 第 20 页…
最小相位系统:零点位置与相位延时(PDF 第 20 页) · 打开原文

因此本节的主线是:因果稳定看极点,逆因果稳定看零点;最小相位延时系统则同时把极点和零点都约束在单位圆内。

三、全通系统
幅度不变,只重排相位与零极点

3.1 全通系统的定义

全通系统的幅度响应恒为 1,即 $|H(e^{j\omega})|=1$ 对所有 $\omega$ 成立。

一阶全通系统函数

$$H_{ap}(z)=\frac{z^{-1}-a}{1-az^{-1}},\qquad |a|<1.$$

零点在 $z=1/a$(单位圆外),极点在 $z=a$(单位圆内),两者关于单位圆呈镜像共轭关系。一般地,若 $z_0$ 是零点,则 $1/z_0^*$ 是极点。

为什么它的幅度响应恒为 1?

在单位圆上令 $z=e^{j\omega}$,则

$$H_{ap}(e^{j\omega})=\frac{e^{-j\omega}-a}{1-ae^{-j\omega}}.$$

$a$ 为实数,则分子模长的平方为

$$|e^{-j\omega}-a|^2=(e^{-j\omega}-a)(e^{j\omega}-a)=1-2a\cos\omega+a^2,$$

分母模长的平方为

$$|1-ae^{-j\omega}|^2=(1-ae^{-j\omega})(1-ae^{j\omega})=1-2a\cos\omega+a^2.$$

两者相等,因此

$$|H_{ap}(e^{j\omega})|=\frac{|e^{-j\omega}-a|}{|1-ae^{-j\omega}|}=1.$$
结论:一阶全通系统不改变任何频率成分的幅度,只改变相位;这也是“全通”这个名字的含义。

对于实系数全通系统,高阶形式为

$$H_{ap}(z)=\prod_{k=1}^{N_r}\frac{z^{-1}-a_k}{1-a_kz^{-1}}\cdot\prod_{k=1}^{N_c}\frac{(z^{-1}-b_k)(z^{-1}-b_k^*)}{(1-b_kz^{-1})(1-b_k^*z^{-1})}.$$

全通系统的核心应用:

  • 相位均衡:级联全通系统可以调整相位响应而不改变幅度。
  • 稳定性补偿:一个不稳定的因果系统可以通过级联全通系统,将单位圆外的极点"镜像"回单位圆内,变成稳定的因果系统。
  • 最小相位分解:任何因果稳定系统可以分解为最小相位系统与全通系统的级联。
一句话理解:最小相位系统把"相位代价"降到最低;全通系统只调相位不改幅度。两者配合可以灵活控制滤波器的相位特性。

全通系统需要抓住三件事:第一,幅度响应恒为 1;第二,一阶实系数全通系统的零点和极点以单位圆为镜像;第三,复系数情形要成共轭对出现,才能得到实系数系统。

PDF全通系统:幅度恒为 1 与零极点镜像关系 · p.24–26p.24–26
正在渲染 PDF 第 24 页…
正在渲染 PDF 第 25 页…
正在渲染 PDF 第 26 页…
全通系统:幅度恒为 1 与零极点镜像关系(PDF p.24–26) · 打开原文

全通系统的应用可以按两条线理解:一是利用全通系统做相位均衡,在不改变幅度响应的前提下修正相位;二是利用零极点镜像关系,把单位圆外的零点或极点搬回单位圆内,从而得到稳定、可逆或最小相位的等幅系统。

PDF全通系统的应用:相位均衡、稳定补偿与最小相位分解 · p.27–31p.27–31
正在渲染 PDF 第 27 页…
正在渲染 PDF 第 28 页…
正在渲染 PDF 第 29 页…
正在渲染 PDF 第 30 页…
正在渲染 PDF 第 31 页…
全通系统的应用:相位均衡、稳定补偿与最小相位分解(PDF p.27–31) · 打开原文

所以,全通系统不是为了改变选频幅度,而是在保持幅度不变的前提下重排相位与零极点位置,并把这种性质用于相位均衡、稳定补偿和最小相位分解。

为什么这里要先讲全通系统?除了相位均衡、稳定补偿、最小相位分解这三类直接应用,全通系统更是后面 6.2 数字频率变换的数学引擎。把一个数字低通 $H_L(z)$ 变成高通/带通/带阻时,做法是把其中的 $z^{-1}$ 替换成一个全通函数 $G(Z^{-1})$;之所以非全通函数不可,正是因为它的两个性质恰好对应频带变换的两个需求——“幅度恒为 1”保证替换后通带/阻带的形状(波纹、衰减特性)原封不动,“相位随频率变化”则负责把单位圆上的频率点重新映射、搬移频带位置。换句话说,没有全通系统就没有数字频带变换法,本章把它放在前面正是为第七章的频带变换法铺垫基础,读到 6.2 时可回看此处。
四、IIR 数字滤波器结构
IIR 数字滤波器的基本结构

前两节我们讨论了 IIR 的相位性质和全通系统,但还没回答一个工程问题:拿到一个 $H(z)$ 后,如何把它画成信号流图,再落地成差分方程、Python 代码或硬件乘法器?这一节补上这一步。结构选择之所以重要,是因为它直接影响存储开销、系数量化敏感度和内部状态动态范围——拿到同一个 $H(z)$ 后,选择直接型、级联型还是并联型,得到的实现是截然不同的。

4.1 IIR 递归结构的特点

IIR(Infinite Impulse Response)滤波器的特点是:单位冲激响应 $h(n)$ 无限长;$H(z)$ 在有限 $z$ 平面上有极点;结构上存在输出到输入的反馈,是递归型的。

递归结构带来两个直接后果。第一,IIR 可以用较低阶数得到很陡的过渡带,因此同样指标下通常比 FIR 更省乘法器;第二,极点位置决定稳定性,只要极点受量化影响跑到单位圆外,系统就会失稳。所以 IIR 结构设计最关心的是极点控制、系数量化敏感度和内部状态动态范围。

4.2 为什么同一个 IIR 要有多种结构

一个系统函数 $H(z)$ 只规定了输入和输出之间的关系,并没有规定中间变量怎么存、乘法器怎么排、反馈支路怎么组织。直接 I 型、直接 II 型、级联型、并联型本质上是同一个 $H(z)$ 的不同"施工方案"。

四种 IIR 结构分别解决什么问题

结构它从什么想法出发主要解决的问题什么时候用
直接 I 型按差分方程原样连接让公式和结构一一对应,便于学习和手算低阶例题、概念说明、原型验证
直接 II 型把零点网络和极点网络的延迟链合并减少存储单元,得到最少延迟结构存储紧张、阶数较低、浮点实现
级联型把高阶系统拆成多个一阶/二阶节串联降低系数量化敏感度,局部控制零极点实际 IIR 实现最常用,尤其是 Biquad 级联
并联型把系统拆成多个一阶/二阶支路相加缩短误差传播路径,提高并行计算能力并行硬件、模态分析、部分分式形式自然的系统
一句话理解:直接 I 型最像公式,直接 II 型最省存储,级联型最适合工程调试和定点实现,并联型最适合并行计算和降低误差串行传播。
graph TD
  A["拿到同一个 H(z)"] --> B{"目标是什么?"}
  B -->|"先看懂公式怎么实现"| C["直接 I 型"]
  B -->|"尽量少用延迟/存储"| D["直接 II 型"]
  B -->|"高阶 IIR 要稳定可靠"| E["级联型二阶节"]
  B -->|"硬件能并行、多支路同时算"| F["并联型"]
  C --> G["学习、手算、低阶原型"]
  D --> H["存储省,但内部状态动态范围要小心"]
  E --> I["工程最常用:逐节控制零极点"]
  F --> J["误差不串行传递,适合并行架构"]

4.3 直接 I 型

按差分方程直接画出:先实现零点网络($M$ 个延迟+加权,对 $x$ 的横向抽头),再实现极点网络($N$ 个延迟+加权,对 $y$ 的反馈)。

直接 I 型结构

零点网络:$M$ 个延迟单元,$M+1$ 个乘法器。

极点网络:$N$ 个延迟单元,$N$ 个乘法器($a_0=1$ 不需乘)。

总延迟单元数:$M+N$

PDFIIR 直接 I 型结构流图p.15
正在渲染 PDF 第 15 页…
IIR 直接 I 型结构流图(PDF 第 15 页) · 打开原文

直接 I 型与系统函数公式的对应关系:分子多项式对应输入抽头网络,分母多项式对应输出反馈网络。因此直接 I 型不是凭空画出来的,而是把 $H(z)$ 的分子、分母分别按 $z^{-1}$ 延迟链展开。

PDF直接 I 型:系统函数与结构对应关系p.16
正在渲染 PDF 第 16 页…
直接 I 型:系统函数与结构对应关系(PDF 第 16 页) · 打开原文

PDFIIR 直接 I 型:系统函数与结构对应关系p.16
正在渲染 PDF 第 16 页…
IIR 直接 I 型:系统函数与结构对应关系(PDF 第 16 页) · 打开原文

直接 I 型的直观好处是"零点在前、极点在后",与差分方程一一对应,容易手画。缺点是延迟单元多,系数 $a_k,b_k$ 对极点/零点的控制不直观,且极点对系数变化非常敏感,容易出现不稳定或较大误差。

4.4 直接 II 型(正准型)

直接 I 型的零点网络和极点网络是级联的,可以把它们交换顺序。交换后,两个网络中间的延迟单元完全重合,合并后只需 $\max(M,N)$ 个延迟单元。直接 II 型可以理解成一条共享的状态链:先由反馈系数 $a_k$ 递推得到中间状态 $x'(n)$,再由前向系数 $b_k$ 从这些状态合成输出 $y(n)$

PDF直接 II 型(正准型)结构流图p.17
正在渲染 PDF 第 17 页…
直接 II 型(正准型)结构流图(PDF 第 17 页) · 打开原文

因此直接 II 型的核心不是"换一种画法",而是把原本分别服务于分子和分母的两组延迟记忆合并为同一组内部状态。若 $M=N$,直接 I 型需要 $2N$ 个延迟单元,直接 II 型只需要 $N$ 个;若 $M\ne N$,则需要 $\max(M,N)$ 个。它很省存储,所以也叫正准型(canonical form)。

直接 II 型(正准型 / Canonical Form)

$H(z)=H_1(z)\cdot H_2(z)$$H_1$(极点)和 $H_2$(零点)交换顺序,合并共用延迟链。

总延迟单元数:$\max(M,N)$(最少可能)。

总乘法器数:$M+N+1$(与直接 I 型相同)。

PDFIIR 直接 II 型(正准型)结构流图p.17
正在渲染 PDF 第 17 页…
IIR 直接 II 型(正准型)结构流图(PDF 第 17 页) · 打开原文
关键结论:直接 II 型与直接 I 型实现的是同一个 $H(z)$,但直接 II 型用了最少的延迟单元,因此也叫"正准型"。代价是内部状态 $x'(n)$ 同时承受递归反馈和前向抽头的影响,动态范围可能比输入/输出大;在定点实现中,直接 II 型虽然省延迟,却不一定最稳健。高阶 IIR 通常进一步拆成级联型或并联型。

4.5 级联型

先把 $H(z)$ 的分子分母分别因式分解为零点和极点:

$$H(z)=A\,\frac{\prod_{k=1}^{M_1}(1-g_k z^{-1})\prod_{k=1}^{M_2}(1-h_k z^{-1})(1-h_k^* z^{-1})}{\prod_{k=1}^{N_1}(1-c_k z^{-1})\prod_{k=1}^{N_2}(1-d_k z^{-1})(1-d_k^* z^{-1})}.$$

其中 $g_k$ 为实零点,$h_k$ 为复零点,$c_k$ 为实极点,$d_k$ 为复极点;$M=M_1+2M_2$,$N=N_1+2N_2$。再把共轭对组合成实系数二阶因子:

$$H(z)=A\prod_{k=1}^{K}\frac{1+\beta_{1k}z^{-1}+\beta_{2k}z^{-2}}{1-\alpha_{1k}z^{-1}-\alpha_{2k}z^{-2}},\qquad K=\left\lceil\frac{N}{2}\right\rceil.$$
PDFIIR 级联型结构(二阶节串联)p.20
正在渲染 PDF 第 20 页…
IIR 级联型结构(二阶节串联)(PDF 第 20 页) · 打开原文

级联型的信号流图法:每个一阶或二阶小节先单独画成信号流图,再按系统函数乘积的顺序首尾相接。这样读图时不需要一次面对完整高阶多项式,而是逐节检查每个子系统的零点、极点和延迟链。

PDF级联型信号流图构造p.23
正在渲染 PDF 第 23 页…
级联型信号流图构造(PDF 第 23 页) · 打开原文

PDFIIR 级联型:信号流图法p.23
正在渲染 PDF 第 23 页…
IIR 级联型:信号流图法(PDF 第 23 页) · 打开原文

级联型最关键的工程理解:当 $M=N=4$ 时,系统可拆成 2 个二阶节;当 $M=N=6$ 时,可拆成 3 个二阶节。每一节都有自己的 $\beta_{1k},\beta_{2k}$$\alpha_{1k},\alpha_{2k}$,所以调节第 $k$ 节时,主要影响第 $k$ 对零点和第 $k$ 对极点,而不是一次牵动整个高阶多项式。

PDF级联型二阶节分解(M=N=4)p.24
正在渲染 PDF 第 24 页…
级联型二阶节分解(M=N=4)(PDF 第 24 页) · 打开原文
PDF级联型二阶节分解(M=N=6)p.25
正在渲染 PDF 第 25 页…
级联型二阶节分解(M=N=6)(PDF 第 25 页) · 打开原文

PDFIIR 级联型:二阶节展开与结构特点 · p.24–25p.24–25
正在渲染 PDF 第 24 页…
正在渲染 PDF 第 25 页…
IIR 级联型:二阶节展开与结构特点(PDF p.24–25) · 打开原文

级联型把高阶滤波器拆成若干个一阶/二阶小系统串联。每个二阶节(Biquad)只用 2 个延迟单元,负责一对共轭零点和一对共轭极点;整体 $H(z)$ 等于各节系统函数的乘积。这样:

PDF级联型系统函数与流图p.20
正在渲染 PDF 第 20 页…
级联型系统函数与流图(PDF 第 20 页) · 打开原文

  • $\beta_{1k},\beta_{2k}$ 主要决定第 $k$ 节的零点位置,常用来塑造通带、阻带或陷波位置。
  • $\alpha_{1k},\alpha_{2k}$ 决定第 $k$ 节的极点位置,直接影响峰值、带宽和稳定性。
  • 每节只处理低阶多项式,系数量化误差不会一次性作用在高阶多项式上,数值灵敏度通常低于直接型。
  • 实际实现时还可以调整二阶节顺序和每节增益分配,避免某一节内部信号过大而溢出。
注意:若实零点/实极点个数为奇数,则对应二阶节中有一个系数为零(退化为一阶节)。通常 $M=N$ 时共有 $\lceil(N+1)/2\rceil$ 个二阶节。

4.6 并联型

$H(z)$ 做部分分式展开:

$$H(z)=\sum_{k=0}^{M-N}G_k z^{-k}+\sum_{k=1}^{N_1}\frac{A_k}{1-c_k z^{-1}}+\sum_{k=1}^{N_2}\frac{\gamma_{0k}+\gamma_{1k}z^{-1}}{1-\alpha_{1k}z^{-1}-\alpha_{2k}z^{-2}}.$$
PDFIIR 并联型结构(多支路并行)p.27
正在渲染 PDF 第 27 页…
IIR 并联型结构(多支路并行)(PDF 第 27 页) · 打开原文

并联型的具体演示:先把系统函数展开成若干个简单支路,每条支路独立实现一个一阶或二阶子系统,最后在输出端求和。这个例子适合对照部分分式展开步骤,理解"相加的系统函数"如何变成"并行的结构图"。

PDF并联型结构流图演示p.30
正在渲染 PDF 第 30 页…
并联型结构流图演示(PDF 第 30 页) · 打开原文

PDFIIR 并联型:部分分式到并行支路演示p.30
正在渲染 PDF 第 30 页…
IIR 并联型:部分分式到并行支路演示(PDF 第 30 页) · 打开原文

并联型通过部分分式展开得到:把一个高阶有理函数拆成若干个一阶/二阶子系统的和。输入 $x(n)$ 同时送入所有支路,各支路分别产生一个分量响应,最后把这些输出相加得到 $y(n)$

PDF并联型的部分分式展开p.27
正在渲染 PDF 第 27 页…
并联型的部分分式展开(PDF 第 27 页) · 打开原文

$M<N$ 时不含 $G_k$ 项;当 $M\ge N$ 时需要先做长除法,前面的 $G_k z^{-k}$ 是直接前馈项;当 $N$ 为奇数时通常会有一个一阶节。并联型的特点是:

  • 各并联支路互相独立,某一支路的舍入误差不会继续传入下一节,误差传播路径短
  • 多个支路可以同时计算,再在末端相加,适合 FPGA、SIMD 或多乘法器 DSP 这类并行硬件。
  • 每个分母因子对应一组极点,所以可以较清楚地观察每组极点贡献的模态响应。
  • 零点不是由某个单独支路直接控制,而是所有支路相加后整体形成,因此不如级联型那样便于单独调整零点

4.8 转置定理

转置定理(Transposition Theorem)

将网络中所有支路方向反转,输入输出交换位置,系统函数 $H(z)$ 不变。转置后的直接 I 型等价于直接 II 型的"转置型",延迟单元数不变。

结构延迟单元核心优点核心缺点
直接 I 型$M+N$直观,与差分方程对应延迟多,系数敏感
直接 II 型$\max(M,N)$最少延迟,正准型系数仍敏感
级联型$N$零极点独立可调需因式分解
并联型较多误差最小,可并行不能调零点
PDF数字滤波器结构的表示方法p.2
正在渲染 PDF 第 2 页…
数字滤波器结构的表示方法(PDF 第 2 页) · 打开原文
PDFIIR 直接 I 型与直接 II 型p.10
正在渲染 PDF 第 10 页…
IIR 直接 I 型与直接 II 型(PDF 第 10 页) · 打开原文
PDF级联型与并联型结构p.20
正在渲染 PDF 第 20 页…
级联型与并联型结构(PDF 第 20 页) · 打开原文

至此,IIR 的两类底层性质——相位(第二章)和全通(第三章)——以及"给定 $H(z)$ 怎么实现成电路/代码"都已交代清楚。接下来的问题变成:已知滤波指标,如何反推出一个满足要求的 $H(z)$?这正是后面第五章 IIR 设计方法的主题。

四、例题
IIR 数字滤波器结构例题

例题:三阶 IIR 直接 II 型实现

给定系统函数:

$$H(z)=\frac{8-4z^{-1}+11z^{-2}-2z^{-3}}{1-\frac{5}{4}z^{-1}+\frac{3}{4}z^{-2}-\frac{1}{8}z^{-3}}$$

对应的差分方程:

$$y(n)=8x(n)-4x(n-1)+11x(n-2)-2x(n-3)+\frac{5}{4}y(n-1)-\frac{3}{4}y(n-2)+\frac{1}{8}y(n-3)$$

分析系数:$H(z)$ 读出前向系数 $b_k=\{8,-4,11,-2\}$,反馈系数 $a_k=\{-\frac{5}{4},\frac{3}{4},-\frac{1}{8}\}$(注意符号:差分方程中反馈项系数是分母系数的相反数)。

直接 II 型实现:$H(z)$ 拆成 $H_1(z)\cdot H_2(z)$,其中 $H_1(z)$ 实现零点(前向支路),$H_2(z)$ 实现极点(反馈支路)。两者共享同一条延时链,只需 $\max(3,3)=3$$z^{-1}$ 延时单元:

  • 反馈部分 $H_2(z)$:中间状态 $w(n)$ 由输入和反馈递推:
    $$w(n)=x(n)+\tfrac{5}{4}w(n-1)-\tfrac{3}{4}w(n-2)+\tfrac{1}{8}w(n-3)$$

    三个延时器分别存储 $w(n-1),w(n-2),w(n-3)$

  • 前向部分 $H_1(z)$:输出 $y(n)$ 从共享状态链抽头加权求和:
    $$y(n)=8w(n)-4w(n-1)+11w(n-2)-2w(n-3)$$
参数含义
阶数 $N$3分子分母均为三次
前向系数 $b_k$$\{8,-4,11,-2\}$零点位置
反馈系数 $-a_k$$\{\frac{5}{4},-\frac{3}{4},\frac{1}{8}\}$极点位置(符号取反)
延时单元3 个 $z^{-1}$直接 II 型正准型,$\max(M,N)=3$
乘法器$4+3=7$$b_0$$b_3$$-a_1$$-a_3$
三阶 IIR 直接 II 型结构:传递函数、差分方程与信号流图
三阶 IIR 滤波器:$H(z)$ 传递函数 → 差分方程 → 直接 II 型($H_1$ 零点部分 + $H_2$ 极点部分共享延时链)

如上图所示,$H_1(z)$(零点部分)在左侧:输入 $x(n)$ 从左进入,经反馈递推得到中间状态,再通过 $b_0,b_1,b_2,b_3$ 四条前向支路加权求和输出 $y(n)$$H_2(z)$(极点部分)在右侧:输出端的 $y(n)$$z^{-1}$ 延时后分别乘 $-a_1,-a_2$ 反馈回加法节点。两条链共享同一组延时器,这就是直接 II 型比直接 I 型节省存储的核心。

易错点:差分方程中反馈项的系数符号与 $H(z)$ 分母系数相反$H(z)$ 分母是 $1-\frac{5}{4}z^{-1}+\frac{3}{4}z^{-2}-\frac{1}{8}z^{-3}$,而差分方程中对应 $+\frac{5}{4}y(n-1)-\frac{3}{4}y(n-2)+\frac{1}{8}y(n-3)$。画信号流图时,支路上标的 $-a_1=\frac{5}{4}$,即 $a_1=-\frac{5}{4}$,这就是符号翻转的来源。

Python 实现与仿真结果

用 Python 直接实现上述差分方程,对 100 个采样点的输入信号进行滤波:

x_1, x_2, x_3, y_1, y_2, y_3 = 0, 0, 0, 0, 0, 0

def filter(x):
    global x_1, x_2, x_3, y_1, y_2, y_3
    y = (8*x - 4*x_1 + 11*x_2 - 2*x_3
         + 1.25*y_1 - 0.75*y_2 + 0.125*y_3)
    x_3 = x_2; x_2 = x_1; x_1 = x
    y_3 = y_2; y_2 = y_1; y_1 = y
    return y

for i in range(100):
    y3[i] = filter(y[i])
三阶 IIR 滤波器 Python 实现:代码与输入/输出波形对比
左:差分方程的 Python 实现(全局状态变量保存历史样本);右上:原始输入信号(幅值范围 95~125);右下:滤波器输出(初始瞬态尖峰达 ~4900,振铃衰减缓慢)

从仿真结果可以观察到两个典型现象:

  • 初始瞬态过冲:输出在 $n\approx 5$ 处飙升至 ~4900,远超输入信号的幅值范围(95~125)。这是因为滤波器启动时所有状态变量初始化为零(零初始条件),前几个采样点的反馈还未建立,前向系数 $b_0=8$ 的放大效应直接作用在输入上。
  • 持续振铃:过冲之后输出并未迅速收敛,而是在 3500~4500 之间缓慢振荡。这说明分母的极点虽然最终使系统稳定(极点在单位圆内),但靠近单位圆的极点导致了缓慢衰减的振铃。输出量级(~1000~5000)比输入(~100)放大了约一个数量级,对应前向增益 $\sum|b_k|=8+4+11+2=25$ 的累积效果。
工程启示:直接型实现高阶 IIR 时,零初始条件会导致大幅瞬态过冲。实际应用中通常需要(1)预热滤波器(pre-fill 状态),或(2)拆成级联二阶节逐节处理以控制动态范围。这正是前面说的"直接 II 型虽然省延迟,却不一定最稳健"的数值体现。

例题:用四种结构实现给定 IIR 滤波器

题目:设 IIR 数字滤波器差分方程为

$$y(n)=x(n)+\tfrac{1}{4}x(n-1)+\tfrac{5}{4}y(n-1)-\tfrac{3}{8}y(n-2),$$

试用直接 I 型、直接 II 型、级联型、并联型四种结构实现。

解:

步骤 1:写系统函数

$$H(z)=\frac{1+\tfrac{1}{4}z^{-1}}{1-\tfrac{5}{4}z^{-1}+\tfrac{3}{8}z^{-2}}.$$

步骤 2:直接 I 型

直接 I 型按原差分方程拆成两条延迟链:一条输入抽头链计算 $x(n)$$x(n-1)$ 的前向部分,另一条输出反馈链计算 $y(n-1)$$y(n-2)$ 的反馈部分。这个例子中分子一阶、分母二阶,因此需要 $1+2=3$ 个延迟单元。

$$y(n)=\underbrace{x(n)+\tfrac{1}{4}x(n-1)}_{\text{输入抽头链}} +\underbrace{\tfrac{5}{4}y(n-1)-\tfrac{3}{8}y(n-2)}_{\text{输出反馈链}}.$$
链路 需要保存的状态 参与求和的项 延迟单元数
输入抽头链 $x(n-1)$ $x(n)$$\tfrac{1}{4}x(n-1)$ 1
输出反馈链 $y(n-1), y(n-2)$ $\tfrac{5}{4}y(n-1)$$-\tfrac{3}{8}y(n-2)$ 2

直接 I 型的实现顺序可以写成:先从输入链得到 $x(n)$$x(n-1)$ 的加权和,再从输出历史中取出两项反馈量,最后把四项相加得到 $y(n)$。它的优点是结构直观,缺点是延迟单元没有共享。

步骤 3:直接 II 型

直接 II 型把分母递归部分和分子前向部分串接,并把两条延迟链合并为一条内部状态链。令内部状态为 $w(n)$:

$$w(n)=x(n)+\tfrac{5}{4}w(n-1)-\tfrac{3}{8}w(n-2), \qquad y(n)=w(n)+\tfrac{1}{4}w(n-1).$$
状态 含义 进入递归部分的系数 进入输出部分的系数
$w(n)$ 当前内部状态 主通路系数 1 主通路系数 1
$w(n-1)$ 一次延迟状态 $\tfrac{5}{4}$ $\tfrac{1}{4}$
$w(n-2)$ 二次延迟状态 $-\tfrac{3}{8}$ 0

直接 II 型只需要 2 个延迟单元。读它时不要再把输入延迟链和输出反馈链分开,而是盯住同一串状态 $w(n),w(n-1),w(n-2)$:递归方程负责生成 $w(n)$,输出方程负责从这些状态抽头得到 $y(n)$

步骤 4:级联型

因式分解:分子 $1+z^{-1}/4=(1+0.25z^{-1})$,分母 $1-1.25z^{-1}+0.375z^{-2}=(1-0.75z^{-1})(1-0.5z^{-1})$

$$H(z)=\frac{1+0.25z^{-1}}{1-0.75z^{-1}}\cdot\frac{1}{1-0.5z^{-1}}.$$
级联节 系统函数 递推关系 控制的零极点
第 1 节 $H_1(z)=\dfrac{1+0.25z^{-1}}{1-0.75z^{-1}}$ $v(n)=u(n)+0.25u(n-1)+0.75v(n-1)$ 零点 $-0.25$,极点 $0.75$
第 2 节 $H_2(z)=\dfrac{1}{1-0.5z^{-1}}$ $y(n)=v(n)+0.5y(n-1)$ 极点 $0.5$

级联型不强调"按原公式一口气算完",而是把系统拆成两个小滤波器串起来:$x(n)\to H_1(z)\to v(n)\to H_2(z)\to y(n)$。每个小节只控制一部分零极点,调试和定点实现都更稳。

步骤 5:并联型

部分分式展开:

$$H(z)=\frac{A}{1-0.75z^{-1}}+\frac{B}{1-0.5z^{-1}},$$

解得 $A=4,B=-3$。两支路并联,输入同时进入两个一阶节,输出相加:

$$H(z)=\frac{4}{1-0.75z^{-1}}-\frac{3}{1-0.5z^{-1}}.$$
并联支路 系统函数 递推关系 输出合成
上支路 $H_a(z)=\dfrac{4}{1-0.75z^{-1}}$ $y_a(n)=4x(n)+0.75y_a(n-1)$ $y(n)=y_a(n)+y_b(n)$
下支路 $H_b(z)=\dfrac{-3}{1-0.5z^{-1}}$ $y_b(n)=-3x(n)+0.5y_b(n-1)$

并联型的每条支路独立计算一个一阶系统的响应,最后相加。它牺牲了"零点单独可调"的直观性,但支路可以并行运行,误差也不会像级联那样从前一节继续传到后一节。

易错点:级联型和并联型都需要先对 $H(z)$ 做因式分解或部分分式展开,务必先化为 $z^{-1}$ 的有理分式标准形式(分母常数项为 1)。直接 I 型和直接 II 型的反馈符号来自分母移项后的差分方程:这里反馈项是 $+\tfrac{5}{4}$$-\tfrac{3}{8}$。直接 I 型需要 3 个延迟单元,直接 II 型通过共享内部状态链降为 2 个。
五、IIR 设计方法
用模拟滤波器设计 IIR 数字滤波器

这一节回答“为什么可以用模拟滤波器设计 IIR 数字滤波器,以及具体怎么做”。核心路线是:先根据数字指标换算出模拟指标,设计模拟低通原型 $H_a(s)$,再用冲激响应不变法、阶跃响应不变法或双线性变换得到数字系统函数 $H(z)$

有了模拟原型 $H_a(s)$,需要把它变成数字滤波器 $H(z)$。第六讲依次给出三条路线:冲激响应不变法保持冲激响应采样点,阶跃响应不变法保持阶跃响应采样点,双线性变换则用一一映射避免频谱混叠。

5.1 冲激响应不变法(Impulse Invariance)

冲激响应不变法的目标很直接:让数字滤波器在采样时刻的冲激响应,尽量复现模拟滤波器的冲激响应。也就是说,先在模拟域设计 $H_a(s)$,再把 $h_a(t)$$t=nT$ 处采样,得到数字滤波器的 $h(n)$

冲激响应不变法

令数字滤波器的单位冲激响应等于模拟滤波器冲激响应的采样:

$$h(n)=T\,h_a(nT),\qquad n=0,1,2,\ldots$$

其中 $T$ 为采样周期。于是

$$H(z)=\sum_{n=0}^{\infty}h(n)z^{-n}=T\sum_{n=0}^{\infty}h_a(nT)z^{-n}.$$

如果模拟系统中有一个极点 $s_k$,采样后对应的数字极点为

$$z_k=e^{s_kT}.$$

这就是冲激响应不变法最重要的极点映射关系。若 $s_k=\sigma_k+j\Omega_k$,则 $z_k=e^{\sigma_kT}e^{j\Omega_kT}$:模拟极点的实部决定数字极点半径,虚部决定数字极点角频率。

稳定性保持:如果模拟滤波器稳定,则所有极点满足 $\operatorname{Re}(s_k)<0$,因此 $|e^{s_kT}|=e^{\operatorname{Re}(s_k)T}<1$,映射后的数字滤波器极点仍在单位圆内。

$H_a(s)$ 只有单极点,部分分式展开为

$$H_a(s)=\sum_{k=1}^{N}\frac{A_k}{s-s_k},$$

对应的模拟冲激响应为 $h_a(t)=\sum_{k=1}^{N}A_k e^{s_kt}u(t)$。采样后

$$h(n)=T\sum_{k=1}^{N}A_k e^{s_knT},$$

再做 $z$ 变换,得到

$$H(z)=\sum_{k=1}^{N}\frac{T\,A_k}{1-e^{s_k T}z^{-1}}.$$

插一句:数字频率 $\omega$ 是什么,$\omega=2\pi f_c/f_s$ 从哪来

设计指标里反复出现的 $\omega$(如 $\omega_p=0.2\pi$)叫数字频率,它和模拟频率 $f_c$(Hz)、$\Omega=2\pi f_c$(rad/s)不是一回事。它由“采样”这个动作推出来:频率为 $f_c$ 的模拟正弦 $\cos(2\pi f_c t)$ 以采样率 $f_s$(采样周期 $T=1/f_s$)采样,得到序列

$$x(n)=\cos(2\pi f_c\cdot nT)=\cos\!\left(2\pi\frac{f_c}{f_s}\,n\right)=\cos(\omega n).$$

对照 $\cos(\omega n)$ 即得

$$\omega=2\pi\frac{f_c}{f_s}=\frac{2\pi f_c}{f_s}=\Omega T.$$

所以本质就是 $\omega=\Omega T$——模拟角频率乘采样周期。它有三个要点:(1)单位是 rad/sample(每个采样点转过的相位弧度),是个相对采样率的无量纲量;(2)因为 $n$ 是整数,$\omega$$2\pi$ 整数倍序列不变,故$2\pi$ 为周期,有效范围只看 $[0,\pi]$;(3)最高频是 $\omega=\pi$,对应 $f_c=f_s/2$(奈奎斯特频率)——这也是后面所有幅频响应图横轴画到 $\pi$(或 $\omega/\pi$ 到 1.0)就停的原因。直观读法:“信号频率占采样率的几分之几,再乘 $2\pi$”,例如 $f_c=1$ kHz、$f_s=10$ kHz 时 $\omega_c=0.2\pi$,正是下文例题里 $\omega_p=0.2\pi$ 的来历。

设计步骤

  1. 根据数字指标确定采样周期 $T$,并把数字频率换算为模拟频率:$\Omega=\omega/T$
  2. 设计满足模拟指标的模拟原型 $H_a(s)$
  3. $H_a(s)$ 做部分分式展开,写成若干一阶项或二阶共轭项。
  4. $z_k=e^{s_kT}$ 把每个模拟极点映射到数字极点。
  5. $H(z)=\sum_k \frac{T A_k}{1-e^{s_kT}z^{-1}}$ 合成数字系统函数。
关键问题:混叠。模拟频率 $\Omega$ 与数字频率 $\omega$ 的关系是 $\omega=\Omega T$。这个关系本身是线性的,但数字频率以 $2\pi$ 为周期,所以不同模拟频率可能折叠到同一个数字频率。

冲激响应不变法的频域关系

$$H(e^{j\omega})=\frac{1}{T}\sum_{k=-\infty}^{\infty}H_a\!\left(j\frac{\omega+2\pi k}{T}\right).$$

只有当 $H_a(j\Omega)$ 严格带限于 $|\Omega|<\pi/T$ 时,$k\ne 0$ 的项为零,才不发生混叠。实际中低通滤波器在阻带仍有残余,因此总有轻微混叠

因此冲激响应不变法适合低通、窄带带通这类模拟频谱主要集中在低频或有限频带内的场景;不适合高通和带阻,因为高频部分会被周期复制并折叠进低频,造成严重混叠。

维度冲激响应不变法的表现
时域保持采样点处的冲激响应形状
频率映射$\omega=\Omega T$,频率关系线性
稳定性$s$ 左半平面映射到 $z$ 单位圆内,稳定性保持
主要缺点频谱周期复制导致混叠
适用滤波器低通、窄带带通
不适用滤波器高通、带阻、频谱不带限的模拟原型

冲激响应不变法的频率映射关系要抓住一个矛盾:$\\Omega$$\\omega$ 的关系局部是线性的,但数字频率以 $2\pi$ 为周期,模拟频谱会被周期复制,这正是混叠来源。

PDF冲激响应不变法的频率映射p.35
正在渲染 PDF 第 35 页…
冲激响应不变法的频率映射(PDF 第 35 页) · 打开原文

所以这一路线的优点是时域直观、频率轴低频段容易理解;缺点是不能干净处理高通和带阻。课件用一个完整算例验证了这一点:图 6-24 给出用冲激响应不变法设计出的六阶 Butterworth 低通数字滤波器的频率响应,分幅度、增益(dB)、相位三幅图(横轴 $\omega$ 从 0 到 $\pi$)。可以看到通带在 $0.2\pi$ 附近平坦下降、阻带衰减单调加深,正是 Butterworth“通带最平坦”的特征;同时高频段并未抬起,说明此例频谱基本带限、混叠不严重——这页是把“冲激响应不变法 + Butterworth 原型”落到实际设计效果上不可或缺的一页。

PDF图 6-24:冲激响应不变法设计的六阶 Butterworth 低通数字滤波器频率响应p.73
正在渲染 PDF 第 73 页…
图 6-24:冲激响应不变法设计的六阶 Butterworth 低通数字滤波器频率响应(PDF 第 73 页) · 打开原文

5.2 阶跃响应不变法(Step Invariance)

冲激响应不变法是让 $h(n)$ 模仿 $h_a(t)$ 的采样。第六讲还给出一种平行思路:让数字系统的阶跃响应模仿模拟系统阶跃响应的采样。它适合从"系统对阶跃输入的累积响应"角度理解模拟到数字的映射。

阶跃响应不变法的构造

设模拟滤波器冲激响应为 $h_a(t)$,阶跃响应为

$$g_a(t)=u(t)*h_a(t),\qquad G_a(s)=\frac{1}{s}H_a(s).$$

数字滤波器中,阶跃输入的 $z$ 变换为 $z/(z-1)$,若 $g(n)=u(n)*h(n)$,则

$$G(z)=\frac{z}{z-1}H(z),\qquad H(z)=\frac{z-1}{z}G(z).$$

因此设计流程是:先由 $H_a(s)$ 得到 $G_a(s)$,反拉普拉斯变换得到 $g_a(t)$,采样成 $g(n)=g_a(nT)$,再做 $z$ 变换得到 $G(z)$,最后由 $H(z)=\frac{z-1}{z}G(z)$ 求数字滤波器。

和冲激响应不变法的区别:冲激响应不变法保采样点处的 $h_a(t)$;阶跃响应不变法保采样点处的 $g_a(t)$。两者都属于时域采样思想,也都会受到频谱周期延拓带来的混叠限制。

阶跃响应不变法的完整关系是:先从 $H_a(s)$ 得到 $G_a(s)$,再由采样后的 $G(z)$ 回到 $H(z)$。它比冲激响应不变法多了一个“先除以 $s$ 得到阶跃响应、最后再乘回 $(z-1)/z$”的步骤。

PDF阶跃响应不变法:由阶跃响应采样构造 H(z)p.45
正在渲染 PDF 第 45 页…
阶跃响应不变法:由阶跃响应采样构造 H(z)(PDF 第 45 页) · 打开原文

这样放置后,阶跃响应不变法的角色就很清楚:它仍是时域采样思想,只是采样对象从冲激响应换成了阶跃响应。

5.3 双线性变换法(Bilinear Transform)

双线性变换

用以下保角映射把 $s$ 平面左半平面一对一映射到 $z$ 平面单位圆内部:

$$s=\frac{2}{T}\,\frac{1-z^{-1}}{1+z^{-1}},\qquad z=\frac{1+sT/2}{1-sT/2}.$$

双线性变换的核心特性:

  • 无混叠$s$ 平面整个 $j\Omega$ 轴一对一映射到 $z$ 平面单位圆,没有频率重叠。
  • 频率畸变:模拟频率与数字频率的关系是非线性的:
    $$\Omega=\frac{2}{T}\tan\frac{\omega}{2},\qquad \omega=2\arctan\frac{\Omega T}{2}.$$
  • 稳定性保持$s$ 左半平面 $\to$ $z$ 单位圆内部,因果稳定的模拟滤波器一定映射为因果稳定的数字滤波器。

5.4 预畸变(Pre-warping)

由于双线性变换的频率畸变,若要求数字滤波器在 $\omega_c$ 处有截止频率,需要先把模拟原型的截止频率"预畸变"为

$$\Omega_c=\frac{2}{T}\tan\frac{\omega_c}{2}.$$

然后用 $\Omega_c$ 设计模拟滤波器,再做双线性变换,最终数字滤波器的截止频率就恰好落在 $\omega_c$

双线性变换的频率压缩:Ω = 2/T · tan(ω/2)JSXGraph
双线性变换的频率压缩:Ω = 2/T · tan(ω/2)
方法优点缺点适用
冲激响应不变线性频率关系混叠低通/带通(带限)
阶跃响应不变保持阶跃响应采样点混叠低通/带通(带限)
双线性变换无混叠,稳定保持频率畸变通用(需预畸变)
高通和带阻只能用双线性变换。冲激不变法和阶跃不变法都属于时域采样,频域上模拟频谱被周期延拓。高通/带阻的模拟原型在高频段有显著能量,这些高频分量折叠回低频后直接污染阻带,导致阻带衰减永远做不干净。只有双线性变换把整个 $\Omega$ 轴一一映射到 $[-\pi,\pi]$,不涉及采样,没有混叠,因此是设计高通和带阻的唯一选择。

双线性变换的关键优点是一一映射$s$ 平面的虚轴会映射到 $z$ 平面的单位圆,所以模拟频率不会像冲激响应不变法那样发生周期重叠,数字滤波器不会产生频率响应混叠。但这个一一映射不是线性的,而是

$$\Omega=c\tan\frac{\omega}{2}.$$

$\omega\to\pi$ 时,$\Omega\to\infty$,也就是说,整个模拟频率轴被压缩进有限的数字频率区间 $[-\pi,\pi]$。这种压缩不是均匀的:低频段近似线性,高频段被越来越强地拉伸。

非线性频率映射会带来一个直接后果:如果仍然按线性关系把模拟临界频率取成 $\Omega_1=\omega_1/T$,经过双线性变换后实际数字临界频率会变成

$$\omega=2\tan^{-1}\left(\frac{\Omega_1}{c}\right)\ne \omega_1.$$

因此模拟滤波器的分段常数幅频响应映射到数字域后,通带边界和阻带边界会偏离原本希望的位置。这里的“畸变”不是混叠,而是频率轴被非线性压缩导致的指标位置偏移。

幅频特性失真:线性映射 ω=ΩT vs 双线性映射 ω=2arctan(ΩT/2)
幅频特性失真:黑色直线 $\omega=\Omega T$ 超出 $\pi$(线性映射,存在混叠),红色曲线 $\omega=2\arctan(\Omega T/2)$ 始终在 $[-\pi,\pi]$ 内(双线性映射,无混叠但频率非线性)。低频段两者近似重合,高频段分歧越来越大。

预畸变就是这个问题的补救:既然双线性变换会把模拟频率 $\Omega$ 非线性映射成数字频率 $\omega$,设计前就先反向计算。给定希望数字滤波器落在 $\omega_1$ 的临界频率,先取

$$\Omega_1=c\tan\frac{\omega_1}{2},$$

再按这个 $\Omega_1$ 去设计模拟滤波器。这样经过双线性变换后,数字滤波器的临界频率就会落回目标 $\omega_1$。多边界滤波器也一样:通带边界、阻带边界都要分别做预畸变。

PDF双线性变换:频率非线性、幅频畸变与预畸变 · p.53–55p.53–55
正在渲染 PDF 第 53 页…
正在渲染 PDF 第 54 页…
正在渲染 PDF 第 55 页…
双线性变换:频率非线性、幅频畸变与预畸变(PDF p.53–55) · 打开原文
一句话:双线性变换解决的是“没有混叠”,代价是“频率非线性”;预畸变就是在模拟滤波器设计前预先把临界频率反向扭一下,让变换后的数字临界频率落回指定位置。

5.5 频率响应的几何表示法

双线性变换把模拟滤波器转化为数字滤波器后,$H(z)$ 的频率响应由零极点位置决定。理解这种关系最直观的方式是几何表示法:把单位圆上的点 $B=e^{j\omega}$ 看作一个沿圆周移动的“探针”,$|H(e^{j\omega})|$ 的大小就由零点和极点到 $B$ 的距离之比决定。

幅度响应的几何表示

$H(z)$ 的零点为 $c_1,c_2,\ldots,c_M$,极点为 $d_1,d_2,\ldots,d_N$,增益为 $A$。在 $z=e^{j\omega}$ 处:

$$|H(e^{j\omega})|=|A|\cdot\frac{\prod_{i=1}^{M}\overrightarrow{c_iB}}{\prod_{k=1}^{N}\overrightarrow{d_kB}}$$

其中 $\overrightarrow{c_iB}=|e^{j\omega}-c_i|$ 是零点 $c_i$ 到单位圆上 $B$ 点的向量长度,$\overrightarrow{d_kB}=|e^{j\omega}-d_k|$ 是极点 $d_k$$B$ 点的向量长度。

频率响应的几何表示法:z 平面零极点向量与幅度/相位响应
图 3.11 频率响应的几何表示法:左图为 z 平面上零点 $c_1$、极点 $d_k$ 到单位圆上 $B=e^{j\omega}$ 的向量;右图为对应的 $|H(e^{j\omega})|$$\varphi(\omega)$ 曲线。幅度响应等于所有零点向量长度之积除以所有极点向量长度之积。

从图中可以读出三条核心规律:

  • 极点靠近单位圆 → 幅度峰值:当 $B$ 点经过极点 $d_k$ 附近时,$\overrightarrow{d_kB}$ 变得很短,分母变小,$|H|$ 出现峰值。极点越靠近单位圆,峰值越尖锐。
  • 零点靠近单位圆 → 幅度谷值:当 $B$ 点经过零点 $c_i$ 附近时,$\overrightarrow{c_iB}$ 变得很短,分子变小,$|H|$ 出现谷值(陷波)。零点恰好在单位圆上时该频率处 $|H|=0$
  • 相位跳变$B$ 点经过极点或零点附近时,向量方向快速旋转,$\varphi(\omega)$ 出现剧烈变化(图中下方相位曲线在 $\omega=\pi$ 附近的跳变)。

这个几何视角在设计完数字滤波器后特别有用:拿到 $H(z)$ 的零极点分布图,不用算数值就能直观判断通带在哪个频段、过渡带有多陡、有没有不该有的峰值或谷值。反过来,如果设计指标要求在某个频率处有陷波,就往单位圆上对应位置放零点;要求通带峰值,就把极点放在靠近单位圆的对应角度。

课件用一个算例验证了双线性变换法的实际效果:图 6-25 给出用双线性变换法设计出的四阶 Chebyshev 低通数字滤波器幅频响应(纵轴 $20\lg|H(e^{j\omega})|$,单位 dB;横轴 $\omega/\pi$ 从 0 到 1.0)。可以看到通带边界在 $0.2\pi$ 附近、阻带衰减一路单调加深到 $-100$ dB 以下,且高频段没有因混叠而抬起——正好印证“双线性变换无混叠”的优点,也与前面冲激响应不变法的图 6-24 形成对照。这页是把双线性变换法落到实际设计效果上不可或缺的一页。

PDF图 6-25:双线性变换法设计的四阶 Chebyshev 低通数字滤波器幅频响应p.95
正在渲染 PDF 第 95 页…
图 6-25:双线性变换法设计的四阶 Chebyshev 低通数字滤波器幅频响应(PDF 第 95 页) · 打开原文

5.7 方法选择:什么时候用冲激响应不变法,什么时候用双线性变换法

前面给了三种映射方法,实际做题时最关键的是判断该用哪一种。判断有两个层次:先看滤波器类型(是否高通/带阻),再看题目给的是模拟指标还是数字指标

最直接的信号:题目给模拟频率(Hz、rad/s)且要“逼近某个模拟滤波器”→ 用冲激响应不变法(频率关系 $\omega=\Omega T$ 线性,能真正复现模拟频响形状);题目只给数字指标(如 $\omega_p=0.2\pi$)→ 用双线性变换法(配合预畸变精确命中数字临界频率)。前面 5.1 那道 $f_c=2$ kHz、$f_r=4$ kHz 的题给的是模拟指标且要逼近模拟滤波器,所以走冲激响应不变法。
flowchart TD
    A["拿到 Butterworth 设计题"] --> B{"是高通 / 带阻?"}
    B -->|"是"| C["必须用双线性变换
(冲激不变法对高频混叠无解)"] B -->|"否(低通 / 带通)"| D{"给模拟指标且要
逼近模拟滤波器?"} D -->|"是"| E["用冲激响应不变法"] D -->|"否"| F{"要保留冲激 /
阶跃响应时域形状?"} F -->|"是"| E F -->|"否(只给数字指标)"| G["默认用双线性变换
(无混叠,最稳妥)"]
维度冲激响应不变法双线性变换法
频率映射线性 $\omega=\Omega T$非线性 $\Omega=\frac{2}{T}\tan\frac{\omega}{2}$(需预畸变)
混叠有混叠(频谱周期延拓)无混叠($j\Omega$ 轴一对一映射到单位圆)
高通 / 带阻不能用(高频混叠严重)都能用
低通 / 窄带带通可用(要求模拟原型频谱带限)可用
时域响应形状保真(冲激响应采样点一致)不保真
典型场景逼近给定模拟滤波器、给模拟指标一般低通/带通、只给数字指标(默认首选)
为什么低通 Butterworth 特别适合冲激响应不变法?冲激不变法的致命缺点是混叠,而混叠严重程度取决于模拟原型频谱衰减得快不快。Butterworth 是全极点、单调下降的,高频衰减干净($N$ 越高越快),频谱近似带限,所以低通 Butterworth 用冲激不变法时混叠相对可控——这正是图 6-24 那个例子高频段没有明显抬起的原因。但 Butterworth 高通在高频段幅度大,周期延拓会把高频严重折叠回来,必须改用双线性变换
一句话:看到“高通/带阻”闭眼选双线性;看到“逼近模拟滤波器/给模拟指标(Hz)/保留时域响应”选冲激响应不变法(且通常是低通);只给数字指标的一般低通/带通默认双线性(无混叠最稳妥)。

模拟低通原型

四种经典模拟低通原型(Butterworth / Chebyshev / Ellipse / Bessel)的幅度平方函数、极点分布、阶数公式和设计步骤已在 数字滤波器基础与分析 · 模拟低通原型特性 一节中完整讲解。IIR 设计流程中的第三步"设计模拟低通原型 $H_a(s)$"直接引用该节的公式和步骤。

五、例题
IIR 数字滤波器设计例题

例题:用冲激响应不变法设计数字 Butterworth 低通滤波器

题目:采用 Butterworth 滤波器设计一个数字低通滤波器,逼近以下模拟指标:通带截止 $f_c=2$ kHz(取作 3 dB 点)、阻带截止 $f_r=4$ kHz、在 $\Omega_r$ 处衰减不小于 15 dB,采样频率 $f_s=20$ kHz。

解:由于指标已是模拟频率且要“逼近模拟滤波器”,采用冲激响应不变法(数字与模拟频率呈线性关系 $\omega=\Omega T$,无需预畸变)。

步骤 0:整理指标。采样周期 $T=1/f_s=5\times10^{-5}$ s。

$$\Omega_c=2\pi f_c=4000\pi\ \text{rad/s},\qquad \Omega_r=2\pi f_r=8000\pi\ \text{rad/s},$$
$$\alpha_p=3\ \text{dB}\ (\text{因 }f_c\text{ 为 3 dB 点}),\qquad \alpha_s=15\ \text{dB}.$$

步骤 1:求阶数 $N$代入 Butterworth 阶数公式

$$N\ge\frac{\lg\left[(10^{0.1\alpha_s}-1)/(10^{0.1\alpha_p}-1)\right]}{2\lg(\Omega_r/\Omega_c)} =\frac{\lg\left[(10^{1.5}-1)/(10^{0.3}-1)\right]}{2\lg 2} \approx\frac{\lg(30.62/1.0)}{0.602}\approx2.47,$$

向上取整得 $N=3$

步骤 2:确定 3 dB 截止频率。$f_c$ 即 3 dB 点,直接取 $\Omega_c=4000\pi\approx1.257\times10^4$ rad/s。

步骤 3:写出模拟原型 $H_a(s)$三阶归一化 Butterworth 为 $H_{an}(s)=\dfrac{1}{(s+1)(s^2+s+1)}$,极点 $s=-1,\,e^{\pm j2\pi/3}$。去归一化($s\to s/\Omega_c$)得

$$H_a(s)=\frac{\Omega_c^3}{(s+\Omega_c)(s^2+\Omega_c s+\Omega_c^2)},$$

实际极点 $s_1=-\Omega_c,\ s_{2,3}=-\tfrac{\Omega_c}{2}\pm j\tfrac{\sqrt3}{2}\Omega_c$

步骤 4:冲激响应不变法转 $H(z)$$H_a(s)$ 部分分式展开后,按 $H(z)=\sum_k\dfrac{TA_k}{1-e^{s_kT}z^{-1}}$ 映射。代入 $\Omega_c T=4000\pi\times5\times10^{-5}=0.2\pi\approx0.6283$,得到各极点参数:

$$e^{-\Omega_c T}\approx0.534,\quad e^{-\Omega_c T/2}\approx0.730,\quad \cos\!\Big(\tfrac{\sqrt3}{2}\Omega_c T\Big)=\cos(0.544)\approx0.856.$$

于是数字滤波器为一阶节与二阶节之和:

$$H(z)=\frac{T\Omega_c}{1-0.534\,z^{-1}} +\frac{b_0+b_1z^{-1}}{1-1.250\,z^{-1}+0.5335\,z^{-2}},$$

其中二阶节分母由 $1-2e^{-\Omega_c T/2}\cos(\tfrac{\sqrt3}{2}\Omega_c T)z^{-1}+e^{-\Omega_c T}z^{-2}$ 算得,分子常数 $b_0,b_1$ 由部分分式系数 $A_k$$T$ 后取实部得到,最终可按通带增益归一化。

要点:(1)题目给的是模拟指标且要“逼近模拟滤波器”,所以走冲激响应不变法、用线性关系 $\Omega=2\pi f$ 即可,不必预畸变;(2)$f_c$ 未注明衰减值时按 3 dB 点取 $\alpha_p=3$ dB;(3)$\Omega_r/\Omega_c=2$ 使 $N$ 从 2.47 取整到 3,阻带余量充足。本例与上方图 6-24(冲激响应不变法设计的六阶 Butterworth 低通)属同一类方法。

例题:直接代换——把 $H_a(s)=s/(s+1)$ 变成数字滤波器

题目:已知 $H_a(s)=\dfrac{s}{s+1}$,设 $T=2$,试用双线性变换法将其转换成数字滤波器。

课件: 双线性变换法例题——已知 Ha(s)=s/(s+1),T=2,求 H(z)
课件原题:直接给定模拟系统函数,用双线性变换求 $H(z)$(来源:课件)

解:

步骤 1:写出双线性变换代换式。$T=2$

$$s=\frac{2}{T}\cdot\frac{1-z^{-1}}{1+z^{-1}}=\frac{2}{2}\cdot\frac{1-z^{-1}}{1+z^{-1}}=\frac{1-z^{-1}}{1+z^{-1}}.$$

步骤 2:代入 $H_a(s)$

$$H(z)=H_a(s)\Big|_{s=\frac{1-z^{-1}}{1+z^{-1}}}=\frac{\dfrac{1-z^{-1}}{1+z^{-1}}}{\dfrac{1-z^{-1}}{1+z^{-1}}+1}.$$

步骤 3:化简。分子分母同乘 $(1+z^{-1})$

$$H(z)=\frac{1-z^{-1}}{(1-z^{-1})+(1+z^{-1})}=\frac{1-z^{-1}}{2}.$$

结果:

$$H(z)=\frac{1-z^{-1}}{2}.$$

对应差分方程为 $y(n)=\tfrac{1}{2}[x(n)-x(n-1)]$,这是一阶高通 FIR(两点差分)。

为什么是高通?直流 $\omega=0$$z=1$$H(1)=0$;高频 $\omega=\pi$$z=-1$$H(-1)=1$。低频被压制、高频通过——这就是高通。而原模拟系统 $H_a(s)=s/(s+1)$ 本身也是一阶高通($\Omega=0$$H_a=0$$\Omega\to\infty$$H_a\to 1$),双线性变换保持了这一频率选择性。
这道题的意义:它是最基本的双线性变换练习——不涉及指标→阶数→原型的完整设计流程,只做一步代数代换。但它验证了两个关键点:(1)双线性变换是纯代数操作,把 $s$ 换成 $z^{-1}$ 的有理函数即可;(2)$T=2$ 是最常用的简化取值,因为此时 $2/T=1$,代换式最简洁。

例题 1:用双线性变换法设计数字 Butterworth 低通滤波器

题目:用双线性变换法设计数字低通滤波器,要求通带和阻带具有单调下降性,指标参数如下:

  • $\omega_p=0.2\pi$ rad,$\alpha_p=1$ dB
  • $\omega_s=0.315\pi$ rad,$\alpha_s=15$ dB
课件: 用双线性变换法设计数字 Butterworth 低通滤波器——通带 0.2π/1dB,阻带 0.315π/15dB
课件原题:双线性变换法设计 Butterworth 数字低通(来源:课件)

分析:“通带和阻带单调下降”意味着无纹波,选 Butterworth 原型。双线性变换法需要预畸变。

解:

步骤 1:预畸变。$T=2$(简化),数字频率 $\omega$ 映射为模拟频率 $\Omega=\tan(\omega/2)$

$$\Omega_p=\tan\frac{\omega_p}{2}=\tan(0.1\pi)\approx 0.3249,$$
$$\Omega_s=\tan\frac{\omega_s}{2}=\tan(0.1575\pi)\approx 0.5396.$$

步骤 2:算中间参数与阶数。

$$\lambda_{sp}=\frac{\Omega_s}{\Omega_p}=\frac{0.5396}{0.3249}\approx 1.661,$$
$$k_1=\sqrt{\frac{10^{0.1\alpha_p}-1}{10^{0.1\alpha_s}-1}}=\sqrt{\frac{10^{0.1}-1}{10^{1.5}-1}}=\sqrt{\frac{0.2589}{30.623}}\approx\sqrt{0.00845}\approx 0.0919.$$

阶数:

$$N\ge\frac{\lg k_1}{\lg(1/\lambda_{sp})}=\frac{\lg 0.0919}{\lg(1/1.661)}=\frac{-1.037}{-0.220}\approx 4.71.$$

$N=5$

步骤 3:定 $\Omega_c$用通带精确口径:

$$\Omega_c=\Omega_p\bigl(10^{0.1\alpha_p}-1\bigr)^{-1/(2N)}=0.3249\times(0.2589)^{-1/10}.$$

$(0.2589)^{-0.1}=10^{0.1\times 0.587}\approx 10^{0.0587}\approx 1.145$,所以 $\Omega_c\approx 0.3249\times 1.145\approx 0.3720$

步骤 4:查表写归一化原型 $H_{an}(s)$$N=5$ 阶 Butterworth 多项式:

$$B_5(s)=s^5+3.236\,s^4+5.236\,s^3+5.236\,s^2+3.236\,s+1.$$

归一化系统函数 $H_{an}(s)=1/B_5(s)$

步骤 5:去归一化得 $H_a(s)$$s\to s/\Omega_c$ 代换:

$$H_a(s)=\frac{\Omega_c^5}{B_5(s/\Omega_c)}.$$

步骤 6:双线性变换得 $H(z)$代入 $s=\frac{1-z^{-1}}{1+z^{-1}}$$T=2$):

$$H(z)=H_a(s)\Big|_{s=\frac{1-z^{-1}}{1+z^{-1}}}.$$

实际计算中通常先把 $H_a(s)$ 分解为二阶节级联(一阶节 + 两个二阶节),对每个节分别做双线性变换,最后级联得到 $H(z)$

完整设计流程回顾:
  1. 预畸变:$\Omega=\tan(\omega/2)$$T=2$ 简化)
  2. $\lambda_{sp}$$k_1$ → 定阶数 $N$
  3. $\Omega_c$(通带精确口径)
  4. $B_N(s)$ 表 → 写归一化原型
  5. 去归一化:$s\to s/\Omega_c$
  6. 双线性变换:$s\to\frac{1-z^{-1}}{1+z^{-1}}$

例题 2:用双线性变换法设计数字带通滤波器

题目:设计一数字 Butterworth 带通滤波器,指标如下:

  • 通带下截止 $\omega_{pl}=0.35\pi$,上截止 $\omega_{pu}=0.65\pi$
  • 阻带下截止 $\omega_{sl}=0.2\pi$,上截止 $\omega_{su}=0.8\pi$
  • 通带最大衰减 $\alpha_p\le 3$ dB,阻带最小衰减 $\alpha_s\ge 15$ dB

解:

步骤 1:预畸变

将各数字频率预畸变为模拟频率:

$$\Omega_{pl}=\tan\frac{\omega_{pl}}{2}=\tan(0.175\pi),\quad \Omega_{pu}=\tan\frac{\omega_{pu}}{2}=\tan(0.325\pi).$$

步骤 2:模拟带通原型

模拟带通的带宽 $B=\Omega_{pu}-\Omega_{pl}$,中心频率 $\Omega_0=\sqrt{\Omega_{pl}\Omega_{pu}}$

将带通指标变换为归一化低通指标,用 Butterworth 阶数公式确定 $N$

步骤 3:设计低通原型

用求得的阶数 $N$ 和截止频率设计归一化 Butterworth 低通 $H_{LP}(s)$

步骤 4:频率变换

$H_{LP}(s)$ 做带通变换:

$$s\to\Omega_0\frac{s^2+\Omega_{pl}\Omega_{pu}}{s(\Omega_{pu}-\Omega_{pl})}.$$

步骤 5:双线性变换

代入 $s=\frac{1-z^{-1}}{1+z^{-1}}$(取 $T=2$ 简化),得到数字带通滤波器 $H(z)$

设计流程总结:带通设计比低通多了频率变换一步,核心是"先预畸变、再变低通为带通、最后双线性映射到数字域"。实际中通常直接使用 MATLAB 的 butter(N, [wl, wu]) 完成全部步骤。

例题:用带阻滤波器除去 100 Hz 噪声(陷波器设计)

题目:采样频率 $f_s=1000$ Hz,信号受 100 Hz 噪声干扰。设计一个 Butterworth 带阻数字滤波器除噪:3 dB 边带频率为 90 Hz 和 110 Hz,阻带最小衰减 $\alpha_s\ge15$ dB。

设计决策(指标的两层含义与补全):题目给的两个量含义不同——“3 dB 边带 90/110 Hz”标记通带边界(幅度在此降到 $1/\sqrt2$、即 $\alpha_p=3$ dB,90 Hz 以下、110 Hz 以上的有用信号要保留);“阻带最小衰减 15 dB”规定阻带要陷多深$\alpha_s=15$ dB)。但带阻设计要定阶数,还需要一对阻带边界频率来确定过渡带宽度(即“从 3 dB 边缘到 15 dB 深度允许走多远”),原题未给,需由设计者选定。本例作为设计者取阻带边界为 95 Hz 与 105 Hz(过渡带各 5 Hz,对陷波器是合理的折中:过渡带越窄阶数越高、实现越复杂)。注意阻带边界不能取 100 Hz——它正是陷波中心,预畸变后与中心频率重合,会使阻带归一化频率 $\lambda_s\to\infty$、阶数退化为 0,是无意义的平凡条件。

解:带阻在高频段有通带,冲激响应不变法会因混叠失效,必须用双线性变换

步骤 1:物理频率 → 数字频率$\omega=2\pi f/f_s$)。

$$\omega_{p1}=0.18\pi,\quad \omega_{s1}=0.19\pi,\quad \omega_0=0.2\pi,\quad \omega_{s2}=0.21\pi,\quad \omega_{p2}=0.22\pi.$$

步骤 2:预畸变(取 $T=2$,则 $\Omega=\tan(\omega/2)$$T$ 在预畸变与反变换中抵消,不影响结果)。

$$\Omega_{p1}=\tan(0.09\pi)\approx0.2905,\qquad \Omega_{p2}=\tan(0.11\pi)\approx0.3600,$$
$$\Omega_{s1}=\tan(0.095\pi)\approx0.3076,\qquad \Omega_{s2}=\tan(0.105\pi)\approx0.3404.$$

步骤 3:带阻原型参数。带宽与中心频率为

$$B=\Omega_{p2}-\Omega_{p1}\approx0.0695,\qquad \Omega_0^2=\Omega_{p1}\Omega_{p2}\approx0.1046\ (\Omega_0\approx0.3234).$$

步骤 4:带阻 → 归一化低通,求阻带归一化频率。用映射 $\lambda=\dfrac{B\,\Omega}{\Omega_0^2-\Omega^2}$,通带边界归一化为 $\lambda_p=1$;阻带边界(取偏离中心较近的 95 Hz)代入

$$\lambda_s=\left|\frac{B\,\Omega_{s1}}{\Omega_0^2-\Omega_{s1}^2}\right| =\left|\frac{0.0695\times0.3076}{0.1046-0.3076^2}\right|\approx2.15.$$

步骤 5:求阶数 $N$(Butterworth,$\alpha_p=3$ dB、$\alpha_s=15$ dB)。

$$N\ge\frac{\lg\big[(10^{1.5}-1)/(10^{0.3}-1)\big]}{2\lg\lambda_s} =\frac{\lg(30.62/1.0)}{2\lg 2.15}\approx\frac{1.486}{0.663}\approx2.24,$$

向上取整得 $N=3$。这个阶数由前面选定的阻带边界(95/105 Hz)决定:过渡带取得越窄、$\lambda_s$ 越接近 1,算出的 $N$ 越大;本例 $N=3$ 在“陷波足够深”与“实现足够简单”之间取得了合理平衡,是设计者可接受的工程值。

步骤 6:归一化低通原型。三阶归一化 Butterworth:

$$H_{LP}(\lambda)=\frac{1}{(\lambda+1)(\lambda^2+\lambda+1)}.$$

步骤 7:带阻变换 + 双线性变换得 $H(z)$先把低通变量 $\lambda$ 还原为带阻:$\lambda\to\dfrac{B\,s}{s^2+\Omega_0^2}$ 得到模拟带阻 $H_a(s)$;再用 $s=\dfrac{1-z^{-1}}{1+z^{-1}}$$T=2$)做双线性变换。带阻的数字陷波中心落在

$$\omega_0=0.2\pi,\qquad \cos\omega_0\approx0.809,$$

即数字滤波器在 $0.2\pi$(对应 100 Hz)处形成深陷波、彻底抑制噪声,而在 $0.18\pi$$0.22\pi$(90/110 Hz)以外幅度接近 1,保留有用信号。最终 $H(z)$ 由三个二阶节(每节形如 $\dfrac{1-2\cos\omega_0 z^{-1}+z^{-2}}{1-a_k z^{-1}+b_k z^{-2}}$,分子零点位于陷波频率 $e^{\pm j\omega_0}$)级联构成,系数由各模拟极点经双线性变换逐一映射得到。

步骤 8:求出 $H(z)$ 的完整表达式。把上述过程符号化展开(取 $T=2$,即 $s=\frac{1-z^{-1}}{1+z^{-1}}$),整理为 $z^{-1}$ 升幂的六阶有理式:

$$H(z)=0.8818\cdot\frac{1-4.864z^{-1}+10.886z^{-2}-13.989z^{-3}+10.886z^{-4}-4.864z^{-5}+z^{-6}}{1-4.660z^{-1}+9.994z^{-2}-12.313z^{-3}+9.190z^{-4}-3.940z^{-5}+0.778z^{-6}}.$$

分子系数关于中心对称,正是带阻陷波“零点在单位圆上成对出现”的体现;首项 $0.8818$ 是总增益 $G$。把分子整体记为 $\sum_{k=0}^{6}b_kz^{-k}$、分母整体记为 $1+\sum_{k=1}^{6}a_kz^{-k}$,对应系数为

$$\begin{aligned} b_k&=0.8818\times[\,1,\,-4.864,\,10.886,\,-13.989,\,10.886,\,-4.864,\,1\,],\\ a_k&=[\,1,\,-4.660,\,9.994,\,-12.313,\,9.190,\,-3.940,\,0.778\,]. \end{aligned}$$

步骤 9:严格正准型(直接 II 型)信号流图。正准型是一种整体的、不拆节的实现结构(与级联型、并联型并列):直接对六阶 $H(z)$ 实现,用一条 6 级延时线(6 个 $z^{-1}$,延时器数 = 阶数,这正是“正准/最少”的含义),反馈系数 $-a_1\sim-a_6$ 与前馈系数 $b_0\sim b_6$ 共享同一组延时单元。引入中间变量 $w[n]$,差分方程为

$$w[n]=x[n]-\sum_{k=1}^{6}a_k\,w[n-k],\qquad y[n]=\sum_{k=0}^{6}b_k\,w[n-k].$$

代入本题系数,反馈与前馈两组方程为

$$\begin{aligned} w[n]=x[n]&+4.660\,w[n-1]-9.994\,w[n-2]+12.313\,w[n-3]\\ &-9.190\,w[n-4]+3.940\,w[n-5]-0.778\,w[n-6], \end{aligned}$$
$$\begin{aligned} y[n]=0.8818\big(&w[n]-4.864\,w[n-1]+10.886\,w[n-2]-13.989\,w[n-3]\\ &+10.886\,w[n-4]-4.864\,w[n-5]+w[n-6]\big). \end{aligned}$$

对应的直接 II 型信号流图:左侧为反馈支路(系数 $-a_k$ 回到输入加法器),右侧为前馈支路(系数 $b_k$ 汇入输出加法器),中间纵向是一条共享的六级延时线:

flowchart LR
    X(["x[n]"]) --> ADD1((+))
    ADD1 --> W(["w[n]"])
    W --> ADD2((+))
    ADD2 --> Y(["y[n]"])
    W --> D1["z⁻¹"] --> W1(["w[n-1]"])
    W1 --> D2["z⁻¹"] --> W2(["w[n-2]"])
    W2 --> D3["z⁻¹"] --> W3(["w[n-3]"])
    W3 --> D4["z⁻¹"] --> W4(["w[n-4]"])
    W4 --> D5["z⁻¹"] --> W5(["w[n-5]"])
    W5 --> D6["z⁻¹"] --> W6(["w[n-6]"])
    W1 -- "−a₁" --> ADD1
    W2 -- "−a₂" --> ADD1
    W3 -- "−a₃" --> ADD1
    W4 -- "−a₄" --> ADD1
    W5 -- "−a₅" --> ADD1
    W6 -- "−a₆" --> ADD1
    W -- "b₀" --> ADD2
    W1 -- "b₁" --> ADD2
    W2 -- "b₂" --> ADD2
    W3 -- "b₃" --> ADD2
    W4 -- "b₄" --> ADD2
    W5 -- "b₅" --> ADD2
    W6 -- "b₆" --> ADD2
    

整个滤波器只用 6 个延时器(等于系统阶数 6),这是正准型存储最省的体现。前馈系数对称($b_0=b_6,\,b_1=b_5,\dots$)来自带阻零点在单位圆上成对出现,正是这组零点(位于 $e^{\pm j0.2\pi}$)令 100 Hz 输出被陷掉。

结构辨析:正准型(直接 II 型)、级联型、并联型是三种并列的实现结构,不存在从属关系。本步采用严格正准型——不拆二阶节,直接用整体六阶 $H(z)$、一条共享的六级延时线实现。若改用级联型,则会把六阶拆成 3 个二阶节串联、每节再单独用直接 II 型实现(那是另一种结构,数值更稳健但延时器分布不同)。两者实现的是同一个 $H(z)$
要点:(1)带阻/带通必须用双线性变换,不能用冲激响应不变法;(2)求阶数需要一对阻带边界,本题原题缺失需补设定,且阻带边界不能取在陷波中心;(3)带阻陷波器的数字零点恰好落在要除去的噪声频率 $e^{\pm j\omega_0}$ 上,这正是它"陷掉"该频率的几何原因;(4)正准型(直接 II 型)整体只用与阶数相等的延时器数,是存储最省的实现,与级联型/并联型是并列的不同结构。
六、数字频带变换法
用全通替换实现低通到高通、带通、带阻

上述方法设计的是低通滤波器。若需要高通、带通或带阻,可以通过频率变换把低通原型变成目标类型。

6.1 模拟频率变换

在模拟域直接对 $s$ 做变换,再把结果用双线性变换映射到数字域。

模拟频率变换公式

目标变换公式
低通 $\to$ 低通$s\to s\,\Omega_{p1}/\Omega_{p2}$
低通 $\to$ 高通$s\to \Omega_{p1}\Omega_{p2}/s$
低通 $\to$ 带通$s\to \Omega_{p1}\,\frac{s^2+\Omega_{l}\Omega_{u}}{s(\Omega_u-\Omega_l)}$
低通 $\to$ 带阻$s\to \Omega_{p1}\,\frac{s(\Omega_u-\Omega_l)}{s^2+\Omega_l\Omega_u}$

6.2 数字频率变换

第六讲最后一组内容是数字域频带变换法:先得到一个数字低通 $H_L(z)$,再把其中的 $z^{-1}$ 替换为一个全通函数 $G(Z^{-1})$,得到目标数字滤波器

$$H_d(Z)=H_L(z)\big|_{z^{-1}=G(Z^{-1})}.$$

这种方法完全在数字域中操作,要求 $G(Z^{-1})$$z$ 平面单位圆映射到 $Z$ 平面单位圆,并且把单位圆内部映射到单位圆内部,从而保持因果稳定。

数字域频率变换的全通条件

$z=e^{j\theta}$$Z=e^{j\omega}$。若

$$z^{-1}=G(Z^{-1})=G(e^{-j\omega}),$$

则必须满足

$$|G(e^{-j\omega})|=1,$$

也就是 $G$ 必须是全通函数;相位关系由 $\theta=-\arg G(e^{-j\omega})$ 决定。课件给出的通用一阶全通形式为

$$z^{-1}=G(Z^{-1})=\pm\prod_{k=1}^{N}\frac{Z^{-1}-a_k^*}{1-a_kZ^{-1}},\qquad |a_k|<1.$$

常见数字域频率变换公式

目标$z^{-1}$ 替换为核心参数
数字低通 $\to$ 数字低通$\frac{Z^{-1}-\alpha}{1-\alpha Z^{-1}}$$\alpha=\frac{\sin\frac{\omega_p-\theta_p}{2}}{\sin\frac{\omega_p+\theta_p}{2}}$
数字低通 $\to$ 数字高通$-\frac{Z^{-1}+\alpha}{1+\alpha Z^{-1}}$低通频率响应旋转 $180^\circ$
数字低通 $\to$ 数字带通$-\frac{Z^{-2}+d_1Z^{-1}+d_2}{d_2Z^{-2}+d_1Z^{-1}+1}$$\theta:0\to\pi$ 映到 $\omega:0\to\pi\to0$,阶数加倍
数字低通 $\to$ 数字带阻$\frac{Z^{-2}+d_1Z^{-1}+d_2}{d_2Z^{-2}+d_1Z^{-1}+1}$$\theta:0\to\pi$ 映到 $\omega:\pi\to0\to\pi$,阶数加倍
flowchart LR
    A["数字低通 H_L(z)"] --> B["全通替换 z^-1 = G(Z^-1)"]
    B --> C{"相位映射"}
    C -->|"保持低频"| D["数字低通"]
    C -->|"旋转 180°"| E["数字高通"]
    C -->|"0 → π → 0"| F["数字带通"]
    C -->|"π → 0 → π"| G["数字带阻"]
  
读公式的关键:数字频率变换不是重新设计模拟原型,而是用全通替换改变单位圆上的相位映射;幅度响应形状来自原数字低通,频带位置由 $G(Z^{-1})$ 的相位函数决定。

这正是前面第二章全通系统埋下的伏笔在这里兑现:替换函数 $G(Z^{-1})$ 必须是全通函数,靠它“幅度恒为 1”保住原数字低通的通带/阻带形状,靠它“相位随频率变化”把频带搬到高通/带通/带阻的位置——所以那时强调的“只改相位、不改幅度”,到这一步才显出真正用途。

设计流程总结:(1)确定数字指标($\omega_p,\omega_s,\alpha_p,\alpha_s$);(2)若用双线性变换,做预畸变得到模拟指标;(3)设计模拟低通原型;(4)若需高通/带通/带阻,做频率变换;(5)用选定的变换方法(冲激不变/双线性)得到 $H(z)$;(6)验证数字滤波器指标是否满足。

IIR 设计方法可以总览成一条完整路线:先定指标,再选模拟原型,再选择冲激响应不变法、阶跃响应不变法或双线性变换,最后必要时做频带变换。

PDFIIR 数字滤波器设计方法总览p.98
正在渲染 PDF 第 98 页…
IIR 数字滤波器设计方法总览(PDF 第 98 页) · 打开原文

数字域频带变换的入口是两个要求:第一,替换函数必须把单位圆映射到单位圆;第二,满足这个要求的替换函数本质上就是全通函数。

PDF数字域频带变换要求与全通函数形式 · p.121–122p.121–122
正在渲染 PDF 第 121 页…
正在渲染 PDF 第 122 页…
数字域频带变换要求与全通函数形式(PDF p.121–122) · 打开原文

数字低通到数字高通的全通替换公式,以及多通带/带阻情形下全通函数阶数与符号的选择,已经被整理进上面的公式表;这里用轻量引用标注出处。

PDF数字低通到数字高通:全通替换公式出处p.127
正在渲染 PDF 第 127 页…
数字低通到数字高通:全通替换公式出处(PDF 第 127 页) · 打开原文
PDF数字低通到多通带/带阻:全通函数阶数与符号p.141
正在渲染 PDF 第 141 页…
数字低通到多通带/带阻:全通函数阶数与符号(PDF 第 141 页) · 打开原文

这样读下来,数字频率变换的逻辑是连续的:用全通替换重排单位圆上的频率位置,而不是重新设计一个新的模拟原型。

6.3 工程实现提示

设计完成后,还需要考虑实际实现中的数值问题:

  • 系数量化$a_k,b_k$ 用有限位表示后,零极点位置会偏移。高阶直接型对系数极其敏感,通常拆成二阶级联实现。
  • 运算溢出:IIR 滤波器有反馈,中间变量可能很大。需要缩放输入或采用饱和算术。
  • 极限环振荡:有限字长下,零输入时输出可能不收敛到零,而是进入小幅度周期振荡。
工程建议:高阶 IIR 滤波器不要直接用直接型实现。先用双线性变换得到 $H(z)$,再因式分解为二阶级联型(或并联型),每节独立检验稳定性。DSP 芯片(TI、ADI)通常提供级联 Biquad 的硬件加速指令。

复习速查

  • 设计路线:指标 $\to$ 预畸变 $\to$ 模拟原型 $\to$ 频率变换 $\to$ 双线性变换 $\to$ $H(z)$
  • 全通系统$|H|=1$,零极点镜像对称,用于相位均衡和稳定性补偿。
  • Butterworth:最平坦,极点均匀分布在左半圆上,$|H|^2=1/[1+(\Omega/\Omega_c)^{2N}]$
  • Chebyshev:等波纹,$T_N(x)$ 多项式,过渡带更陡,极点在椭圆上。
  • Butterworth 阶数$N\ge\lg[(10^{0.1\alpha_s}-1)/(10^{0.1\alpha_p}-1)]/[2\lg(\Omega_s/\Omega_p)]$
  • 冲激响应不变$h(n)=h_a(nT)$ 或按归一化取 $T h_a(nT)$,时域采样直观,但频域会周期延拓并混叠。
  • 阶跃响应不变:先采样模拟阶跃响应 $g_a(t)$$G(z)$,再由 $H(z)=\frac{z-1}{z}G(z)$ 恢复系统函数。
  • 双线性变换$s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}$,无混叠但频率畸变。
  • 预畸变$\Omega_c=\frac{2}{T}\tan\frac{\omega_c}{2}$,补偿双线性变换的频率压缩。
  • 频率变换:模拟域对 $s$ 替换,或数字域用全通函数 $G(Z^{-1})$ 替换 $z^{-1}$,实现低通$\to$高通/带通/带阻。

参考来源

  • 课程讲义:第六讲《IIR 数字滤波器的设计》,用于核对数字滤波器技术指标、最小相位、全通系统、模拟原型、冲激响应不变法、阶跃响应不变法、双线性变换、模拟频率变换和数字域频带变换法。
  • 教材:程佩青《数字信号处理教程》第 6 章,用于核对 IIR 数字滤波器设计公式与例题流程。
  • Oppenheim & Schafer, Discrete-Time Signal Processing, Chapter 7,用于补充离散时间滤波器设计的经典表述。
  • 课程讲义:第五讲《IIR 数字滤波器的基本结构》,用于核对 IIR 直接 I 型、直接 II 型、级联型、并联型的信号流图与转置定理。
  • WolfSound: Analog Prototype Filter Design:用于补充 Butterworth、Chebyshev 等模拟原型的设计直觉。
  • MIT OCW Lecture 24: Butterworth Filters:用于核对 Butterworth 极点分布与阶数公式。
  • Newcastle University: Design of IIR Filters:用于补充 IIR 设计流程、双线性变换和冲激响应不变法的课程视角。