🌟 欢迎来到第14讲:IIR数字滤波器设计 (Part II) #
(对应课本第9章及附录A、B)
上一讲,我们已经成功地将数字滤波器的设计需求"翻译"成了模拟指标,并掌握了如何设计出满足这些指标的模拟原型滤波器 $H(s)$。今天,我们的任务是完成IIR滤波器设计的"最后一公里":如何将这个模拟滤波器精确且可靠地转换为我们最终需要的数字滤波器 $H(z)$。
我们将重点学习两种经典的转换方法:冲激响应不变法和双线性变换法,并深入分析它们的优缺点。特别是,我们将聚焦于双线性变换法为何能成为当今IIR设计的标准方法。最后,我们将学习如何通过频率变换技术,仅用低通原型就能设计出所有其他类型的滤波器。
核心学习目标:
- 掌握冲激响应不变法:理解其原理(时域采样),并认识到其固有的频谱混叠问题。
- 精通双线性变换法:掌握其原理(梯形积分近似),理解s平面与z平面的非线性频率映射关系,并明白什么是频率畸变 (Frequency Warping)。
- 完成IIR设计全流程:能够利用双线性变换法,从数字指标出发,完整地设计出一个IIR数字滤波器。
- 学会频率变换:掌握如何从一个设计好的低通原型,通过简单的代数替换,快速得到高通、带通和带阻滤波器。
📚 本讲知识地图 #
📝 本讲主要内容 #
1. 模拟和数字之间的转换方法 #
我们已经设计好了模拟滤波器 $H(s)$,现在需要选择一种方法,将其"翻译"成数字滤波器 $H(z)$。
1.1 冲激响应不变法 (Impulse Invariance Method) #
-
核心思想:让数字滤波器的单位冲激响应 $h[n]$ 成为模拟滤波器冲激响应 $h\_a(t)$ 的采样版本。 $$ h[n] = T \cdot h_a(nT) $$
-
频域关系与缺陷:时域的采样导致频域的周期性延拓,从而引发频谱混叠。
【图片:回顾采样定理中的频谱周期延拓图 (参考PPT P8),强调如果原始模拟频谱不是带限的,延拓后会发生混叠。】
%207.jpg)
- 结论:此方法仅适用于频谱衰减极快,可近似为带限的滤波器。
-
S平面到Z平面的映射: 此方法隐含了一个映射关系:模拟滤波器的极点 $s\_k$ 对应于数字滤波器的极点 $e^{s\_k T}$。 $$ \frac{A_k}{s-s_k} \quad \xrightarrow{\text{冲激响应不变}} \quad \frac{T \cdot A_k}{1 - e^{s_k T}z^{-1}} $$
- 映射特性:S平面的左半平面被映射到Z平面的单位圆内部,保证了稳定性。但是,整个 $j\Omega$ 轴被重复、无限次地映射到Z平面的单位圆上,这就是混叠的根源。
1.2 ✨ 双线性变换法 (Bilinear Transformation Method) - 【核心方法】 #
-
核心思想:通过一种代数替换,直接将s平面唯一地映射到z平面。 $$ s = \frac{2}{T} \frac{1-z^{-1}}{1+z^{-1}} $$
-
映射特性:
【图片:Z平面-S平面映射图 (参考PPT P14),清晰地画出单位圆如何映射到整个虚轴,单位圆内部如何映射到左半平面。】
%201.jpg)
- s平面的整个虚轴 $j\Omega$ 被一一映射到了z平面的单位圆一周。
- s平面的稳定左半平面 (LHP) 被映射到z平面的单位圆内部。
- 优点:无混叠、保持稳定性。
-
频率畸变 (Frequency Warping): s域频率 $\Omega$ 和z域频率 $\omega$ 之间的映射关系是非线性的。 $$ \Omega = \frac{2}{T} \tan\left(\frac{\omega}{2}\right) \quad \text{或} \quad \omega = 2 \arctan\left(\frac{\Omega T}{2}\right) $$ 【图片:模拟频率和数字频率的反正切映射关系曲线图 (参考PPT P17),展示低频近似线性,高频严重压缩的特性。】
%202.jpg)
-
解决方案:预畸变 (Pre-warping) 在设计模拟滤波器之前,先对数字指标频率进行"反向畸变"或"预畸变",计算出等效的模拟频率。 $$ \Omega_p = \frac{2}{T} \tan\left(\frac{\omega_p}{2}\right), \quad \Omega_s = \frac{2}{T} \tan\left(\frac{\omega_s}{2}\right) $$
2. IIR数字滤波器完整设计步骤——【核心示例】 #
【例题】 设计一个低通巴特沃斯数字滤波器,满足以下指标:
- $\omega\_p = 0.25\pi$
- $\omega\_s = 0.55\pi$
- $\alpha\_p \le 0.5 \text{ dB}$
- $\alpha\_s \ge 15 \text{ dB}$
解题步骤:
-
确定数字指标: $\omega\_p = 0.25\pi$, $\omega\_s = 0.55\pi$, $\alpha\_p = 0.5$, $\alpha\_s = 15$。
-
频率预畸变 (为简化计算,设 $T=2$): $$ \Omega_p = \tan(\omega_p/2) = \tan(0.125\pi) = 0.4142 $$ $$ \Omega_s = \tan(\omega_s/2) = \tan(0.275\pi) = 1.1708 $$
-
设计模拟低通原型 (巴特沃斯):
a. 计算阶数 N: $$ N \ge \frac{\log_{10}\left(\frac{10^{1.5}-1}{10^{0.05}-1}\right)}{2\log_{10}\left(\frac{1.1708}{0.4142}\right)} = \frac{\log_{10}(258.9/0.122)}{\log_{10}(2.8267^2)} \approx 2.65 $$ 我们选择 N=3。
b. 计算-3dB截止频率 $\Omega_c$:
-
方法一:使用 $\Omega_p$ $$ \Omega_c = \frac{\Omega_p}{(10^{\alpha_p/10}-1)^{1/(2N)}} = \frac{0.4142}{(10^{0.05}-1)^{1/6}} = 0.588148 $$
-
方法二:也可以使用 $\Omega_s$ $$ \Omega_c = \frac{\Omega_s}{(10^{\alpha_s/10}-1)^{1/(2N)}} = \frac{1.1708}{(10^{1.5}-1)^{1/6}} = 0.588148 $$
两种方法结果一致,验证了计算的正确性。
c. 确定归一化 ($\Omega_c=1$) 3阶巴特沃斯传递函数 $H_{an}(p)$: 查表(或根据公式)可知,归一化3阶巴特沃斯滤波器的极点位于左半平面,其传递函数为: $$ H_{an}(p) = \frac{1}{(p+1)(p^2+p+1)} $$
d. 去归一化得到 $H\_a(s)$: 进行频率变换 $p = s/\Omega\_c$ $$ H_a(s) = H_{an}\left(\frac{s}{\Omega_c}\right) = H_{an}\left(\frac{s}{0.588148}\right) $$
-
-
进行双线性变换: 将 $s = \frac{1-z^{-1}}{1+z^{-1}}$ (已设T=2) 代入 $H\_a(s)$ 中,得到最终的数字滤波器系统函数 $H(z)$。 $$ G(z) = H_a(s)\Big|_{s=\frac{1-z^{-1}}{1+z^{-1}}} $$ 这一步代数运算非常繁琐,通常由软件完成。
【图片:最终得到的数字滤波器幅频和增益响应图 (参考PPT P30),显示其满足设计指标。】
%203.jpg)
3. 高通、带通、带阻IIR滤波器设计 #
我们不需要为每种滤波器都重复上述复杂的设计流程。可以利用频率变换技术,从一个设计好的低通原型快速变换得到。
设计流程 (以高通为例):
- 数字指标:确定目标高通滤波器的数字指标 $\\{\hat{\omega}\_p, \hat{\omega}\_s, \alpha\_p, \alpha\_s\\}$。
- 预畸变:计算出目标高通滤波器的模拟指标 $\\{\hat{\Omega}\_p, \hat{\Omega}\_s\\}$。
- 频率变换到低通:使用高通到低通的变换公式,将高通指标转换为等效的低通原型指标 $\\{\Omega\_p, \Omega\_s\\}$。
- 变换公式:$s \rightarrow \frac{\Omega\_p \hat{\Omega}\_p}{s}$
- 指标变换:令低通原型通带截止频率 $\Omega\_p=1$,则阻带截止频率为 $\Omega\_s = \frac{\hat{\Omega}\_p}{\hat{\Omega}\_s}$。
- 设计模拟低通原型:根据 $\\{\Omega\_p=1, \Omega\_s, \alpha\_p, \alpha\_s\\}$ 设计出模拟低通滤波器 $H\_{LP}(s)$。
- 逆频率变换:使用变换公式的逆,将 $s$ 替换为 $\frac{\Omega\_p \hat{\Omega}\_p}{s}$,从 $H\_{LP}(s)$ 得到目标模拟高通滤波器 $H\_{HP}(s)$。
- 双线性变换:对 $H\_{HP}(s)$ 进行双线性变换,得到最终的数字高通滤波器 $H\_{HP}(z)$。
【图片:模拟域低通、高通、带通、带阻之间的频率变换关系图 (参考PPT P38-P42)】
%205.jpg)
🔗 知识关联与应用 #
-
承上启下:本讲是IIR滤波器设计的完结篇,它将上一讲的模拟原型设计与最终的数字实现连接起来,构成了一套完整、强大且在工程界广泛使用的设计范式。
-
现实应用:
- MATLAB Filter Designer App: MATLAB强大的
filterDesigner工具箱的背后,IIR设计部分就完全是基于今天所学的流程:用户输入数字指标 -> 工具自动预畸变 -> 计算阶数和参数 -> 设计模拟原型 -> (可选)频率变换 -> 双线性变换 -> 得到数字滤波器系数。 - 电信与通信:在数字调制解调器、信道编码解码器中,需要大量精确控制频带的滤波器。由于IIR滤波器的高效性,它们被广泛使用。设计师会严格按照今天学习的流程,从指标出发,设计出满足通信协议要求的巴特沃斯或切比雪夫滤波器。
- MATLAB Filter Designer App: MATLAB强大的
🤔 引导式提问 #
- 为什么双线性变换法中的"频率畸变"不是一个缺点,反而可以通过"预畸变"来精确控制截止频率? 相比之下,冲激响应不变法的"频谱混叠"为什么是一个更根本、更难解决的问题?
- 设计一个数字陷波器(Notch Filter),你认为在模拟域使用哪种原型(低通、高通、带通、带阻)进行频率变换最为直观? 变换的步骤是怎样的?
- 在MATLAB中,
buttord/cheb1ord和butter/cheby1这两对函数分别对应了我们今天学习的设计流程中的哪些步骤?
💡 本讲总结 #
今天,我们走完了IIR滤波器设计的全部旅程,从抽象的指标到具体的实现。
- 转换是关键:IIR设计的精髓在于借助模拟原型。而连接模拟与数字世界的桥梁是变换方法。
- 冲激响应不变法有混叠缺陷:原理直观(时域采样),但会导致不可避免的频谱混叠,适用范围受限。
- 双线性变换是黄金标准:它通过非线性的频率映射,完美地解决了混叠问题,并保持了系统的稳定性,是IIR设计的首选方法。其"频率畸变"副作用可以通过预畸变来精确补偿。
- 频率变换是设计的放大器:我们只需要掌握低通原型的设计方法,就可以通过简单的频率变换公式,设计出高通、带通、带阻等所有类型的滤波器,极大地提高了设计效率。
至此,你已经掌握了工业界设计IIR数字滤波器的全套理论和流程。