3. Z变换与离散系统分析
在数字信号处理(DSP)与FPGA硬件实现中,Z变换是分析离散时间系统(即数字滤波器、数字控制器等)的核心数学工具。与连续时间系统中的拉普拉斯变换相对应,Z变换将离散序列映射到复平面(Z平面),使得差分方程、卷积运算和系统特性分析转化为代数运算。对于FPGA工程师而言,理解Z变换不仅是推导传递函数的需要,更是将算法映射为硬件架构(如FIR/IIR滤波器、定点运算、流水线结构)前必须完成的理论验证。本节将系统梳理Z变换的定义、核心性质、系统函数、零极点分布与稳定性判据,并结合FPGA实现中的典型场景进行拆解。
上图给出了本章的知识框架与Z平面稳定性判据的可视化示意。在后续内容中,我们将逐一展开Z变换的数学定义、系统函数的推导方法、零极点与系统频率响应的关系,以及FPGA实现中稳定性分析与定点化处理的工程要点。
3.1 Z变换的定义与收敛域
Z变换是分析离散时间信号与系统的基础工具。对于离散序列 x[n],其双边Z变换定义为:
X(z) = Σ_{n=-∞}^{∞} x[n] · z^{-n}
其中 z 是复变量,可表示为 z = r·e^{jω}(r 为模,ω 为相角)。在实际DSP系统中,信号通常为因果序列(即 n < 0 时 x[n] = 0),此时采用单边Z变换:
X(z) = Σ_{n=0}^{∞} x[n] · z^{-n}
收敛域(Region of Convergence, ROC)是使上述级数收敛的 z 的取值范围。ROC是Z变换分析中不可忽略的部分,它决定了序列的因果性、稳定性以及逆Z变换的唯一性。对于有限长序列,ROC为整个Z平面(可能除去 z=0 或 z=∞);对于右边序列(因果序列),ROC为某个圆外区域 |z| > R;对于左边序列,ROC为圆内区域 |z| < R;对于双边序列,ROC为环形区域 R₁ < |z| < R₂。
3.2 Z变换的核心性质
Z变换的若干性质在系统分析中频繁使用,掌握这些性质可以大幅简化推导过程。下表总结了DSP中最常用的Z变换性质:
| 性质名称 | 时域表达式 | Z域表达式 | ROC变化 |
|---|---|---|---|
| 线性 | a·x₁[n] + b·x₂[n] | a·X₁(z) + b·X₂(z) | 至少为两者ROC交集 |
| 时移(右移) | x[n-k](k>0) | z^{-k}·X(z) | ROC不变(可能增加/去除z=0) |
| 时移(左移) | x[n+k](k>0) | z^{k}·X(z) | ROC不变(可能增加/去除z=∞) |
| Z域尺度变换 | a^n·x[n] | X(z/a) | ROC缩放 |a| 倍 |
| 时间反转 | x[-n] | X(1/z) | ROC取倒数 |
| 卷积定理 | x₁[n] * x₂[n] | X₁(z)·X₂(z) | 至少为两者ROC交集 |
| 初值定理 | x[0] | lim_{z→∞} X(z) | 若x[n]为因果序列 |
| 终值定理 | lim_{n→∞} x[n] | lim_{z→1} (z-1)·X(z) | 若(z-1)X(z)的极点均在单位圆内 |
其中,卷积定理是Z变换在系统分析中最重要的性质——它表明时域卷积对应Z域乘法。这意味着,在FPGA中实现一个数字滤波器时,我们可以将输入信号与滤波器冲激响应的卷积运算,转化为Z域中系统函数 H(z) 与输入X(z)的乘积,从而通过分析 H(z) 的结构来设计硬件架构。
3.3 系统函数与差分方程
对于一个线性时不变(LTI)离散系统,其输入输出关系可用N阶常系数线性差分方程描述:
Σ_{k=0}^{N} a_k · y[n-k] = Σ_{m=0}^{M} b_m · x[n-m]
对差分方程两边取Z变换,并利用时移性质,可得系统函数:
H(z) = Y(z)/X(z) = (Σ_{m=0}^{M} b_m · z^{-m}) / (Σ_{k=0}^{N} a_k · z^{-k})
将分子分母多项式进行因式分解,可得到零极点增益形式:
H(z) = K · [Π_{m=1}^{M} (1 - z_m · z^{-1})] / [Π_{k=1}^{N} (1 - p_k · z^{-1})]
其中 z_m 为零点,p_k 为极点,K 为增益常数。在FPGA实现中,系统函数直接决定了滤波器的硬件结构:
- FIR滤波器:H(z) 只有零点(所有极点位于 z=0),对应有限冲激响应,结构上为抽头延迟线加法器链,天然稳定。
- IIR滤波器:H(z) 同时具有零点和极点,对应无限冲激响应,结构上包含反馈回路,存在稳定性风险,需要重点分析极点位置。
3.4 零极点分布与系统稳定性
系统的稳定性是FPGA信号处理设计中的首要约束。对于因果LTI离散系统,其稳定的充要条件是:系统函数的全部极点必须位于Z平面的单位圆内,即所有 |p_k| < 1。这一判据的物理意义在于:当极点位于单位圆内时,系统的冲激响应 h[n] 随 n 增大而衰减至零,系统输出对有限输入产生有限响应。
零点的位置不影响稳定性,但深刻影响系统的频率响应形状。在Z平面上,频率响应 H(e^{jω}) 可以通过几何方法求得:从单位圆上的点 e^{jω} 到各零点的向量长度之积除以到各极点的向量长度之积,再乘以增益 K。具体而言:
|H(e^{jω})| = |K| · (Π|e^{jω} - z_m|) / (Π|e^{jω} - p_k|)
这意味着:
- 当频率 ω 接近某个零点时,该零点到单位圆的距离变小,|H(e^{jω})| 减小,形成陷波(阻带)。
- 当频率 ω 接近某个极点时,该极点到单位圆的距离变小,|H(e^{jω})| 增大,形成谐振峰(通带)。
- 极点越靠近单位圆(但仍在圆内),谐振峰越尖锐,系统选择性越好,但稳定性裕度越低。
3.5 案例拆解:IIR陷波滤波器的FPGA实现与稳定性验证
下面通过一个实际工程案例,完整展示Z变换分析在FPGA信号处理硬件实现中的应用流程。
背景与约束:某雷达信号处理系统需要抑制50Hz工频干扰。系统采样率 f_s = 1000 Hz,要求设计一个数字陷波滤波器,陷波频率 f₀ = 50 Hz,3dB带宽 ≤ 5 Hz。FPGA选用Xilinx Artix-7系列,资源受限,要求使用二阶IIR滤波器结构,数据位宽16位。
设计步骤:
- Z域建模:采用双线性变换法从模拟陷波器原型转换得到数字域系统函数。二阶数字陷波器的标准形式为:
其中 ω₀ = 2π·f₀/f_s = 0.1π,r 为极点半径,控制陷波带宽。取 r = 0.95,则带宽约为 3.2 Hz,满足要求。H(z) = (1 - 2·cos(ω₀)·z^{-1} + z^{-2}) / (1 - 2·r·cos(ω₀)·z^{-1} + r²·z^{-2}) - 零极点分析:零点位于单位圆上 z = e^{±jω₀},极点位于 z = r·e^{±jω₀} = 0.95·e^{±j0.1π}。计算得 |p| = 0.95 < 1,系统稳定,且距离单位圆有0.05的裕量。
- 系数计算与量化:展开分母多项式:1 - 2·0.95·cos(0.1π)·z^{-1} + 0.9025·z^{-2}。计算得 cos(0.1π) ≈ 0.9511,故分母系数为:a₁ = -2·0.95·0.9511 = -1.8071,a₂ = 0.9025。分子系数为:b₀ = 1,b₁ = -2·cos(0.1π) = -1.9021,b₂ = 1。将系数转换为Q15格式(16位定点,1位符号位,15位小数位):a₁_q15 = round(-1.8071 × 32768) = -59221,a₂_q15 = round(0.9025 × 32768) = 29573。
- 硬件实现与验证:在FPGA中实现直接II型结构,使用2个乘法器、4个加法器和2个延迟寄存器。编写Verilog代码后,在Vivado中进行行为仿真。输入叠加50Hz干扰的正弦信号,观察输出波形。仿真结果显示,50Hz分量被衰减约40dB,输出信号无明显失真。
- 稳定性复核:使用量化后的系数重新计算极点位置。量化后极点半径 r_q = sqrt(29573/32768) ≈ 0.9501,与理想值0.95偏差极小,仍在单位圆内,稳定性裕量充足。
结果对比与复盘:该设计在FPGA上实际运行,陷波频率实测为49.8Hz,与理论值偏差0.4%,主要源于系数量化误差。若采用18位系数,偏差可进一步缩小至0.1%以内。本案例表明,通过Z变换进行零极点设计,再结合定点量化分析,可以在FPGA上可靠地实现高性能数字滤波器。
3.6 常见误区与设计复盘
在Z变换与离散系统分析的学习和工程应用中,以下误区值得特别注意:
- 混淆ROC与稳定性:ROC包含单位圆是系统存在频率响应的条件,而稳定性要求所有极点位于单位圆内。对于因果系统,两者等价;但对于非因果系统,ROC在单位圆内也可能稳定(左边序列)。FPGA中处理的都是因果系统,但理解这一区别有助于避免理论推导错误。
- 忽略零点对系统的影响:零点不影响稳定性,但影响系统的相位响应和幅频响应形状。在FPGA实现中,零点位置决定了陷波频率的精确度,零点偏离单位圆会导致陷波深度不足。
- 定点量化后未重新验证稳定性:这是FPGA实现中最常见的工程失误。系数从浮点转为定点后,极点位置会偏移,必须重新计算极点位置并验证 |p| < 1。建议在仿真环境中加入定点模型(如使用Xilinx Fixed-Point工具或MATLAB Fixed-Point Designer)进行联合验证。
- 高阶系统直接实现:高阶IIR滤波器(N > 4)直接实现时,系数灵敏度极高,微小量化误差可能导致极点大幅偏移。工程上应分解为二阶节级联(SOS),每节独立控制极点位置,便于稳定性管理和调试。