数学变换

一、Z变换

1.1 什么是Z变换

如果你正在学数字滤波器(FIR / IIR),你一定见过这样的写法:

H(z)=1z110.7267z1H(z) = \frac{1 - z^{-1}}{1 - 0.7267 \cdot z^{-1}}

然后有人告诉你”令 z=ejωz = e^{j\omega} 就能得到频率响应”。

你可能会想:zz 到底是什么?z1z^{-1} 为什么代表”延迟一拍”?为什么做了 Z 变换就能直接看出频率特性?这个公式是怎么来的,又是怎么用的?


1.2 为什么需要 Z 变换

1.2.1 一个具体的问题

假设你设计了一个简单的一阶 IIR 低通滤波器(当前输入和历史输出各取一半做平均,直觉上就是在”平滑”信号,抑制快速变化的高频成分):

y[n]=0.5x[n]+0.5y[n1]y[n] = 0.5 \cdot x[n] + 0.5 \cdot y[n-1]

每个采样周期,输出 = 当前输入的一半 + 上一次输出的一半。采样率 fs=40f_s = 40 MHz。

现在问你三个问题:

  1. 这个低通滤波器的截止频率是多少?
  2. 在 2 MHz 处信号衰减了多少 dB?
  3. 如果我想把截止频率从当前值改到 8 MHz,系数应该怎么调?

用差分方程你一个都答不了。 差分方程只告诉你”下一拍的输出怎么从当前输入和历史值算出来”,它是时域的、逐拍的、局部的。要回答频率相关的问题,你需要一个工具把时域的递推关系变成频域的代数关系。

这个工具就是 Z 变换。

1.2.2 连续世界的类比:拉普拉斯变换

如果你学过自动控制或模拟电路,你知道连续时间系统用拉普拉斯变换来分析。一个 RC 低通滤波器的微分方程:

RCdy(t)dt+y(t)=x(t)RC \cdot \frac{dy(t)}{dt} + y(t) = x(t)

做拉普拉斯变换后变成:

H(s)=11+sRCH(s) = \frac{1}{1 + sRC}

微分变成了乘 ss,时域的微分方程变成了 ss 域的代数方程,分析和设计都简单得多。

Z 变换就是拉普拉斯变换在离散时间世界的对应物。 拉普拉斯变换处理连续信号(电压、电流随时间连续变化),Z 变换处理离散信号(采样数据、数字系统中的数值序列)。拉普拉斯变换把微分方程变成 ss 的多项式,Z 变换把差分方程变成 zz 的多项式。

连续时间 离散时间
信号表示 x(t)x(t) x[n]x[n]
变换工具 拉普拉斯变换 X(s)X(s) Z 变换 X(z)X(z)
核心变量 s=σ+jωs = \sigma + j\omega z=rejωz = re^{j\omega}
微分/差分 ddts\frac{d}{dt} \leftrightarrow s 延迟一拍 z1\leftrightarrow z^{-1}
稳定性判据 ss 左半平面 zz 单位圆内
频率响应 s=jωs = j\omega z=ejωz = e^{j\omega}

1.2.3 Z 变换能做什么

一句话总结:Z 变换把”逐拍递推”的差分方程变成”一步到位”的代数方程,让你可以:

  • 直接看出滤波器的频率响应(通带、阻带、截止频率)
  • 判断系统是否稳定(极点是否在单位圆内)
  • 用代数方法设计滤波器系数(而不是靠猜)
  • 把复杂的卷积运算变成简单的乘法

1.3 Z 变换的定义

1.3.1 正式定义

对于一个离散时间序列 x[n]x[n]n=0,1,2,n = 0, 1, 2, \ldots),它的(单边)Z 变换定义为:

X(z)=Z{x[n]}=n=0x[n]znX(z) = \mathcal{Z}\{x[n]\} = \sum_{n=0}^{\infty} x[n] \cdot z^{-n}

其中 zz 是一个复数变量

展开写就是:

X(z)=x[0]z0+x[1]z1+x[2]z2+x[3]z3+X(z) = x[0] \cdot z^{0} + x[1] \cdot z^{-1} + x[2] \cdot z^{-2} + x[3] \cdot z^{-3} + \cdots =x[0]+x[1]z+x[2]z2+x[3]z3+= x[0] + \frac{x[1]}{z} + \frac{x[2]}{z^2} + \frac{x[3]}{z^3} + \cdots

看起来就是把序列的每个值乘以 znz^{-n} 作为权重然后加起来。z1z^{-1} 代表”延迟一个采样周期”,z2z^{-2} 代表”延迟两个”,以此类推。

直觉理解:Z 变换就像是给序列中的每个采样值贴一个”时间标签” znz^{-n},然后全部求和。z1z^{-1} 的含义是”这个值比当前晚了一拍”。

如果 x[n]x[n] 对所有 nn(包括负数)都有定义,则使用双边 Z 变换

X(z)=n=x[n]znX(z) = \sum_{n=-\infty}^{\infty} x[n] \cdot z^{-n}

工程中处理因果系统(输出不依赖未来输入)时,单边 Z 变换就够用了。

1.3.2 zz 是什么

zz 是一个复数,可以写成极坐标形式: z=rejωz = r \cdot e^{j\omega}

其中 rr 是模(到原点的距离),ω\omega 是角度(归一化角频率)。

r=1r = 1 时,z=ejωz = e^{j\omega} 落在复平面的单位圆上。此时 Z 变换退化为离散时间傅里叶变换(DTFT)

X(ejω)=n=0x[n]ejnωX(e^{j\omega}) = \sum_{n=0}^{\infty} x[n] \cdot e^{-jn\omega}

这就是为什么”令 z=ejωz = e^{j\omega}“就能得到频率响应——你把 Z 变换限制在单位圆上,看的就是系统对不同频率的响应。

1.3.3 收敛域(ROC)

Z 变换的级数不是对所有 zz 都收敛的。使级数收敛的 zz 值的集合叫做收敛域(Region of Convergence, ROC)

例如序列 x[n]=anu[n]x[n] = a^n \cdot u[n]u[n]u[n] 是单位阶跃,n0n \geq 0 时为 1,n<0n < 0 时为 0):

X(z)=n=0anzn=n=0(az)nX(z) = \sum_{n=0}^{\infty} a^n \cdot z^{-n} = \sum_{n=0}^{\infty} \left(\frac{a}{z}\right)^n

这是一个等比级数,收敛条件是 a/z<1|a/z| < 1,即 z>a|z| > |a|

X(z)=11az1=zza,z>aX(z) = \frac{1}{1 - a \cdot z^{-1}} = \frac{z}{z - a}, \quad |z| > |a|

ROC 是复平面上以 a|a| 为半径的圆的外部。对于因果稳定系统,ROC 必须包含单位圆(z=1|z| = 1),这要求 a<1|a| < 1,也就是极点在单位圆内。


1.4 常见信号的 Z 变换推导

以下逐一推导工程中最常用的几个 Z 变换对,每一步都写清楚。

1.4.1 单位冲激 δ[n]\delta[n]

x[n]=δ[n]={1,n=00,n0x[n] = \delta[n] = \begin{cases} 1, & n = 0 \\ 0, & n \neq 0 \end{cases}

代入定义:

X(z)=n=0δ[n]zn=δ[0]z0+δ[1]z1+=11+0+0+=1X(z) = \sum_{n=0}^{\infty} \delta[n] \cdot z^{-n} = \delta[0] \cdot z^{0} + \delta[1] \cdot z^{-1} + \cdots = 1 \cdot 1 + 0 + 0 + \cdots = 1 δ[n]Z1,ROC: 全 z 平面\boxed{\delta[n] \overset{\mathcal{Z}}{\longleftrightarrow}1, \quad \text{ROC: 全 } z \text{ 平面}}

冲激信号的 Z 变换是常数 1,这很合理——冲激包含所有频率成分且权重相等。

1.4.2 延迟冲激 δ[nn0]\delta[n - n_0]

x[n]=δ[nn0]x[n] = \delta[n - n_0]

代入定义(只有 n=n0n = n_0 时非零):

X(z)=n=0δ[nn0]zn=1zn0=zn0X(z) = \sum_{n=0}^{\infty} \delta[n - n_0] \cdot z^{-n} = 1 \cdot z^{-n_0} = z^{-n_0} δ[nn0]Zzn0\boxed{\delta[n - n_0] \overset{\mathcal{Z}}{\longleftrightarrow} z^{-n_0}}

这是 Z 变换中最重要的结论之一:延迟 n0n_0 拍就是乘以 zn0z^{-n_0}。这就是为什么 z1z^{-1} 代表”延迟一拍”——它不是一个数学巧合,而是直接从定义推出来的。

比如一个数字系统中 y[n]=x[n1]y[n] = x[n-1](输出等于输入延迟一拍),对应的 Z 域表达就是 Y(z)=z1X(z)Y(z) = z^{-1} \cdot X(z)

1.4.3 单位阶跃 u[n]u[n]

x[n]=u[n]={1,n00,n<0x[n] = u[n] = \begin{cases} 1, & n \geq 0 \\ 0, & n < 0 \end{cases}

代入定义:

X(z)=n=01zn=1+z1+z2+z3+X(z) = \sum_{n=0}^{\infty} 1 \cdot z^{-n} = 1 + z^{-1} + z^{-2} + z^{-3} + \cdots

这是首项为 1、公比为 z1z^{-1} 的等比级数,收敛条件 z1<1|z^{-1}| < 1z>1|z| > 1

X(z)=11z1=zz1,z>1X(z) = \frac{1}{1 - z^{-1}} = \frac{z}{z - 1}, \quad |z| > 1 u[n]Z11z1=zz1,z>1\boxed{u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{1}{1 - z^{-1}} = \frac{z}{z - 1}, \quad |z| > 1}

注意极点在 z=1z = 1,ROC 是单位圆外部。直觉上,阶跃信号包含直流分量(频率为 0),而 z=1z = 1 对应频率 0(ej0=1e^{j \cdot 0} = 1),极点在直流频率上说明系统在直流处有无穷增益——确实,阶跃信号的”能量”不断累积。

1.4.4 指数序列 anu[n]a^n \cdot u[n]

x[n]=anu[n],n0x[n] = a^n \cdot u[n], \quad n \geq 0

代入定义:

X(z)=n=0anzn=n=0(az1)nX(z) = \sum_{n=0}^{\infty} a^n \cdot z^{-n} = \sum_{n=0}^{\infty} (a z^{-1})^n

等比级数,收敛条件 az1<1|az^{-1}| < 1z>a|z| > |a|

anu[n]Z11az1=zza,z>a\boxed{a^n \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{1}{1 - a z^{-1}} = \frac{z}{z - a}, \quad |z| > |a|}

这是最基础的变换对,后面很多变换都是它的变体。

a=1a = 1 时退化为阶跃信号的 Z 变换 zz1\frac{z}{z-1}。当 a<1|a| < 1 时序列收敛于 0(衰减指数),当 a>1|a| > 1 时序列发散(增长指数)。

1.4.5 nanu[n]n \cdot a^n \cdot u[n](斜坡 × 指数)

利用 Z 域微分性质:如果 x[n]ZX(z)x[n] \overset{\mathcal{Z}}{\longleftrightarrow} X(z),则 nx[n]ZzdX(z)dzn \cdot x[n] \overset{\mathcal{Z}}{\longleftrightarrow} -z \frac{dX(z)}{dz}

已知 anu[n]Zzzaa^n \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{z}{z-a},求导:

ddz(zza)=(za)1z1(za)2=a(za)2\frac{d}{dz}\left(\frac{z}{z-a}\right) = \frac{(z-a) \cdot 1 - z \cdot 1}{(z-a)^2} = \frac{-a}{(z-a)^2}

乘以 z-z

za(za)2=az(za)2-z \cdot \frac{-a}{(z-a)^2} = \frac{az}{(z-a)^2} nanu[n]Zaz(za)2=az1(1az1)2,z>a\boxed{n \cdot a^n \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{az}{(z-a)^2} = \frac{az^{-1}}{(1-az^{-1})^2}, \quad |z| > |a|}

a=1a = 1 时得到斜坡序列的 Z 变换:nu[n]Zz(z1)2n \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{z}{(z-1)^2}

1.4.6 正弦序列 sin(ω0n)u[n]\sin(\omega_0 n) \cdot u[n]

利用欧拉公式:sin(ω0n)=ejω0nejω0n2j\sin(\omega_0 n) = \frac{e^{j\omega_0 n} - e^{-j\omega_0 n}}{2j}

已知 anu[n]Zzzaa^n \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{z}{z-a},令 a=ejω0a = e^{j\omega_0}a=ejω0a = e^{-j\omega_0}

Z{sin(ω0n)u[n]}=12j(zzejω0zzejω0)\mathcal{Z}\{\sin(\omega_0 n) \cdot u[n]\} = \frac{1}{2j}\left(\frac{z}{z - e^{j\omega_0}} - \frac{z}{z - e^{-j\omega_0}}\right)

通分合并:

=12jz(zejω0)z(zejω0)(zejω0)(zejω0)= \frac{1}{2j} \cdot \frac{z(z - e^{-j\omega_0}) - z(z - e^{j\omega_0})}{(z - e^{j\omega_0})(z - e^{-j\omega_0})}

分子化简:

z(zejω0z+ejω0)=z(ejω0ejω0)=z2jsinω0z(z - e^{-j\omega_0} - z + e^{j\omega_0}) = z(e^{j\omega_0} - e^{-j\omega_0}) = z \cdot 2j\sin\omega_0

分母化简(利用 (zejθ)(zejθ)=z22zcosθ+1(z-e^{j\theta})(z-e^{-j\theta}) = z^2 - 2z\cos\theta + 1):

12j2jzsinω0z22zcosω0+1=zsinω0z22zcosω0+1\frac{1}{2j} \cdot \frac{2jz\sin\omega_0}{z^2 - 2z\cos\omega_0 + 1} = \frac{z\sin\omega_0}{z^2 - 2z\cos\omega_0 + 1} sin(ω0n)u[n]Zzsinω0z22zcosω0+1,z>1\boxed{\sin(\omega_0 n) \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{z \sin\omega_0}{z^2 - 2z\cos\omega_0 + 1}, \quad |z| > 1}

1.4.7 余弦序列 cos(ω0n)u[n]\cos(\omega_0 n) \cdot u[n]

类似推导,利用 cos(ω0n)=ejω0n+ejω0n2\cos(\omega_0 n) = \frac{e^{j\omega_0 n} + e^{-j\omega_0 n}}{2}

cos(ω0n)u[n]Zz(zcosω0)z22zcosω0+1,z>1\boxed{\cos(\omega_0 n) \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{z(z - \cos\omega_0)}{z^2 - 2z\cos\omega_0 + 1}, \quad |z| > 1}

1.4.8 衰减正弦 rnsin(ω0n)u[n]r^n \sin(\omega_0 n) \cdot u[n]

在正弦序列的基础上把 ejω0e^{j\omega_0} 替换为 rejω0re^{j\omega_0}(模变成 rr),等价于把极点从单位圆上拉到半径 rr 的圆上:

rnsin(ω0n)u[n]Zrzsinω0z22rzcosω0+r2,z>r\boxed{r^n \sin(\omega_0 n) \cdot u[n] \overset{\mathcal{Z}}{\longleftrightarrow} \frac{rz\sin\omega_0}{z^2 - 2rz\cos\omega_0 + r^2}, \quad |z| > r}

r<1r < 1 时序列衰减,极点在单位圆内,系统稳定。


1.5. Z 变换的性质

以下是 Z 变换最重要的性质,每条都配有推导或直觉解释。

1.5.1 线性

a1x1[n]+a2x2[n]Za1X1(z)+a2X2(z)a_1 x_1[n] + a_2 x_2[n] \overset{\mathcal{Z}}{\longleftrightarrow} a_1 X_1(z) + a_2 X_2(z)

直接从定义中求和的线性性得到。这意味着复杂系统可以拆成简单子系统分别变换再相加。

1.5.2 时移(延迟)

右移(延迟 n0n_0 拍,因果信号):

x[nn0]Zzn0X(z)x[n - n_0] \overset{\mathcal{Z}}{\longleftrightarrow} z^{-n_0} \cdot X(z)

推导:m=nn0m = n - n_0

Z{x[nn0]}=n=0x[nn0]zn=zn0m=n0x[m]zm\mathcal{Z}\{x[n-n_0]\} = \sum_{n=0}^{\infty} x[n-n_0] \cdot z^{-n} = z^{-n_0} \sum_{m=-n_0}^{\infty} x[m] \cdot z^{-m}

对于因果信号(x[m]=0,m<0x[m] = 0, m < 0),求和下限可以改为 0:

=zn0X(z)= z^{-n_0} \cdot X(z)

这是 Z 变换最核心的性质。 时域中的延迟操作,在 Z 域中变成乘以 zn0z^{-n_0}。这就是为什么差分方程可以直接替换:看到 y[n1]y[n-1] 就写 z1Y(z)z^{-1}Y(z),看到 x[n2]x[n-2] 就写 z2X(z)z^{-2}X(z)

左移(超前 n0n_0 拍):

x[n+n0]Zzn0[X(z)k=0n01x[k]zk]x[n + n_0] \overset{\mathcal{Z}}{\longleftrightarrow} z^{n_0}\left[X(z) - \sum_{k=0}^{n_0-1}x[k]z^{-k}\right]

多出来的求和项是因为左移会把原来 n<0n < 0 的部分”移进来”,需要减掉初始条件。工程中因果系统很少用到左移。

1.5.3 Z 域尺度变换

z0nx[n]ZX(zz0)z_0^n \cdot x[n] \overset{\mathcal{Z}}{\longleftrightarrow} X\left(\frac{z}{z_0}\right)

推导:

Z{z0nx[n]}=n=0x[n]z0nzn=n=0x[n](zz0)n=X(zz0)\mathcal{Z}\{z_0^n x[n]\} = \sum_{n=0}^{\infty} x[n] \cdot z_0^n \cdot z^{-n} = \sum_{n=0}^{\infty} x[n] \cdot \left(\frac{z}{z_0}\right)^{-n} = X\left(\frac{z}{z_0}\right)

直觉:乘以 z0nz_0^n 相当于把 Z 平面上的极点和零点都按 z0z_0 缩放。如果 z0=ejω0z_0 = e^{j\omega_0},就是频谱搬移(调制)。

1.5.4 时域反转

x[n]ZX(z1)x[-n] \overset{\mathcal{Z}}{\longleftrightarrow} X(z^{-1})

zz 替换为 z1z^{-1},相当于把单位圆内外翻转。如果原信号因果(只在 n0n \geq 0 有值),反转后变成反因果(只在 n0n \leq 0 有值),ROC 也随之反转。

1.5.5 Z 域微分

nx[n]ZzdX(z)dzn \cdot x[n] \overset{\mathcal{Z}}{\longleftrightarrow} -z \frac{dX(z)}{dz}

推导:X(z)=x[n]znX(z) = \sum x[n] z^{-n} 关于 zz 求导:

dX(z)dz=n=0x[n](n)zn1=1zn=0nx[n]zn\frac{dX(z)}{dz} = \sum_{n=0}^{\infty} x[n] \cdot (-n) \cdot z^{-n-1} = -\frac{1}{z}\sum_{n=0}^{\infty} n \cdot x[n] \cdot z^{-n}

因此:

zdX(z)dz=n=0nx[n]zn=Z{nx[n]}-z\frac{dX(z)}{dz} = \sum_{n=0}^{\infty} n \cdot x[n] \cdot z^{-n} = \mathcal{Z}\{n \cdot x[n]\}

这个性质在之前推导 nann \cdot a^n 的 Z 变换时已经用过了。

1.5.6 卷积定理

x1[n]x2[n]ZX1(z)X2(z)x_1[n] * x_2[n] \overset{\mathcal{Z}}{\longleftrightarrow} X_1(z) \cdot X_2(z)

这是 Z 变换最强大的性质。 时域中的卷积(NN 次乘加)在 Z 域中变成了简单的乘法。

FIR 滤波器的输出就是输入和系数的卷积:

y[n]=h[n]x[n]=k=0Nh[k]x[nk]y[n] = h[n] * x[n] = \sum_{k=0}^{N} h[k] \cdot x[n-k]

Z 变换后:

Y(z)=H(z)X(z)Y(z) = H(z) \cdot X(z)

所以 H(z)=Y(z)/X(z)H(z) = Y(z) / X(z) 就是系统的传递函数,完全由系数决定,与输入无关。

1.5.7 初值定理和终值定理

初值定理: x[0]=limzX(z)x[0] = \lim_{z \to \infty} X(z)

终值定理: 如果 (1z1)X(z)(1-z^{-1})X(z) 的极点都在单位圆内,则 limnx[n]=limz1(1z1)X(z)\lim_{n \to \infty} x[n] = \lim_{z \to 1} (1-z^{-1})X(z)

终值定理可以快速判断系统的稳态输出,不需要做逆变换。


1.6 Z 变换性质汇总表

序号 性质 时域信号 Z 变换
1 线性 a1x1[n]+a2x2[n]a_1 x_1[n] + a_2 x_2[n] a1X1(z)+a2X2(z)a_1 X_1(z) + a_2 X_2(z)
2 时移(右移/延迟) x[nn0]x[n - n_0] zn0X(z)z^{-n_0} X(z)
3 时移(左移/超前) x[n+n0]x[n + n_0] zn0[X(z)k=0n01x[k]zk]z^{n_0}\left[X(z) - \sum_{k=0}^{n_0-1}x[k]z^{-k}\right]
4 Z 域尺度 z0nx[n]z_0^{n} x[n] X(zz0)X\left(\dfrac{z}{z_0}\right)
5 时域反转 x[n]x[-n] X(z1)X(z^{-1})
6 Z 域微分 nx[n]n \cdot x[n] zdX(z)dz-z \dfrac{dX(z)}{dz}
7 卷积 x1[n]x2[n]x_1[n] * x_2[n] X1(z)X2(z)X_1(z) \cdot X_2(z)
8 初值 x[0]x[0] limzX(z)\lim_{z \to \infty} X(z)
9 终值 limnx[n]\lim_{n \to \infty} x[n] limz1(1z1)X(z)\lim_{z \to 1}(1-z^{-1})X(z)

1.7 常见 Z 变换对汇总表

序号 时域序列 x[n]x[n]n0n \geq 0 Z 变换 X(z)X(z) ROC
1 δ[n]\delta[n] 11 全平面
2 δ[nn0]\delta[n - n_0] zn0z^{-n_0} z0z \neq 0
3 u[n]u[n] zz1\dfrac{z}{z-1} z>1\lvert z\rvert > 1
4 anu[n]a^n u[n] zza\dfrac{z}{z-a} z>a\lvert z\rvert > \lvert a\rvert
5 nu[n]n \cdot u[n] z(z1)2\dfrac{z}{(z-1)^2} z>1\lvert z\rvert > 1
6 nanu[n]n \cdot a^n u[n] az(za)2\dfrac{az}{(z-a)^2} z>a\lvert z\rvert > \lvert a\rvert
7 sin(ω0n)u[n]\sin(\omega_0 n) \cdot u[n] zsinω0z22zcosω0+1\dfrac{z\sin\omega_0}{z^2 - 2z\cos\omega_0 + 1} z>1\lvert z\rvert > 1
8 cos(ω0n)u[n]\cos(\omega_0 n) \cdot u[n] z(zcosω0)z22zcosω0+1\dfrac{z(z - \cos\omega_0)}{z^2 - 2z\cos\omega_0 + 1} z>1\lvert z\rvert > 1
9 rnsin(ω0n)u[n]r^n\sin(\omega_0 n) \cdot u[n] rzsinω0z22rzcosω0+r2\dfrac{rz\sin\omega_0}{z^2 - 2rz\cos\omega_0 + r^2} z>r\lvert z\rvert > r
10 rncos(ω0n)u[n]r^n\cos(\omega_0 n) \cdot u[n] z(zrcosω0)z22rzcosω0+r2\dfrac{z(z - r\cos\omega_0)}{z^2 - 2rz\cos\omega_0 + r^2} z>r\lvert z\rvert > r

1.8 Z 变换的实际应用:回到滤波器

现在回到开头的问题,看看 Z 变换是怎么把”不可解”变成”一步到位”的。

1.8.1 从差分方程到传递函数

这里用一个一阶 IIR 低通滤波器作为例子来演示 Z 变换的完整流程。之所以选低通而不是高通,是因为低通的结构最简单,只有一个极点、没有零点,推导过程最清晰。后面 7.5 节会再分析一阶高通的例子,两者的核心区别在于传递函数的分子是否包含 (1z1)(1 - z^{-1}) 因子:

低通例子(7.1~7.2 节) 高通例子(7.5 节)
差分方程 y[n]=0.5x[n]+0.5y[n ⁣ ⁣1]y[n] = 0.5 \cdot x[n] + 0.5 \cdot y[n\!-\!1] y[n]=a0(y[n ⁣ ⁣1]+x[n]x[n ⁣ ⁣1])y[n] = a_0(y[n\!-\!1] + x[n] - x[n\!-\!1])
传递函数 H(z)=0.510.5z1H(z) = \frac{0.5}{1 - 0.5z^{-1}} H(z)=a0(1z1)1a0z1H(z) = \frac{a_0(1 - z^{-1})}{1 - a_0 z^{-1}}
分子零点 无(分子是常数) z=1z = 1(直流处)
直流增益 1(直流全通) 0(直流完全抑制)
高频增益 衰减(频率越高越小) 接近 1(高频全通)

高通比低通多了一个 (1z1)(1 - z^{-1}) 因子,它在 z=1z = 1(直流,频率 = 0)处引入零点,把直流完全压到 0。(1z1)(1 - z^{-1}) 在时域就是 x[n]x[n1]x[n] - x[n-1](一阶差分),天然具有高通特性。低通没有这个因子,所以直流无衰减地通过。

理解了低通的推导过程后,高通只是在分子上多乘一项,方法完全一样。

现在开始推导。开头那个一阶 IIR 低通滤波器:

y[n]=0.5x[n]+0.5y[n1]y[n] = 0.5 \cdot x[n] + 0.5 \cdot y[n-1]

对两边做 Z 变换。利用线性性和时移性质(y[n1]Zz1Y(z)y[n-1] \overset{\mathcal{Z}}{\longleftrightarrow} z^{-1}Y(z)):

Y(z)=0.5X(z)+0.5z1Y(z)Y(z) = 0.5 \cdot X(z) + 0.5 \cdot z^{-1} \cdot Y(z)

Y(z)Y(z) 移到左边:

Y(z)0.5z1Y(z)=0.5X(z)Y(z) - 0.5 z^{-1} Y(z) = 0.5 X(z) Y(z)(10.5z1)=0.5X(z)Y(z)(1 - 0.5 z^{-1}) = 0.5 X(z) H(z)=Y(z)X(z)=0.510.5z1H(z) = \frac{Y(z)}{X(z)} = \frac{0.5}{1 - 0.5 z^{-1}}

差分方程变成了关于 zz 的代数分式。 分子的零点决定了哪些频率被完全抑制,分母的极点决定了哪些频率被放大。

1.8.2 求频率响应(以 fs=40f_s = 40 MHz 为例)

z=ejωz = e^{j\omega},其中 ω=2πf/fs\omega = 2\pi f / f_s

H(ejω)=0.510.5ejωH(e^{j\omega}) = \frac{0.5}{1 - 0.5 \cdot e^{-j\omega}}

分母展开为实部和虚部:

10.5ejω=(10.5cosω)+j(0.5sinω)1 - 0.5 \cdot e^{-j\omega} = (1 - 0.5\cos\omega) + j(0.5\sin\omega)

取模:

10.5ejω=(10.5cosω)2+(0.5sinω)2|1 - 0.5 \cdot e^{-j\omega}| = \sqrt{(1 - 0.5\cos\omega)^2 + (0.5\sin\omega)^2}

展开括号:

=1cosω+0.25cos2ω+0.25sin2ω= \sqrt{1 - \cos\omega + 0.25\cos^2\omega + 0.25\sin^2\omega}

利用 cos2ω+sin2ω=1\cos^2\omega + \sin^2\omega = 1 合并:

=1cosω+0.25=1.25cosω= \sqrt{1 - \cos\omega + 0.25} = \sqrt{1.25 - \cos\omega}

所以幅度响应为:

H(ejω)=0.51.25cosω|H(e^{j\omega})| = \frac{0.5}{\sqrt{1.25 - \cos\omega}}

幅度响应的平方(后面解方程用得到):

H(ejω)2=0.251.25cosω|H(e^{j\omega})|^2 = \frac{0.25}{1.25 - \cos\omega}

现在逐个回答开头的三个问题。


问题 1:截止频率是多少?

先算直流增益。ω=0\omega = 0ejω=e0=1e^{-j\omega} = e^0 = 1

H(ej0)=0.510.51=0.50.5=1(0 dB)|H(e^{j \cdot 0})| = \frac{0.5}{|1 - 0.5 \cdot 1|} = \frac{0.5}{0.5} = 1 \quad (0 \text{ dB})

-3 dB 截止频率的定义是幅度平方降到直流时的一半,即解 H2=0.5|H|^2 = 0.5

0.251.25cosωc=0.5\frac{0.25}{1.25 - \cos\omega_c} = 0.5 1.25cosωc=0.250.5=0.51.25 - \cos\omega_c = \frac{0.25}{0.5} = 0.5 cosωc=0.75\cos\omega_c = 0.75 ωc=arccos(0.75)=0.7227 rad\omega_c = \arccos(0.75) = 0.7227 \text{ rad}

换算成实际频率:

fc=ωcfs2π=0.7227×40×1062π=28.908×1066.28324.60 MHzf_c = \frac{\omega_c \cdot f_s}{2\pi} = \frac{0.7227 \times 40 \times 10^6}{2\pi} = \frac{28.908 \times 10^6}{6.2832} \approx 4.60 \text{ MHz}

结论:fs=40f_s = 40 MHz 时,截止频率约为 4.60 MHz


问题 2:2 MHz 处衰减多少?

先算归一化角频率:

ω=2π×2×10640×106=2π20=0.3142 rad\omega = \frac{2\pi \times 2 \times 10^6}{40 \times 10^6} = \frac{2\pi}{20} = 0.3142 \text{ rad} cos(0.3142)=0.9511\cos(0.3142) = 0.9511

代入幅度公式:

H=0.51.250.9511=0.50.2989=0.50.5467=0.9145|H| = \frac{0.5}{\sqrt{1.25 - 0.9511}} = \frac{0.5}{\sqrt{0.2989}} = \frac{0.5}{0.5467} = 0.9145

换算成 dB:

A(2MHz)=20log10(0.9145)=20×(0.0388)=0.78 dBA(2\text{MHz}) = 20 \cdot \log_{10}(0.9145) = 20 \times (-0.0388) = -0.78 \text{ dB}

结论:2 MHz 处只衰减了 0.78 dB,信号幅度保留了 91.5%,几乎不受影响。这也符合预期——2 MHz 远低于截止频率 4.60 MHz,处在通带内。

再算一个 10 MHz 的作为对比:

ω=2π×10×10640×106=π2=1.5708 rad\omega = \frac{2\pi \times 10 \times 10^6}{40 \times 10^6} = \frac{\pi}{2} = 1.5708 \text{ rad} cos(π/2)=0\cos(\pi/2) = 0 H=0.51.250=0.51.118=0.4472|H| = \frac{0.5}{\sqrt{1.25 - 0}} = \frac{0.5}{1.118} = 0.4472 A(10MHz)=20log10(0.4472)=6.997.0 dBA(10\text{MHz}) = 20 \cdot \log_{10}(0.4472) = -6.99 \approx -7.0 \text{ dB}

结论:10 MHz 处衰减约 7 dB,信号幅度只剩 44.7%。10 MHz 已经超过截止频率 4.60 MHz,处在过渡带中。但注意衰减只有 7 dB,说明这个一阶低通的滚降很缓慢(-20 dB/dec),远没有达到”彻底滤除”的程度。


问题 3:如果想把截止频率从 4.6 MHz 改到 8 MHz,系数应该怎么调?

把传递函数写成一般形式 H(z)=b01a1z1H(z) = \frac{b_0}{1 - a_1 z^{-1}},其中 b0=1a1b_0 = 1 - a_1(保证直流增益为 1)。

幅度平方:

H2=(1a1)21+a122a1cosω|H|^2 = \frac{(1-a_1)^2}{1 + a_1^2 - 2a_1\cos\omega}

H2=0.5|H|^2 = 0.5(-3 dB 条件)并整理:

2(1a1)2=1+a122a1cosωc2(1-a_1)^2 = 1 + a_1^2 - 2a_1\cos\omega_c

目标截止频率 fc=8f_c = 8 MHz,对应:

ωc=2π×840=0.4π=1.2566 rad\omega_c = \frac{2\pi \times 8}{40} = 0.4\pi = 1.2566 \text{ rad} cos(1.2566)=cos(0.4π)=0.3090\cos(1.2566) = \cos(0.4\pi) = 0.3090

代入 -3 dB 条件展开:

2(12a1+a12)=1+a122a1×0.30902(1 - 2a_1 + a_1^2) = 1 + a_1^2 - 2a_1 \times 0.3090 24a1+2a12=1+a120.618a12 - 4a_1 + 2a_1^2 = 1 + a_1^2 - 0.618a_1 a123.382a1+1=0a_1^2 - 3.382a_1 + 1 = 0

用求根公式:

a1=3.382±3.382242=3.382±7.4382=3.382±2.7272a_1 = \frac{3.382 \pm \sqrt{3.382^2 - 4}}{2} = \frac{3.382 \pm \sqrt{7.438}}{2} = \frac{3.382 \pm 2.727}{2}

两个根:a1=3.055a_1 = 3.055a1=0.3275a_1 = 0.3275。稳定性要求 a1<1|a_1| < 1,所以取 a1=0.3275a_1 = 0.3275,对应 b0=10.3275=0.6725b_0 = 1 - 0.3275 = 0.6725

新的差分方程:

y[n]=0.6725x[n]+0.3275y[n1]y[n] = 0.6725 \cdot x[n] + 0.3275 \cdot y[n-1]

结论:把反馈系数从 0.5 减小到 0.3275,截止频率就从 4.6 MHz 提高到 8 MHz。系数越小,”记忆”越弱,高频衰减越少,截止频率越高。

这些问题用差分方程一个都做不了,但用 Z 变换全都变成了代入公式。

1.8.3 FIR 滤波器的 Z 域描述

FIR 滤波器:

y[n]=k=0Nh[k]x[nk]y[n] = \sum_{k=0}^{N} h[k] \cdot x[n-k]

Z 变换:

Y(z)=k=0Nh[k]zkX(z)=H(z)X(z)Y(z) = \sum_{k=0}^{N} h[k] \cdot z^{-k} \cdot X(z) = H(z) \cdot X(z) H(z)=k=0Nh[k]zk=h[0]+h[1]z1+h[2]z2++h[N]zNH(z) = \sum_{k=0}^{N} h[k] \cdot z^{-k} = h[0] + h[1]z^{-1} + h[2]z^{-2} + \cdots + h[N]z^{-N}

FIR 的传递函数只有分子(NN 阶多项式),分母为 1。这意味着:

  • FIR 只有零点,没有极点(极点全在原点)
  • 没有极点 = 没有反馈 = 绝对稳定,不可能振荡
  • 系数 h[k]h[k] 就是传递函数的 zkz^{-k} 系数,直接对应

1.8.4 IIR 滤波器的 Z 域描述

一般 IIR 滤波器:

y[n]=k=0Mbkx[nk]k=1Naky[nk]y[n] = \sum_{k=0}^{M} b_k \cdot x[n-k] - \sum_{k=1}^{N} a_k \cdot y[n-k]

Z 变换:

Y(z)=k=0MbkzkX(z)k=1NakzkY(z)Y(z) = \sum_{k=0}^{M} b_k z^{-k} X(z) - \sum_{k=1}^{N} a_k z^{-k} Y(z) Y(z)(1+k=1Nakzk)=X(z)k=0MbkzkY(z)\left(1 + \sum_{k=1}^{N} a_k z^{-k}\right) = X(z)\sum_{k=0}^{M} b_k z^{-k} H(z)=k=0Mbkzk1+k=1NakzkH(z) = \frac{\sum_{k=0}^{M} b_k z^{-k}}{1 + \sum_{k=1}^{N} a_k z^{-k}}

IIR 的传递函数分子分母都有(既有零点又有极点)。极点的位置决定了系统是否稳定——所有极点必须在单位圆内(z<1|z| < 1),否则输出会发散。

1.8.5 一阶 IIR 高通滤波器

现在看高通的例子。一阶 IIR 高通滤波器的差分方程为:

y[n]=a0(y[n1]+x[n]x[n1])y[n] = a_0 \cdot (y[n-1] + x[n] - x[n-1])

展开:y[n]=a0y[n1]+a0x[n]a0x[n1]y[n] = a_0 \cdot y[n-1] + a_0 \cdot x[n] - a_0 \cdot x[n-1]

Z 变换(每一项分别利用时移性质):

Y(z)=a0z1Y(z)+a0X(z)a0z1X(z)Y(z) = a_0 z^{-1} Y(z) + a_0 X(z) - a_0 z^{-1} X(z) Y(z)(1a0z1)=a0(1z1)X(z)Y(z)(1 - a_0 z^{-1}) = a_0(1 - z^{-1})X(z) H(z)=a0(1z1)1a0z1H(z) = \frac{a_0(1 - z^{-1})}{1 - a_0 z^{-1}}

和 7.1 节的低通对比,分母完全一样(极点都在 z=a0z = a_0),区别全在分子:多了一个 (1z1)(1 - z^{-1}) 因子,它在 z=1z = 1(直流)处引入零点,把直流增益压到 0 —— 这正是高通的特征。

分母极点在 z=a0z = a_0,当 0<a0<10 < a_0 < 1 时极点在单位圆内,系统稳定。a0a_0 越接近 1,极点越靠近零点 z=1z = 1,两者几乎对消,只有极低的频率才会被滤掉(截止频率很低)。a0a_0 越小,极点远离零点,更宽的低频范围被抑制(截止频率升高)。

a0=0.73,  fs=40a_0 = 0.73, \; f_s = 40 MHz 为例,截止频率:

fc=fs(1a0)2πa0=40×106×0.272π×0.732.35 MHzf_c = \frac{f_s \cdot (1 - a_0)}{2\pi \cdot a_0} = \frac{40 \times 10^6 \times 0.27}{2\pi \times 0.73} \approx 2.35 \text{ MHz}

2.35 MHz 以下的信号被逐渐衰减(滚降 -20 dB/dec),以上的信号基本不受影响。如果把 a0a_0 调到 0.95,截止频率降到约 0.34 MHz,几乎只滤直流。


1.9 总结:Z 变换到底简化了什么

没有 Z 变换时 有了 Z 变换后
差分方程:逐拍递推,只能看局部 传递函数 H(z)H(z):一个公式描述整个系统
要求频率响应:对每个频率做仿真 z=ejωz = e^{j\omega},代入就出来
要判断稳定性:跑很长的仿真看是否发散 看极点是否在单位圆内
设计滤波器:试凑系数 指定频率指标,解方程得系数
分析级联系统:展开所有差分方程 传递函数直接相乘 H1(z)H2(z)H_1(z) \cdot H_2(z)
卷积计算:O(N2)O(N^2) 的逐点乘加 ZZ 域乘法,一步完成

Z 变换不是一个抽象的数学游戏,它是让你**从”只能仿真”变成”可以计算”**的核心工具。没有它,数字滤波器的设计就只能靠直觉和试错;有了它,设计变成了解方程。

下一篇我们用 Z 变换的视角重新审视 FIR 和 IIR 滤波器的设计,你会发现之前看不懂的公式现在都变得自然了

image-20260322190608691

二、拉普拉斯变换

三、傅里叶变换