3. Z变换与离散系统分析

在数字信号处理(DSP)与FPGA硬件实现中,Z变换是分析离散时间系统(即数字滤波器、数字控制器等)的核心数学工具。与连续时间系统中的拉普拉斯变换相对应,Z变换将离散序列映射到复平面(Z平面),使得差分方程、卷积运算和系统特性分析转化为代数运算。对于FPGA工程师而言,理解Z变换不仅是推导传递函数的需要,更是将算法映射为硬件架构(如FIR/IIR滤波器、定点运算、流水线结构)前必须完成的理论验证。本节将系统梳理Z变换的定义、核心性质、系统函数、零极点分布与稳定性判据,并结合FPGA实现中的典型场景进行拆解。

Z变换与离散系统分析知识框架 Z变换定义与性质 • 双边/单边Z变换 • 线性、时移、尺度变换 • 卷积定理、初值/终值定理 • 收敛域(ROC)与因果性 • 差分方程 ↔ Z域代数方程 系统函数 H(z) 与零极点 • H(z) = Y(z)/X(z) = 零极点增益形式 • 零点:分子多项式根 → 增益为零 • 极点:分母多项式根 → 增益无穷 • 零极点图:Z平面可视化 • 频率响应:H(e^jω) 几何求值 稳定性判据与FPGA映射 • 因果系统稳定 ⇔ 全部极点 位于单位圆内 |p| < 1 • 边界稳定:|p| = 1 临界 • 硬件实现:系数量化、定点误差 • 极点偏移 → 稳定性裕度分析 Z平面单位圆与稳定性区域 Im Re 单位圆 |z|=1 极点p1 极点p2 零点z1 稳定性判据(因果系统): • 稳定:所有极点位于单位圆内(|p| < 1) • 临界稳定:极点位于单位圆上(|p| = 1) • 不稳定:任一极点位于单位圆外(|p| > 1) • 零点位置不影响稳定性,只影响频率响应形状

上图给出了本章的知识框架与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₂。

工程要点:在FPGA实现中,我们处理的数字信号均为因果序列(因为硬件只能处理当前及过去时刻的采样值),因此系统函数的ROC通常为 |z| > R 的形式。若ROC包含单位圆(|z|=1),则系统在频域上存在傅里叶变换,即系统的频率响应 H(e^{jω}) 有定义。

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) 同时具有零点和极点,对应无限冲激响应,结构上包含反馈回路,存在稳定性风险,需要重点分析极点位置。
FPGA实现提示:在硬件实现时,系统函数通常转换为差分方程或直接I型/直接II型结构。直接II型结构(典范型)使用最少的延迟单元(寄存器),适合资源受限的FPGA设计。但需要注意,高阶IIR滤波器直接实现时系数灵敏度高,容易因量化误差导致极点偏移,工程上常采用二阶节级联(SOS)或并联形式。

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ω})| 增大,形成谐振峰(通带)。
  • 极点越靠近单位圆(但仍在圆内),谐振峰越尖锐,系统选择性越好,但稳定性裕度越低。
风险提示:在FPGA定点实现中,滤波器系数经过量化后,实际极点位置会偏离理想值。若某个极点原本靠近单位圆(如 |p| = 0.99),量化后可能移动到单位圆外(|p| > 1),导致系统不稳定。因此,工程上通常要求极点距离单位圆至少保留 0.05~0.1 的裕量,或者采用更高精度的系数表示(如18位、24位定点)。

3.5 案例拆解:IIR陷波滤波器的FPGA实现与稳定性验证

下面通过一个实际工程案例,完整展示Z变换分析在FPGA信号处理硬件实现中的应用流程。

背景与约束:某雷达信号处理系统需要抑制50Hz工频干扰。系统采样率 f_s = 1000 Hz,要求设计一个数字陷波滤波器,陷波频率 f₀ = 50 Hz,3dB带宽 ≤ 5 Hz。FPGA选用Xilinx Artix-7系列,资源受限,要求使用二阶IIR滤波器结构,数据位宽16位。

设计步骤:

  1. Z域建模:采用双线性变换法从模拟陷波器原型转换得到数字域系统函数。二阶数字陷波器的标准形式为:
    H(z) = (1 - 2·cos(ω₀)·z^{-1} + z^{-2}) / (1 - 2·r·cos(ω₀)·z^{-1} + r²·z^{-2})
    其中 ω₀ = 2π·f₀/f_s = 0.1π,r 为极点半径,控制陷波带宽。取 r = 0.95,则带宽约为 3.2 Hz,满足要求。
  2. 零极点分析:零点位于单位圆上 z = e^{±jω₀},极点位于 z = r·e^{±jω₀} = 0.95·e^{±j0.1π}。计算得 |p| = 0.95 < 1,系统稳定,且距离单位圆有0.05的裕量。
  3. 系数计算与量化:展开分母多项式: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。
  4. 硬件实现与验证:在FPGA中实现直接II型结构,使用2个乘法器、4个加法器和2个延迟寄存器。编写Verilog代码后,在Vivado中进行行为仿真。输入叠加50Hz干扰的正弦信号,观察输出波形。仿真结果显示,50Hz分量被衰减约40dB,输出信号无明显失真。
  5. 稳定性复核:使用量化后的系数重新计算极点位置。量化后极点半径 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),每节独立控制极点位置,便于稳定性管理和调试。
总结复盘:Z变换为离散系统分析提供了统一的代数框架。在FPGA信号处理硬件实现中,掌握Z变换的核心价值在于:① 从差分方程快速推导系统函数,明确硬件结构;② 通过零极点图直观判断系统稳定性与频率响应特性;③ 在定点化之前预估量化误差对极点位置的影响,从而选择合适的系数位宽和滤波器结构。建议工程师在每次滤波器设计完成后,都执行一次“Z变换→零极点→稳定性→量化→再验证”的完整闭环流程,确保硬件实现与理论设计一致。