让我把标题拆开理解一遍。PLFM 是 Pulse Linear Frequency Modulation 的缩写,也就是脉冲线性调频;RADAR 不用多说,代表整个回波接收与处理链路。所以 PLFM_RADAR 这个名字,指向的并不是某一台成品雷达的型号,而是一套完整的脉冲压缩雷达信号处理项目。
这个项目解决的问题非常具体:在发射峰值功率受到限制、又想获得足够距离分辨力的前提下,怎么通过线性调频宽脉冲加匹配滤波,把回波里的目标信息高保真地提取出来。它最典型的应用场景是移动平台近程探测验证,比如无人机避障、地面无人车环境感知、小型船只导航雷达,以及在实验室里搭一套可重复研究的雷达试验平台。如果你是雷达信号处理方向的学生、刚入行的硬件工程师,或者正打算把雷达装到某个无人平台上,这套链路上的波形设计、定时同步、脉压实现、杂波抑制和标定方法,大概率都是你躲不开的必经之路。
1.1 为什么选脉冲线性调频,而不是 FMCW
很多人拿到“雷达探测”需求后,第一反应是调频连续波(FMCW)。FMCW 体制在车载雷达里确实用得很多,硬件简单、灵敏度高、距离速度可以同时解算。但它有一个很棘手的工程问题:收发隔离。发射机一直在工作,接收机也同时在工作,哪怕功放和接收天线之间只泄漏回来一点点信号,这个泄漏信号也会把弱目标回波彻底淹没。为了压低泄漏,FMCW 雷达要么用环形器,要么用双天线加高隔离度,要么在基带做泄漏对消,每一招都增加硬件复杂度和调试成本。
脉冲体制则是在时间上把发射和接收隔开:发射机只在脉冲持续时间内工作,其余时间全部让给接收。这样收发隔离的压力小了很多,接收链路的动态范围也能做得更好。对于我这次要验证的平台来说,动辄几十 dB 的杂波动态范围需要处理,脉冲体制在这一项上的优势是实实在在的。
当然,脉冲体制也有自己的缺点,比如距离分辨力天然受限于脉宽,要想同时获得远作用距离和细距离分辨力,就必须引入脉冲压缩。这恰好就是 PLFM 的核心价值:发射大时宽带宽积的线性调频脉冲,在接收端用匹配滤波把它压成窄脉冲,距离分辨力由带宽决定,探测能量由脉宽决定,两者不再互相绑架。
1.2 目标约束与系统架构
这个项目从立项起就有明确的性能约束:作用距离覆盖 50 米到 3 公里,距离分辨力 1.5 米,能分辨两个相距较近的目标,并能输出目标距离、速度和方位信息,供平台决策使用。这个指标不算激进,但对一套要从零搭建的工程原型来说,已经足够检验信号处理链路里的每一个环节了。
系统整体划分成四个模块:
- 波形产生与发射模块:包括 FPGA 或 DDS 产生基带 I/Q 线性调频波形,经过上变频、功放后送至发射天线。
- 射频前端模块:包含收发天线、低噪声放大器(LNA)、下变频链路和中频滤波。
- 数据采集模块:ADC 对中频信号带通采样,转换为数字中频序列。
- 数字信号处理模块:数字下变频、匹配滤波、MTI 对消、多普勒积累、CFAR 检测和点迹输出。
这套架构里,最值得花时间的是数字处理部分。因为波形参数一旦定下来,雷达性能的理论上限就固定了,你能不能把这个上限发挥出来,完全取决于后端处理干不干净。
2. 波形设计:从参数计算到落地
2.1 线性调频信号的数学表达
线性调频信号的复数表达式为:
s(t) = rect(t/Tp) · exp[j·2π·(f0·t + 0.5·K·t²)]
其中 f0 是起始载频,Tp 是脉冲宽度,K = B/Tp 是调频斜率。瞬时频率随时间线性增加:f(t) = f0 + K·t。也就是说,一个脉冲从开始到结束,频率总共扫过了 B 赫兹的宽度。
有人可能会问,为什么要让频率“扫”起来?答案在于匹配滤波。发射信号通过目标反射回来后,接收机里存放着一份与发射信号相位严格同步的参考信号,两者做相关运算时,同一目标在不同时刻的回波会在某个时延处相干叠加,形成一个尖锐的相关峰。线性调频相当于给脉冲内部的每一个时刻贴上了不同的频率标签,让匹配滤波可以把它们精确地“聚”到一起。
当然,没有任何波形是免费的。线性调频信号在做匹配滤波时会产生距离-多普勒耦合,也就是目标径向速度带来的多普勒频移,会让相关峰峰值位置沿距离轴发生少量偏移。脉冲体制里这个偏移通常可以忽略,但如果目标速度很快、脉宽又很长,就需要在数据处理时补偿掉。
2.2 核心参数计算:带宽、脉宽、PRF
距离分辨力的公式是:
ΔR = c / (2B)
如果指标要求 ΔR = 1.5 米,那么带宽:
B = c / (2ΔR) = 3×10⁸ / (2×1.5) = 100 MHz
这个数字一出来,后面很多东西都被它锁定了。采样率至少要到 200 MSPS 以上,滤波器带宽、功放平坦度、天线带宽都要覆盖 100 MHz,这些都是硬件上逃不掉的开销。
脉宽 Tp 的选择,则要看能量的需求。目标回波功率和脉宽成正比,脉宽越长,单个脉冲携带的能量越大。但它也决定了信号的时宽带宽积 Tp·B,这个数值就是匹配滤波的理论处理增益。比如 20 微秒脉宽配 100 MHz 带宽,时宽带宽积是 2000,换算成对数约 33 dB。通俗点说,就是用 20 微秒的宽脉冲发射,经过脉压后能得到大约 33 dB 的信噪比提升,再弱的目标回波也会被抬起来。
脉冲重复频率(PRF)的选取,需要同时考虑最大无模糊距离和多普勒覆盖。最大无模糊距离 R_max = c / (2·PRF)。如果 PRF 取 10 kHz,R_max 就是 15 公里,对近程平台来说完全溢出覆盖需求;而多普勒无模糊速度范围是 ±λ·PRF/4,载频 5.8 GHz 时波长约 51.7 毫米,对应最大无模糊速度约 ±129 m/s,中低速平台和一般地面目标都在这个范围里。
下表是我在这个项目里实际使用的波形参数,可以作为一套能直接跑通的基准配置:
| 参数 | 数值 | 说明 |
|---|---|---|
| 载频 | 5.8 GHz | C 波段,兼顾体积与性能 |
| 带宽 | 100 MHz | 理论距离分辨力 1.5 m |
| 脉宽 | 20 μs | 时宽带宽积 2000,脉压增益约 33 dB |
| PRF | 10 kHz | 最大无模糊距离 15 km |
| 采样率 | 250 MSPS | 覆盖带宽并留有余量 |
| ADC 位数 | 14 bit | 动态范围满足强杂波场景 |
2.3 频段选型的工程考量
选 5.8 GHz 这个载频,我不完全是拍脑袋。S 波段(2~4 GHz)大气衰减小、穿透性好,适合远距离,但天线尺寸较大,同样增益的天线在 5.8 GHz 下可以做小一半左右。X 波段(8~12 GHz)天线更小、带宽更容易做大,但雨衰和器件成本就上去了。
对移动平台来说,C 波段是一个比较舒服的折中:天线尺寸适中,带宽能轻松做到 100 MHz 以上,器件成熟度高,功放也好选。如果你的平台对体积有更极限的要求,可以用 X 波段;如果更看重低成本和小体积,甚至可以考虑 K 波段,但那些频段的射频器件选型和 PCB 设计要求都会明显更高。
3. 数字信号处理链路的完整实现
3.1 波形产生:DDS 与正交调制
数字链路的第一步,是产生基带线性调频 I/Q 数据。我用的方法是在 FPGA 里做一个 DDS 核,用相位累加器的步进值随时间线性增加,来产生频率递增的正弦信号,同时输出 I、Q 两路。因为后续上变频要用正交调制器,需要的是复数基带信号,而不是单路实信号。
这一步有几个细节值得提醒。第一,DAC 更新率要留够余量。基带信号带宽 100 MHz,DAC 更新率至少要在 250 MSPS 以上,否则高频分量会在频谱上折叠出镜像。第二,必须在波形产生之后实测一次发射链路的幅频响应,因为 DAC、滤波器、功放的幅频特性都不可能是理想的平坦直线,如果不做补偿,脉压后的主瓣会有畸变,旁瓣也会被抬高。
3.2 接收链路与中频采样
接收端的经典做法,是先把射频信号经过 LNA 放大,下变频到几十 MHz 的中频,再交给 ADC 采样。很多初学者会下意识以为采样率越高越好,其实在中频采样的架构里,我们按照带通采样定理选择采样率就行,关键是让频谱完整搬移、不发生混叠。
比如中频选 120 MHz,采样率用 250 MSPS,信号频谱落在 70~170 MHz 之间,正好处于第一奈奎斯特区内。这样既降低了对 ADC 速率的要求,数字下变频的实现也更简单。采样得到的是一路实中频序列,要得到 I/Q 数据,可以在 FPGA 里做一个数字下变频:NCO 产生 120 MHz 本振,混频后级联低通滤波和抽取,最后输出基带 I/Q 数据。
这段链路里最容易被忽视的是滤波器的过渡带设计。过渡带太陡,时域会有振铃,表现为脉压后出现伪峰;过渡带太缓,带外泄漏又会污染相邻频段。我的经验是先用离线数据在仿真环境里把滤波器参数粗调一遍,再上板看实际频谱,反复迭代几轮,才能拿到一个“干净”的基带信号。
3.3 匹配滤波与旁瓣抑制
匹配滤波在数字域有标准实现方式:回波做 FFT,参考信号做 FFT 后取共轭,两者相乘,再 IFFT 回时域。写成伪代码就是:
import numpy as np # r: 一帧回波数据, ref: 与发射信号一致的参考信号 N_fft = len(r) + len(ref) - 1 R_fft = np.fft.fft(r, N_fft) Ref_fft = np.fft.fft(ref, N_fft) y = np.fft.ifft(R_fft * np.conj(Ref_fft), N_fft)这里有三个要点。第一,参考信号必须和发射信号严格一致,包括起始相位和采样时钟。如果参考信号和发射信号有频率或相位偏差,相关峰幅度会下降,距离测量也会偏移。第二,FFT 长度必须大于回波长度和参考长度之和,否则圆周卷积会把能量从正确的距离单元混叠到其他位置,这属于工程上很低级但很容易犯的错误。第三,输出信号是相关峰,旁瓣控制必须提前规划。
如果不加窗,LFM 脉压后的第一旁瓣只比主瓣低 13.2 dB。这个水平在单目标场景下凑合,但在多目标或强杂波场景下,强目标的旁瓣会把附近弱目标完全淹没。我在参考信号上做了汉明窗加权,旁瓣压到约 -42 dB,代价是主瓣展宽约 1.5 倍,距离分辨力从理论值的 1.5 米变成大约 2.2 米。
| 窗函数 | 第一旁瓣电平 | 主瓣展宽倍数 | 适用场景 |
|---|---|---|---|
| 矩形窗 | -13.2 dB | 1.0 | 对旁瓣不敏感 |
| 汉明窗 | -42 dB | 1.5 | 一般工程默认 |
| 泰勒窗 | -35~-45 dB | 1.3~1.6 | 需要灵活权衡 |
| 凯泽窗 | 可调 | 可调 | 定制化要求高 |
如果你的场景里强杂波特别多,可以直接上泰勒窗或凯泽窗。这两种窗的旁瓣抑制能力可以通过参数连续调节,在旁瓣电平和主瓣宽度之间找平衡,调起来更灵活。
3.4 慢时间积累、多普勒处理和 CFAR 检测
单个脉冲做完脉压后,得到的一维距离剖面只能告诉你“多远有回波”,还不能测速度。要测速度,需要用多个脉冲组成慢时间序列:把每个距离单元上的复数值沿脉冲序号方向做 FFT,就得到该距离单元上的多普勒频谱。这个过程叫慢时间积累,能同时提高信噪比和获得目标速度。
我的处理流程是多脉冲距平排列成矩阵,先做一个简单的两脉冲对消器把静止杂波抑制掉,再沿慢时间维做 FFT,输出距离-多普勒二维图。对消器虽然简单,但效果立竿见影:地面建筑、护栏这一类固定目标的回波在相邻脉冲间相位基本不变,相减后直接对消,只剩下运动目标。
检测环节用 CFAR 而不是固定门限。CFAR 的核心思想是,对待检单元附近的一段区域做统计,估计当前的杂波功率,再把门限设为统计量的若干倍。这样做的好处是门限自适应,杂波强的地方门限抬高,杂波弱的地方门限降低,检测性能比固定门限好太多。
CA-CFAR(单元平均恒虚警)是最常用的实现。待检单元前后各留几个保护单元,再取保护单元两侧的多个训练单元,求平均值作为杂波功率估计,门限 = 均值 × 门限因子。保护单元的目的是防止强目标能量泄漏进训练单元,训练单元数量则决定估计的稳健性。
实际调参时,我发现虚警率设得太低,弱小目标会被门限压掉;设得太高,强杂波点又会漏进点迹。我最终取了虚警率约 1e-5 到 1e-6 之间的配置,在近地杂波环境里能保持稳定的检测效果。如果目标密集出现、相互遮挡的情况比较多,可以把 CA-CFAR 换成有序统计 CFAR(OS-CFAR),它能抵抗多个目标同时对训练单元的污染。
3.5 点迹输出与平台集成
距离-多普勒图只是中间产物,真正的雷达要输出目标点迹。检测到目标后,需要把距离-多普勒单元的坐标换算成平台坐标系下的距离、方位、俯仰,再结合惯导数据做运动补偿,最终送给显控或决策模块。这里的工作量大多不在算法,而在数据流衔接:FPGA 做完脉压和积累后,点迹量可能很大,得做降采样、合并和优先级排序,再用低延迟接口发给上位机。
平台集成时,我踩得最深的一个坑是同步。发射脉冲和接收采样必须有统一时基,否则哪怕每个脉冲都做了完美匹配滤波,慢时间积累时也会因为时间漂移失配,多普勒谱会出现异常展宽。解决方法是把 PRF 触发信号由 FPGA 内部产生,并回环到接收 ADC 的采样时钟域,保证每个脉冲的起点都和发射严格对齐。硬件端还要注意收发天线的相位中心对齐,如果发射和接收天线分开安装,两路的相位误差会直接影响测角精度,需要在标定的时候做补偿。
4. 实测排错:那些教科书里不会写的坑
4.1 频谱混叠和镜像频率
第一次整机联调时,我在距离-多普勒图上总能看到一个“影子目标”,位置刚好和真实目标成镜像。排查到最后,发现是 ADC 采样率设得太低,中频信号在带通采样时发生频谱折叠,真实回波的高频部分混叠到了错误位置。这类问题的排查思路很直接:把发射机关掉,接一个已知信号源,看频谱里有没有多余的峰值。如果有,优先检查采样率和前端抗混叠滤波器的截止频率。
4.2 强目标旁瓣淹没弱目标
城市环境里,大楼墙面、金属围栏这类强反射体非常多。它们的回波强,脉压后旁瓣也跟着高,旁边的弱目标哪怕真实存在,也很容易被掩埋。我采用的方案是两层防护:脉压前先用幅度归一化和非线性压缩把信号动态范围压低,CFAR 之前再对先验的强静态杂波位置做凹口处理。如果条件允许,也可以在波形设计阶段改用非线性调频或相位编码波形,把旁瓣能量打散到更宽的时延区间。
4.3 平台运动带来的多普勒展宽
静态调试一切正常,一装到运动平台上,多普勒谱立刻变糊。原因并不复杂:平台径向速度给所有回波叠加了一个额外的多普勒频移。这时候不能简单调 CFAR 门限去掩盖,而要做运动补偿:根据惯导提供的平台速度和航向,对每个距离单元的相位做补偿后再积累。一个容易忽略的细节是惯导数据延迟,如果延迟大于最小积累时间间隔,补偿后的残余相位误差反而会让速度估计变乱。
4.4 标定和校准必须前置
这个系统里各种非理想特性很折磨人:功放非线性、I/Q 不平衡、滤波器群延迟、天线相位中心不一致。这些误差不标定,理论值永远只是参考。我的做法是每次上电后先跑一遍内部校准环路,把发射信号直接耦合进接收通道,测出系统延迟和幅相响应,再在数字处理中做补偿。这一步做完,实测距离精度会收敛很多,这为后续测角、跟踪打下基础。
5. 一点经验总结
PLFM_RADAR 做下来,我最深的一个体会是:雷达工程百分之八十的时间都花在“让信号变干净”这件事上。波形设计和理论参数计算只是起点,频谱不混叠、时序对齐、系统标定做完,后面的检测和跟踪才谈得上。另一个很实际的经验是,不要一上来就追求极限参数,先搭一个带宽适中、硬件简单、能跑通全链路的原型,比一开始就堆高性能器件重要得多。参数优化留到链路稳定之后再去抠,效率会高不少。
最后分享一个小技巧:调试雷达时,准备一个金属角反射器当标准目标,比用真人真车方便得多。它雷达截面积大、方向性好、成本低,在不同距离上测一组回波,能直观看到脉压峰值、旁瓣电平和距离测量误差随信噪比变化的曲线。这套方法论让我把很多“看起来玄学”的问题,变成了可以量化的指标。