第3章:数字信号处理基础:采样定理、Z变换、数字滤波器设计及其在雷达中的应用

各位同学,欢迎来到第三章。这一章,我们聊聊数字信号处理(DSP)的三大基石:采样定理、Z变换,还有滤波器设计。说实话,这些理论在课本上看着挺枯燥,但在我做雷达项目的十几年里,几乎每天都在跟它们打交道。你想想看,雷达回波从天线进来,第一步就是采样,然后做各种变换和滤波。搞不懂这些,后面的目标检测、跟踪根本无从谈起。

3.1 采样定理:雷达信号的“数字化门槛”

采样定理,也叫奈奎斯特定理。说白了就是一句话:采样频率必须大于信号最高频率的两倍。否则,就会发生频谱混叠,信号就“拧巴”了。

我在项目中遇到过这样一个坑:有一次调试一部X波段雷达,中频信号是60 MHz,带宽20 MHz。我习惯性地用了120 MHz的采样率,心想“两倍嘛,够了”。结果一跑数据,目标回波里出现了虚假的“鬼影”。查了半天,才发现问题出在采样率上——虽然信号中心频率是60 MHz,但它的最高频率是70 MHz(60+10),按奈奎斯特要求,采样率得大于140 MHz才行。嗯,从那以后,我每次选ADC都会先算一下信号的实际带宽,而不是只看中心频率。

避坑指南: 我曾经因为采样率不够,导致一个多目标场景下的测距误差大了好几米。记住:雷达信号往往是带通信号,采样时可以用带通采样定理来降低采样率,但前提是必须保证频谱不混叠。

实际工程中,我们通常会留出20%~30%的余量。比如信号最高频率100 MHz,采样率我会选250 MHz以上,而不是刚好200 MHz。为什么?因为ADC的模拟带宽、抗混叠滤波器的滚降特性都会引入额外约束。

3.2 Z变换:离散系统的“数学显微镜”

Z变换,是分析离散系统(比如数字滤波器)的利器。它把时域的差分方程,映射到z域的代数方程。我个人习惯把Z变换看作是离散版的拉普拉斯变换。

举个例子,一个简单的累加器:y[n] = y[n-1] + x[n]。在时域看,就是个递推。但用Z变换,系统函数 H(z) = 1 / (1 - z^{-1})。你看,多简洁!

在雷达中,Z变换最常用的地方有两个:

  • 分析滤波器稳定性: 系统函数的极点必须在单位圆内。我见过有人设计的IIR滤波器,仿真时好好的,一上硬件就发散,就是因为极点刚好落在单位圆上,量化误差把它推出了圆外。
  • 设计脉冲压缩滤波器: 匹配滤波器的Z域表示,可以帮我们快速推导出滤波器的系数。
小技巧: 我建议你多用零极点图来观察滤波器特性。一个极点靠近单位圆,意味着该频率附近有谐振;零点靠近单位圆,则意味着陷波。这在设计雷达杂波抑制滤波器时特别有用。

3.3 数字滤波器设计:FIR与IIR的雷达应用

数字滤波器,是雷达信号处理的核心模块。主要分两类:FIR(有限冲激响应)和IIR(无限冲激响应)。

3.4.1 FIR滤波器:稳定、线性相位

FIR滤波器最大的优点就是稳定,而且可以做到严格的线性相位。在雷达中,线性相位意味着信号经过滤波器后,不同频率分量的时延一致,不会造成波形失真。这对脉冲压缩、MTI(动目标显示)处理至关重要。

我常用的设计方法是窗函数法。比如设计一个低通滤波器,直接调用MATLAB的fir1函数:

% 设计一个32阶的低通FIR滤波器,截止频率0.2(归一化)
fs = 100e6;  % 采样率100 MHz
fc = 10e6;   % 截止频率10 MHz
N = 32;      % 滤波器阶数
b = fir1(N, fc/(fs/2), 'low', hamming(N+1));

这段代码生成的就是一个线性相位的低通滤波器。我在做某型相控阵雷达的接收通道时,就用它来滤除带外噪声,效果很稳定。

重点: FIR滤波器的阶数越高,过渡带越窄,但计算量也越大。在FPGA实现时,我一般会权衡资源消耗和性能,选择32~64阶。

3.4.2 IIR滤波器:高效、但有风险

IIR滤波器可以用更低的阶数达到同样的幅频响应,计算效率高。但它的相位是非线性的,而且存在稳定性问题。

在雷达中,IIR滤波器常用于对相位不敏感的场景,比如:

  • MTI滤波器: 用来抑制地杂波。一个简单的二阶IIR高通滤波器,就能把静止杂波衰减40 dB以上。
  • 视频积累: 用一阶低通IIR做递归积累,比FIR节省大量乘法器。

举个例子,设计一个巴特沃斯高通IIR滤波器:

% 设计一个4阶高通IIR滤波器,截止频率0.1(归一化)
[b, a] = butter(4, 0.1, 'high');

但要注意,IIR滤波器的系数对量化误差很敏感。我曾经在定点化实现时,因为系数截断,导致滤波器实际响应和设计值偏差很大,杂波抑制效果差了10 dB。后来改用级联型结构(二阶节级联),才解决了这个问题。

警告: 如果你在雷达系统中使用IIR滤波器,务必做定点仿真,检查极点是否因量化而移出单位圆。我建议用直接II型转置结构,它对量化误差的鲁棒性更好。

3.4 在雷达中的综合应用:一个脉冲压缩的例子

最后,我结合一个实际场景,把这三个知识点串起来。

假设我们要处理一个线性调频(LFM)脉冲,带宽10 MHz,脉宽10 μs。接收到的回波经过ADC采样(采样率25 MHz),然后做脉冲压缩(匹配滤波)。

  1. 采样: 信号带宽10 MHz,按带通采样定理,采样率25 MHz完全满足要求(>2×10 MHz)。实际中我还会加一个抗混叠滤波器。
  2. Z变换分析: 匹配滤波器的系统函数是发射信号频谱的共轭。在z域,这相当于一个逆滤波问题。通过Z变换,我可以快速验证滤波器是否稳定。
  3. 滤波器实现: 匹配滤波器通常用FIR实现,因为需要线性相位。我设计了一个128阶的FIR滤波器,系数就是发射信号的时域反转共轭。在FPGA上,用分布式算法(DA)实现,资源占用很小。

你看,采样定理保证了信号不失真,Z变换帮我分析了系统特性,FIR滤波器完成了脉冲压缩。三者缺一不可。

个人经验: 我建议你在做雷达项目时,先把这三个基础模块在MATLAB里仿真通过,再移植到硬件。别急着上板子,仿真能帮你发现90%的问题。

好了,这一章就到这里。下一章我们会深入雷达目标检测的经典算法——CFAR。到时候再聊!