第2章 数字信号处理基础:傅里叶变换、数字滤波器设计、脉冲压缩原理
各位同学,咱们今天聊点实在的。数字信号处理,说白了就是雷达抗干扰算法的“内功心法”。你算法写得再花哨,底层信号处理的基本功不扎实,到了工程现场一跑,全是坑。我个人习惯,在讲任何抗干扰算法之前,先把这三个基石夯实了:傅里叶变换、数字滤波器、脉冲压缩。
2.1 傅里叶变换:从时域到频域的“翻译官”
傅里叶变换,大家大学都学过。但工程上怎么用?我举个例子。你在时域里看到一个回波信号,乱糟糟的,根本分不清是目标回波还是干扰。但把它变到频域一看,嘿,干扰的频谱特征一目了然。这就是傅里叶变换的价值——它把时间轴上的信号,翻译成了频率轴上的能量分布。
在雷达系统里,我们最常用的是离散傅里叶变换(DFT),以及它的快速实现FFT。为什么用FFT?因为快。我在做某型机载雷达项目时,脉冲重复频率高,数据量大,如果不用FFT,实时性根本保证不了。
核心公式(离散傅里叶变换):
X(k) = Σ_{n=0}^{N-1} x(n) · e^{-j(2π/N)kn}
其中,x(n)是时域采样点,X(k)是频域的第k个分量。N是采样点数。
嗯,这里要注意一个工程细节:频率分辨率。它等于采样率除以FFT点数。你想想看,如果你要分辨两个频率很近的干扰信号,FFT点数就得够大。我见过有人为了省计算量,把FFT点数设得很小,结果两个干扰在频域里糊成一团,根本没法做后续的滤波处理。
工程经验: 我个人习惯,FFT点数至少取2的整数次幂,比如1024、2048。这样硬件实现最方便,而且可以利用基2-FFT算法,效率最高。
2.2 数字滤波器设计:把干扰“筛”出去
傅里叶变换帮我们看清了干扰在哪,接下来就得用滤波器把它干掉。数字滤波器分两类:FIR(有限冲激响应)和IIR(无限冲激响应)。
在雷达抗干扰里,我强烈推荐FIR滤波器。为什么?因为它稳定,相位是线性的。你想想看,雷达回波里包含目标的距离和速度信息,如果滤波器把相位搞乱了,那测距测速全都会出错。IIR虽然计算量小,但相位非线性,搞不好就把目标信息给扭曲了。
我曾经在一个项目中,为了省几个乘法器,用了IIR滤波器做带通滤波。结果目标回波的相位发生了畸变,脉冲压缩后的旁瓣抬高了整整3dB。后来老老实实换回FIR,问题才解决。这个教训挺深刻的。
2.2.1 FIR滤波器设计要点
- 窗函数法: 最常用。矩形窗、汉明窗、布莱克曼窗。我一般用汉明窗,主瓣和旁瓣的折中比较好。
- 阶数选择: 阶数越高,过渡带越陡,但计算量也越大。工程上一般取30~100阶,具体看你的FPGA资源。
- 系数量化: 这个容易被忽略。浮点仿真跑得好好的,定点实现后滤波器性能就变差了。我建议系数至少保留16位精度。
避坑指南: 我曾经遇到过滤波器系数对称性被破坏的情况。FIR滤波器系数是对称的,但定点量化时,由于舍入误差,对称性没了,导致相位不再线性。解决办法:量化后手动强制对称。
2.3 脉冲压缩原理:用时间换距离分辨率
脉冲压缩,这是雷达信号处理的精髓之一。说白了,就是发射一个宽脉冲(能量大,打得远),接收后通过匹配滤波,压缩成一个窄脉冲(分辨率高)。
为什么会这样?因为雷达的距离分辨率取决于脉冲宽度。脉冲越窄,分辨率越高。但窄脉冲能量小,探测距离近。脉冲压缩完美解决了这个矛盾。
2.3.1 线性调频信号(LFM)
最常用的脉冲压缩信号是线性调频信号。它的频率随时间线性变化,像个“啁啾”声。数学表达式如下:
s(t) = A · rect(t/T) · cos(2πf₀t + πKt²)
其中,T是脉冲宽度,K是调频斜率,f₀是载频。rect是矩形函数。
匹配滤波器的冲激响应,就是发射信号的时间反转共轭。在数字域里实现,其实就是做一次卷积。但直接卷积计算量太大,工程上都是用FFT来实现:
- 对回波信号做FFT
- 乘以匹配滤波器的频域响应
- 做IFFT回到时域
三步搞定,效率极高。我在某型火控雷达项目里,就是用这个流程,在FPGA上实现了实时脉冲压缩,延迟只有几十微秒。
脉冲压缩的关键指标:
| 指标 | 含义 | 工程经验值 |
|---|---|---|
| 压缩比 | 发射脉宽 / 压缩后脉宽 | 100~1000倍 |
| 距离旁瓣 | 主瓣旁边的虚假目标 | 低于主瓣-30dB |
| 多普勒容限 | 对运动目标的适应能力 | 取决于调频斜率 |
嗯,这里要特别说一下距离旁瓣的问题。脉冲压缩后,主瓣旁边会出现一系列旁瓣。如果旁瓣太高,可能会把弱目标淹没掉,或者被误判为假目标。解决办法是加窗,比如汉明窗、泰勒窗。但加窗会降低压缩比,展宽主瓣。这是个trade-off,你得根据实际场景来权衡。
个人经验: 我一般先用泰勒窗做脉冲压缩,它的旁瓣可以控制在-40dB以下,而且主瓣展宽不大。如果干扰特别强,再考虑用更复杂的失配滤波技术。
2.4 三者如何协同工作?
讲到这里,你可能要问:傅里叶变换、数字滤波器、脉冲压缩,它们之间是什么关系?
我打个比方。傅里叶变换是“眼睛”,帮你看清干扰在频域的位置。数字滤波器是“手术刀”,把干扰从频域里切掉。脉冲压缩是“放大镜”,把目标的细节从回波里提取出来。
在实际的雷达抗干扰流程中,顺序一般是:
- 回波信号先做FFT,转到频域
- 用数字滤波器(比如带阻滤波器)滤除干扰
- IFFT回到时域
- 做脉冲压缩,提取目标信息
当然,这只是最基础的流程。后面章节我们会讲到更复杂的自适应滤波、空时二维处理等。但万变不离其宗,这三个基础你吃透了,后面的内容学起来会轻松很多。
最后提醒一句: 仿真和工程实现是两码事。你在MATLAB里跑得飞快的算法,到了FPGA或DSP上,可能因为资源、时序、量化精度等问题跑不起来。我建议,从一开始就用定点数思维去设计算法,别等到调板子了才发现问题。
好了,这一章就到这里。下一章我们聊聊自适应滤波与空域抗干扰,那才是真正开始“打仗”的地方。