3、多普勒处理:多普勒效应、MTI滤波器设计、动目标检测(MTD)原理
好,咱们进入第三讲。这一讲的内容,说白了就是雷达怎么从一堆静止不动的杂波里,把那些动来动去的目标给揪出来。你想想看,雷达回波里,山是不动的,楼是不动的,但飞机、车辆、人是动的。怎么区分?靠的就是多普勒效应。
3.1 多普勒效应——雷达的“听风辨位”
多普勒效应,大家中学物理都学过。火车朝你开过来,汽笛声变尖(频率变高);离你远去,声音变低沉(频率变低)。雷达里也一样。发射一个固定频率的信号,打到运动目标上,反射回来的信号频率就变了。
这个频率变化量,我们叫它多普勒频率 fd。公式很简单:
f_d = 2 * v_r / λ
其中 vr 是目标的径向速度(朝着雷达方向的速度分量),λ 是雷达波长。注意,是径向速度,不是目标飞行的绝对速度。目标横着飞,多普勒频率是零。
关键点:多普勒频率的正负代表目标运动方向。正频率——目标靠近;负频率——目标远离。我在项目里调试时,就靠这个判断目标是在进入防区还是离开防区。
举个例子。X波段雷达,波长3cm,目标径向速度100m/s(约360km/h)。算一下:
f_d = 2 * 100 / 0.03 ≈ 6667 Hz
嗯,6.6kHz左右。这个频率在音频范围内,你甚至可以用耳机听出来。不过实际雷达里,我们是用数字信号处理来提取它。
3.2 MTI滤波器设计——把静止的“抹掉”
MTI,全称Moving Target Indicator,动目标指示。它的核心思想很简单:静止目标的回波,在相邻的脉冲之间是不变的。动目标的回波,是变化的。那我们做个减法,把不变的部分去掉,剩下的就是动目标。
最简单的MTI滤波器,就是一个延迟对消器。结构如下:
输入 x(n) ——> [延迟 T] ——> 减法器 ——> 输出 y(n)
| |
+--------------------+
数学表达式:y(n) = x(n) - x(n-1)
这个滤波器在频域上是什么效果?它的频率响应是:
|H(f)| = 2 * |sin(π * f * T)|
其中 T 是脉冲重复周期(PRI)。你看,当 f=0(静止目标)时,|H(0)|=0,完美抑制。当 f=1/(2T) 时,|H(f)|=2,增益最大。
个人经验:单延迟对消器虽然简单,但它的频率响应有“凹口”。如果目标的多普勒频率正好落在凹口附近,就会被滤掉。我遇到过这种情况,一个慢速无人机,速度只有几米每秒,多普勒频率很低,差点被单延迟对消器给消掉了。后来我换成了双延迟对消器,凹口更宽,才把目标保住。
双延迟对消器,其实就是级联两个单延迟对消器。它的传递函数是:
H(z) = (1 - z^(-1))^2
频率响应:|H(f)| = 4 * sin²(π * f * T)
凹口更宽,对低速目标的抑制效果更好。但代价是噪声会稍微放大一点。工程上就是取舍问题。
3.3 动目标检测(MTD)原理——从“有无”到“速度”
MTI只能告诉你“有没有动目标”,但不知道目标的速度是多少。MTD(Moving Target Detection)就不一样了,它能给出目标的速度信息。
MTD的核心,是对一组脉冲做FFT(快速傅里叶变换)。你想想看,每个距离单元上,不同速度的目标对应不同的多普勒频率。FFT就是把不同频率的成分分离开来。
具体做法:
- 发射N个等间隔的脉冲(一个相参脉冲串)
- 对每个距离单元,取出N个脉冲的采样值
- 对这N个点做N点FFT
- FFT的输出,就是不同多普勒通道的幅度
每个多普勒通道对应一个速度区间。比如,脉冲重复频率PRF=1000Hz,做16点FFT,那么每个通道的频率分辨率是 1000/16 = 62.5Hz。对应的速度分辨率就是:
Δv = λ * Δf / 2 = λ * 62.5 / 2
如果λ=0.03m,那么Δv ≈ 0.94 m/s。也就是说,这个MTD能区分速度相差约1m/s的目标。
注意:MTD有一个模糊问题。因为FFT的频谱是周期性的,周期就是PRF。如果目标的多普勒频率超过了PRF/2,就会发生速度模糊。比如PRF=1000Hz,目标多普勒频率是800Hz,它会被折叠到200Hz的位置上,显示的速度就错了。
怎么解决?我常用的方法是多PRF解模糊。发射两组不同PRF的脉冲串,分别做MTD,然后根据两个模糊速度来反推真实速度。这有点像中国余数定理,但实际工程中要考虑噪声和测量误差,没那么理想。
3.4 MTI与MTD的对比——什么时候用哪个?
| 特性 | MTI | MTD |
|---|---|---|
| 计算量 | 小(只需减法) | 大(需要FFT) |
| 输出信息 | 有无目标 | 有无目标 + 速度 |
| 杂波抑制 | 好(凹口在零频) | 更好(可加窗抑制旁瓣) |
| 低速目标 | 可能被抑制 | 可保留(取决于滤波器设计) |
| 硬件资源 | 少 | 多(需要存储N个脉冲) |
实际系统中,我通常的做法是:先用MTI做快速检测,发现目标后,再用MTD做精确测速。这样既保证了实时性,又获得了速度信息。
避坑指南:我曾经在一个项目里,直接上MTD,结果发现FPGA的BRAM不够用。因为要存16个脉冲的所有距离单元数据,每个距离单元16位,距离单元数几千个,算下来存储量很大。后来改成先做MTI,只对检测到的目标区域做MTD,资源就够用了。嗯,这就是工程上的折中。
3.5 实际设计中的几个要点
最后,我总结几个实际设计中的要点,都是踩过坑才明白的:
- 脉冲重复频率的选择:PRF不能太高,否则最大不模糊距离会变短;也不能太低,否则速度模糊严重。一般根据雷达的用途来折中。我做过一个对空雷达,PRF选在几千赫兹,兼顾了距离和速度。
- 加窗处理:MTD做FFT之前,建议加窗(比如汉明窗、布莱克曼窗)。不加窗的话,旁瓣太高,强目标会淹没弱目标。我见过一个案例,不加窗时,一个强杂波旁边的弱小目标完全看不到,加了窗就分开了。
- 杂波图更新:MTI的延迟对消器,其实假设杂波是静止的。但实际中,风吹草动、雨雪天气,杂波是缓慢变化的。所以需要定期更新杂波图,或者用自适应MTI滤波器。这个后面章节会详细讲。
好了,这一讲就到这里。多普勒处理是雷达信号处理的精髓,理解了它,你就掌握了雷达“看动不看静”的核心能力。下一讲,我们聊聊脉冲压缩,看看怎么在保持距离分辨率的同时,提高探测距离。