数字信号处理:Z 变换与滤波器设计
1.1 提出目的与背景
在离散时间系统分析中,时域离散卷积计算较为繁琐。通过引入 Z 变换 (Z-Transform),我们可以将时域的差分方程与卷积运算映射到复频域(Z 域),将时域的卷积运算简化为 Z 域的代数乘法,从而极大地简化频率响应与系统特性的计算。
1.2 数学定义
对于一个离散时间序列 h[n],其 Z 变换定义为:
H(z)=∑k=−∞∞h[k]z−k
其中 z 是一个复变量:
z=rejω^
-
当取 r=1(即在复平面上的单位圆上评估)时,z=ejω^,Z 变换即退化为离散时间傅里叶变换 (DTFT):
H(ejω^)=∑k=−∞∞h[k]e−jω^k
1.3 时域、频域与 Z 域的关系图
这三个域相辅相成,构成了离散信号与系统分析的基石:

1.4 基础例题解析
📝 例题 1:求单位冲激响应的 Z 变换
题目:已知某 LTI 系统的单位脉冲响应为 h[n]={2,0,−3,0,2}(假设起点为 n=0),求其 Z 变换 H(z)。
解析: 根据 Z 变换的定义,展开级数:
H(z)=∑n=04h[n]z−n
H(z)=h[0]z−0+h[1]z−1+h[2]z−2+h[3]z−3+h[4]z−4
代入序列值:
H(z)=2⋅z0+0⋅z−1−3⋅z−2+0⋅z−3+2⋅z−4
H(z)=2−3z−2+2z−4
💡 修正提示:原手写笔记中写成了 2δ(n)z0−3δ(n)z−2+2δ(n)z−4,在写出变换域多项式 H(z) 时,冲激函数 δ[n] 的系数已直接转化为多项式的各项系数,无需再保留 δ(n) 符号。
📝 例题 2:求已知序列的 Z 变换
题目:已知时域输入序列 x[n]={2,4,6,4,2}(自 n=0 开始),求其 Z 变换 X(z)。
解析:
X(z)=∑n=04x[n]z−n=2+4z−1+6z−2+4z−3+2z−4
题目:已知系统的 Z 变换多项式为:
X(z)=1−2z−1+3z−3−z−5
求其对应的时域离散序列 x[n]。
解析: 对照 Z 变换的标准级数展开式 X(z)=∑x[n]z−n,读出各项系数:
- x[0]=1(z0 的系数)
- x[1]=−2(z−1 的系数)
- x[2]=0(未出现 z−2 项)
- x[3]=3(z−3 的系数)
- x[4]=0(未出现 z−4 项)
- x[5]=−1(z−5 的系数)
因此,时域序列为:
x[n]={1,−2,0,3,0,−1}(n=0,1,2,3,4,5)
二、 Z 变换的性质与级联系统分析 (Properties & Cascade Systems)
2.1 延迟性质 (Delay Property)
若 x[n]↔X(z),则序列移位一期对应在 Z 域乘上 z−1:
x[n−1]↔z−1X(z)
-
单位延迟系统 (Unit Delay System): 输入为 x[n],输出为 y[n]=x[n−1]。 其系统函数(传递函数)为:
H(z)=X(z)Y(z)=z−1
其系统框图为:
x[n] -----> [ z⁻¹ ] -----> y[n]
2.2 卷积性质 (Convolution Property)
时域的离散卷积对应 Z 域的代数乘积:
y[n]=h[n]∗x[n]⟺Y(z)=H(z)⋅X(z)
📐 卷积性质证明 (Mathematical Proof):
已知 y[n]=∑k=−∞∞h[k]x[n−k],对其求 Z 变换:
Y(z)=∑n=−∞∞y[n]z−n=∑n=−∞∞[∑k=−∞∞h[k]x[n−k]]z−n
交换求和顺序:
Y(z)=∑k=−∞∞h[k][∑n=−∞∞x[n−k]z−n]
令 m=n−k,则 n=m+k,上式变为:
Y(z)=∑k=−∞∞h[k][∑m=−∞∞x[m]z−(m+k)]
Y(z)=∑k=−∞∞h[k]z−k⋅∑m=−∞∞x[m]z−m
Y(z)=H(z)⋅X(z)
证明完毕。
2.3 卷积例题分析(多项式乘积表格法)
📝 例题 4:利用 Z 变换计算系统响应
题目:已知输入信号 x[n] 与系统的单位脉冲响应 h[n] 分别为:
x[n]=δ[n−1]−δ[n−2]+δ[n−3]−δ[n−4]
h[n]=δ[n]+2δ[n−1]+3δ[n−2]+4δ[n−3]
求输出响应 y[n]=h[n]∗x[n]。
解析: 首先将时域信号转换至 Z 域:
X(z)=z−1−z−2+z−3−z−4
H(z)=1+2z−1+3z−2+4z−3
计算 Z 域乘积 Y(z)=X(z)⋅H(z)。我们可以利用多项式乘积表格(错位相加法)来进行高效计算:
| 乘数项 \ 系数对应 | z0 | z−1 | z−2 | z−3 | z−4 | z−5 | z−6 | z−7 |
|---|
| X(z) 的系数 | 0 | 1 | -1 | 1 | -1 | | | |
| 乘上 H(z) 的第一项 (1) | 0 | 1 | -1 | 1 | -1 | | | |
| 乘上 H(z) 的第二项 (2z−1) | | 0 | 2 | -2 | 2 | -2 | | |
| 乘上 H(z) 的第三项 (3z−2) | | | 0 | 3 | -3 | 3 | -3 | |
| 乘上 H(z) 的第四项 (4z−3) | | | | 0 | 4 | -4 | 4 | -4 |
| 列相加结果 Y(z) | 0 | 1 | 1 | 2 | 2 | -3 | 1 | -4 |
通过对列进行求和,我们直接得出 Y(z) 每一项的系数:
Y(z)=z−1+z−2+2z−3+2z−4−3z−5+z−6−4z−7
通过逆 Z 变换转换回时域:
y[n]={0,1,1,2,2,−3,1,−4}(n=0,1,…,7)
2.4 系统级联 (Cascaded Systems)
当两个线性时不变 (LTI) 系统串联接在一起时:
x[n] -----> [ H₁(z) ] -----> w[n] -----> [ H₂(z) ] -----> y[n]
等效的整体传递函数为两者的乘积:
H(z)=H1(z)⋅H2(z)
由于代数乘法满足交换律,串联系统的先后顺序可以任意调换(即 H1(z)H2(z)=H2(z)H1(z)),其总系统的特性保持不变。
📝 例题 5:求级联系统的等效系统方程
题目:已知级联系统由两个子系统构成,差分方程分别为: 子系统 1:w[n]=x[n]−x[n−1] 子系统 2:y[n]=w[n]+w[n−1] 求整个级联系统的系统函数 H(z) 以及时域差分方程。
解析:
-
方法一:Z 域分析法(推荐) 对两个子系统方程分别求 Z 变换:
W(z)=X(z)−z−1X(z)⟹H1(z)=X(z)W(z)=1−z−1
Y(z)=W(z)+z−1W(z)⟹H2(z)=W(z)Y(z)=1+z−1
等效传递函数为:
H(z)=H1(z)⋅H2(z)=(1−z−1)(1+z−1)=1−z−2
转换为时域差分方程:
X(z)Y(z)=1−z−2⟹Y(z)=X(z)−z−2X(z)
y[n]=x[n]−x[n−2]
-
方法二:时域代入法(互相印证) 将子系统 1 的方程代入子系统 2 中:
y[n]=w[n]+w[n−1]
y[n]=(x[n]−x[n−1])+(x[n−1]−x[n−2])
y[n]=x[n]−x[n−2]
两种方法结果完全一致。
三、 零点与极点及其物理意义 (Zeros & Poles)
在 Z 域中,我们可以通过系统函数 H(z) 的零极点分布来直观分析系统的特性。
3.1 零点 (Zeros)
使系统传递函数值为 0 的复数 z 值称为零点。即求解:
H(z)=0
3.2 极点 (Poles)
使系统传递函数值趋于无穷大(∞)的复数 z 值称为极点。即求解:
H(z)→∞⟺分母多项式=0
3.3 经典例题分析
📝 例题 6:求零极点并绘制零极点图
题目:已知某 LTI 系统:
H(z)=1−2z−1+2z−2−z−3
求该系统的所有零点与极点,并在复平面上绘制示意图。
解析:
-
求解零点: 令 H(z)=0:
1−2z−1+2z−2−z−3=0
对该多项式进行因式分解:
H(z)=(1−z−1)(1−z−1+z−2)=0
-
零点 1:1−z−1=0⟹z=1
-
零点 2, 3:1−z−1+z−2=0 为了方便计算,两边同乘 z2 得:
z2−z+1=0
由一元二次方程求根公式:
z=2−(−1)±(−1)2−4(1)(1)=21±j3=e±jπ/3
所以系统的 3 个零点为:
z=1,z=ejπ/3,z=e−jπ/3
-
求解极点: 为了寻找极点,我们将 H(z) 改写为带有正次方幂的有理分式形式:
H(z)=1−z2+z22−z31=z3z3−2z2+2z−1
令分母为零:z3=0,解得 z=0(三重根)。 因此,系统在原点处有 3 个极点:
p1=p2=p3=0
-
零极点图 (Pole-Zero Plot): 在复平面(Z 平面)上,零点用 ∘ 表示,极点用 × 表示,单位圆 ∣z∣=1 是一条重要的参考边界:

💡 核心答疑:如何用极点和零点来直观观察系统响应与发散(稳定性)?
你提到手写笔记中关于这一块有些疑惑,其实可以用以下两点来非常直观地理解:
1. 极点决定系统的“稳定性”(系统会不会发散)
- 物理本质:极点代表系统的自然共振频率。在时域中,如果系统极点 pk 的模大于 1(∣pk∣>1,即极点落在单位圆外部),那么该系统对应的脉冲响应会随着时间呈指数级增长 h[n]∝pkn,导致系统发散(不稳定)。
- 稳定性充要条件:因果 LTI 系统稳定的充要条件是,所有的极点都必须位于单位圆的内部(即 ∣pk∣<1)。
- 本题分析:上面的例题中,所有极点都位于原点 z=0<1,所以它是一个有限长冲激响应(FIR)系统,FIR 系统没有分母(或者说极点全在原点),因此绝对稳定,绝不发散。
2. 零点和极点共同决定系统的“频率响应”(决定是高通/低通/带通)
- 几何视角:当我们计算频率响应 H(ejω^) 时,我们实际上是让复变量 z 沿着单位圆滑动(其对应的角度就是数字角频率 ω^)。
- 零点的作用(消减):当单位圆上的滑动点靠近某个零点时,系统在该频率处的响应会受到强烈抑制。如果零点正好落在单位圆上(如 z=ejπ/3),那么当频率 ω^=π/3 时,频率响应增益刚好为 0(对应的频率信号被完全滤除)。
- 极点的作用(放大):如果系统有极点靠近单位圆,当单位圆上的滑动点滑到极点附近时,由于分母变得极小,系统在对应频率处的增益会产生一个巨大的共振峰值。

四、 FIR 滤波器设计 (FIR Filter Design)
4.1 核心设计思想:高通 vs 低通
- 低通滤波器 (LPF):我们希望低频(接近 ω^=0,即 z=1 附近)信号通过,而高频(接近 ω^=π,即 z=−1 附近)信号被滤除。因此,应该把零点放在高频区域,使高频处的增益为 0。
- 高通滤波器 (HPF):我们希望高频信号通过,低频信号被滤除。因此,应该把零点放在低频区域(如 z=1 处),使低频增益为 0。
💡 概念修正:在你的手写笔记 image_643110.jpg 中,标题写着“如何设计 high pass filter”,而下方写着“Reject completely 0.7π,0.8π,0.9π”。 事实上,因为 0.7π,0.8π,0.9π 属于高频成分,要把它们完全滤除(Reject),意味着让低频通过。所以这个例子实际设计的是一个低通滤波器 (Low-Pass Filter),而非高通。
4.2 案例分析:根据消减频率要求设计 FIR 滤波器
任务目标:
- 设计一个低通 FIR 滤波器,确定其系数 bk。
- 要求完全消除频率为 ω^=0.7π,0.8π,0.9π 的信号。
- 确定滤波器的长度和需要多少个系数 bk。
设计步骤 1:根据阻带需求确定基础零点
为了完全滤除 0.7π,0.8π,0.9π 三个角频率,系统必须在这三个位置拥有零点:
z1=ej0.7π,z2=ej0.8π,z3=ej0.9π
此时的基础系统函数为:
Hbase(z)=(z−ej0.7π)(z−ej0.8π)(z−ej0.9π)
设计步骤 2:添加共轭对称零点(实系数约束)
如果直接展开 Hbase(z),得到的滤波器系数 bk 会是复数,这在实际电路或程序中很难实现。为了保证系数全部为实数,必须引入对应的共轭对称零点:
z1∗=e−j0.7π,z2∗=e−j0.8π,z3∗=e−j0.9π
组合共轭对称项:
(z−ejθ)(z−e−jθ)=z2−(ejθ+e−jθ)z+e0=z2−2cos(θ)z+1
将三组共轭零点两两配对,得到修正后的多项式:
Hreal(z)=(z2−2cos(0.7π)z+1)(z2−2cos(0.8π)z+1)(z2−2cos(0.9π)z+1)
由于 cos(0.7π),cos(0.8π),cos(0.9π) 都是实数,由此展开得到的系数必然全为实数。
设计步骤 3:引入原点极点(因果性约束)
此时展开的 Hreal(z) 含有 z6,z5… 等正次方项。
-
物理意义:含有正次方项的系统在时域中表示为 y[n]=x[n+6]+…,这意味着系统需要用到未来的信号。这在实时处理系统中是无法实现的(非因果系统)。
-
解决方法:我们在原点处引入 6 个极点(即整体除以 z6),将其转化为因果系统:
H(z)=z6Hreal(z)=z−6Hreal(z)
H(z)=(1−2cos(0.7π)z−1+z−2)(1−2cos(0.8π)z−1+z−2)(1−2cos(0.9π)z−1+z−2)
4.3 最终设计结果
-
滤波器系统函数 H(z):
H(z)=∏i=13(1−2cos(θi)z−1+z−2)其中 θi∈{0.7π,0.8π,0.9π}
-
滤波器长度与系数数量: 因为最高的延迟项为 z−6(3 个二次多项式相乘),所以该 FIR 滤波器的阶数为:
M=6
所需的滤波器系数 bk 数量(即滤波器长度 L)为:
L=M+1=7 个系数 (b0,b1,b2,b3,b4,b5,b6)
-
系数计算方式: 将多项式全部展开后:
H(z)=b0+b1z−1+b2z−2+b3z−3+b4z−4+b5z−5+b6z−6
各系数对应时域差分方程:
y[n]=∑k=06bkx[n−k]