3、Z变换与系统函数:从离散域看滤波器的灵魂
说实话,很多做雷达信号处理的工程师,一提到Z变换就头疼。觉得这是数学课上的东西,跟实际工程离得太远。我以前也这么想,直到有一次在项目里调试一个数字滤波器,怎么调都不对劲——后来才发现,问题就出在我对系统函数的理解不够深。
今天咱们就聊聊Z变换、系统函数和零极点分析。这些东西,说白了就是滤波器的「身份证」和「体检报告」。搞懂了它们,你设计滤波器时心里就有底了。
3.1 Z变换定义:离散世界的拉普拉斯
Z变换的定义其实很简单。对于一个离散序列 x[n],它的Z变换是:
X(z) = Σ x[n] · z^(-n) (n从 -∞ 到 +∞)
嗯,这里要注意,实际工程中我们处理的都是因果序列(n<0时x[n]=0),所以求和通常从n=0开始。
你可能会问:为什么要搞出个Z变换?
我个人的理解是这样的:连续系统我们用拉普拉斯变换,把微分方程变成代数方程。离散系统呢?差分方程不好解,Z变换就是干这个的——把差分方程变成代数方程,把卷积变成乘法。
举个例子,一个简单的差分方程:
y[n] = x[n] + 0.5·y[n-1]
做Z变换后变成:
Y(z) = X(z) + 0.5·z^(-1)·Y(z)
整理一下:
Y(z)/X(z) = 1 / (1 - 0.5·z^(-1))
你看,一个差分方程,几行就变成了一个有理分式。这就是Z变换的威力。
3.2 系统函数:滤波器的DNA
系统函数 H(z),就是输出Z变换除以输入Z变换:
H(z) = Y(z) / X(z)
它包含了滤波器的全部信息。我在项目中遇到过很多次,拿到一个滤波器设计,第一件事就是看它的系统函数。为什么?因为从H(z)里,你能直接读出滤波器的结构、稳定性和频率响应。
一般来说,数字滤波器的系统函数可以写成:
H(z) = (b₀ + b₁·z^(-1) + ... + b_M·z^(-M)) / (1 + a₁·z^(-1) + ... + a_N·z^(-N))
这里b系数是前向路径的增益,a系数是反馈路径的增益。如果所有a系数都是0,那就是FIR滤波器;否则就是IIR滤波器。
| 滤波器类型 | 系统函数特点 | 典型应用 |
|---|---|---|
| FIR | 只有零点,没有极点(除原点外) | 脉冲压缩、匹配滤波 |
| IIR | 既有零点又有极点 | 杂波抑制、多普勒滤波 |
你想想看,在雷达信号处理里,为什么FIR和IIR都要用?
我个人习惯是:需要线性相位时用FIR,比如脉冲压缩,相位失真会直接影响距离分辨率。需要高计算效率时用IIR,比如MTI滤波器,用二阶IIR就能达到很好的杂波抑制效果。
3.3 系统函数与频率响应:从Z域到频域
系统函数和频率响应之间是什么关系?
很简单:把z换成e^(jω)就行了。
H(e^(jω)) = H(z) |_{z = e^(jω)}
为什么?因为单位圆上的z值正好对应离散时间系统的频率响应。ω从0到π对应0到一半采样频率。
我记得有一次调试一个带通滤波器,仿真时频率响应看着挺好,但实际测试时通带边缘总是不对。后来发现,是我把采样频率搞错了——Z变换里的频率归一化,一定要跟实际采样率对应起来。
3.4 零极点分析:一眼看穿滤波器性能
零极点分析,是我最喜欢用的工具。为什么?因为它直观。
系统函数H(z)的分子根是零点,分母根是极点。在z平面上画出来:
- 零点用「○」表示——信号被抑制的频率点
- 极点用「×」表示——信号被增强的频率点
从零极点图,你能直接读出:
- 稳定性:所有极点必须在单位圆内。只要有一个极点在单位圆外,系统就不稳定。
- 频率响应:从单位圆上某点走到零点的距离越短,该频率衰减越大;走到极点的距离越短,该频率增益越大。
- 滤波器类型:零点在单位圆上的,通常是陷波滤波器;极点在单位圆附近的,通常是谐振器。
举个例子,一个简单的MTI滤波器:
H(z) = 1 - z^(-1)
它在z=1处有一个零点。z=1对应直流分量(ω=0),所以这个滤波器能抑制直流和慢速杂波。我在做动目标检测时,经常用这种结构。
3.5 实战经验:零极点配置的注意事项
在实际工程中,零极点配置有几个坑要避开:
- 极点不要离单位圆太近:虽然理论上在单位圆内就稳定,但太靠近单位圆,系数量化误差可能导致极点「漂」到圆外。我一般留0.05的余量。
- 零点可以放在单位圆上:比如陷波滤波器,零点放在单位圆上能实现无限深的陷波。但要注意,实际实现时由于量化误差,陷波深度是有限的。
- 高阶滤波器要分解成二阶节:直接实现一个高阶IIR滤波器,系数灵敏度太高。我习惯用级联型或并联型,每个二阶节独立调整。
嗯,说到这儿,我想起一个项目。当时要设计一个64阶的带通滤波器,直接实现时,系数稍微变一点,频率响应就面目全非。后来改成16个二阶节级联,问题就解决了。这就是零极点分解在实际中的应用。
3.6 小结
Z变换和系统函数,是数字滤波器设计的理论基础。掌握了它们,你就能:
- 从差分方程直接写出系统函数
- 从系统函数画出零极点图
- 从零极点图判断滤波器的频率响应和稳定性
- 在实际工程中避免常见的实现陷阱
下一章,我们会把这些理论用到实际滤波器设计中。到时候你会发现,今天学的这些,全是「干货」。