习题:脉冲响应不变法设计数字滤波器

已知: 模拟滤波器的系统函数 $H_a(s)$ 如下,其中 $a,b$ 为常数且 $a>0$,$H_a(s)$ 因果稳定:

  1. $$ H_a(s) = \frac{s+a}{(s+a)^2 + b^2} $$
  2. $$ H_a(s) = \frac{b}{(s+a)^2 + b^2} $$

要求: 设采样周期为 $T$,不进行拉普拉斯反变换,直接采用部分分式展开的映射方法,求数字滤波器 $H(z)$。

解题过程:部分分式展开法

基本原理

脉冲响应不变法的映射关系为:

若模拟极点为 $p_k$,系数为 $A_k$,即 $H_a(s) = \sum_{k} \frac{A_k}{s-p_k}$

则对应的数字滤波器为:$$ H(z) = \sum_{k} \frac{A_k}{1 - e^{p_k T} z^{-1}} $$

首先求出分母的根(极点):$(s+a)^2 + b^2 = 0 \Rightarrow s = -a \pm jb$。

令 $p_1 = -a + jb,\ p_2 = -a - jb$。

(1) 第一小题求解

1. 部分分式展开

$$ H_a(s) = \frac{s+a}{(s-p_1)(s-p_2)} = \frac{A}{s-p_1} + \frac{B}{s-p_2} $$

由于 $H_a(s)$ 是共轭极点对应的余弦形式,系数 $A, B$ 通常为 $0.5$。验证:

$$ \frac{0.5}{s-(-a+jb)} + \frac{0.5}{s-(-a-jb)} = \frac{0.5(s+a+jb) + 0.5(s+a-jb)}{(s+a)^2+b^2} = \frac{s+a}{(s+a)^2+b^2} $$

故 $A = 0.5, B = 0.5$。

2. 代入映射公式

$$ H(z) = \frac{0.5}{1 - e^{p_1 T}z^{-1}} + \frac{0.5}{1 - e^{p_2 T}z^{-1}} $$

通分合并:

$$ H(z) = 0.5 \times \frac{(1 - e^{p_2 T}z^{-1}) + (1 - e^{p_1 T}z^{-1})}{(1 - e^{p_1 T}z^{-1})(1 - e^{p_2 T}z^{-1})} $$

分子 $= 2 - z^{-1}(e^{p_1 T} + e^{p_2 T}) = 2 - z^{-1}e^{-aT}(e^{jbT} + e^{-jbT}) = 2 - 2e^{-aT}\cos(bT)z^{-1}$

分母 $= 1 - z^{-1}(e^{p_1 T} + e^{p_2 T}) + z^{-2}e^{(p_1+p_2)T} = 1 - 2e^{-aT}\cos(bT)z^{-1} + e^{-2aT}z^{-2}$

结果 (1): $$ H(z) = \frac{1 - e^{-aT}\cos(bT)z^{-1}}{1 - 2e^{-aT}\cos(bT)z^{-1} + e^{-2aT}z^{-2}} $$

(2) 第二小题求解

1. 部分分式展开

$$ H_a(s) = \frac{b}{(s-p_1)(s-p_2)} = \frac{A}{s-p_1} + \frac{B}{s-p_2} $$

利用留数法求解系数:

$A = H_a(s)(s-p_1)|_{s=p_1} = \frac{b}{p_1-p_2} = \frac{b}{(-a+jb)-(-a-jb)} = \frac{b}{2jb} = \frac{1}{2j}$

$B = H_a(s)(s-p_2)|_{s=p_2} = \frac{b}{p_2-p_1} = \frac{b}{-2jb} = -\frac{1}{2j}$

2. 代入映射公式

$$ H(z) = \frac{1}{2j} \left( \frac{1}{1 - e^{p_1 T}z^{-1}} - \frac{1}{1 - e^{p_2 T}z^{-1}} \right) $$

通分合并:

$$ H(z) = \frac{1}{2j} \frac{(1 - e^{p_2 T}z^{-1}) - (1 - e^{p_1 T}z^{-1})}{\text{分母同上}} $$

分子 $= \frac{1}{2j} [ -z^{-1}(e^{p_2 T} - e^{p_1 T}) ] = \frac{z^{-1}}{2j} (e^{p_1 T} - e^{p_2 T}) $

利用欧拉公式 $e^{p_1 T} - e^{p_2 T} = e^{-aT}(e^{jbT} - e^{-jbT}) = e^{-aT}(2j\sin(bT))$

结果 (2): $$ H(z) = \frac{e^{-aT}\sin(bT)z^{-1}}{1 - 2e^{-aT}\cos(bT)z^{-1} + e^{-2aT}z^{-2}} $$

图形演示与验证

题(1) 脉冲响应 (模拟 vs 数字)

蓝线: 模拟 $e^{-at}\cos(bt)$ | 红点: 数字滤波器脉冲响应

题(2) 脉冲响应 (模拟 vs 数字)

蓝线: 模拟 $e^{-at}\sin(bt)$ | 红点: 数字滤波器脉冲响应

Z平面 零极点分布