第2章:毫米波雷达基础
说实话,做传感器融合这些年,我接触最多的就是毫米波雷达和激光雷达。很多人一上来就问我:“老师,毫米波雷达到底怎么工作的?为什么它能在雨雾天正常工作?”
嗯,今天我们就来聊聊这个话题。我会从最基础的FMCW原理讲起,再到信号处理、点云生成,最后带你读懂那些让人头疼的参数表。
2.1 FMCW工作原理
毫米波雷达的核心技术,说白了就是FMCW——调频连续波。我刚开始接触时也觉得这名字挺唬人,其实原理很简单。
想象一下,你对着山谷喊一声,听到回声。你喊的声音频率不变,那只能通过时间差算距离。但FMCW不一样——它发射的信号频率是随时间变化的,就像警笛声由低到高那样。
具体来说,雷达发射一个频率随时间线性增加的信号,同时接收目标反射回来的信号。发射信号和接收信号之间会有一个频率差,这个差值就叫“差频”。
为什么会这样?因为信号往返需要时间。在这段时间里,发射信号的频率已经变了。所以,差频的大小直接反映了目标的距离。
核心公式:
距离 R = (c × T × f_b) / (2 × B)
其中:c是光速,T是调频周期,f_b是差频,B是带宽
我在项目中遇到过一个问题:差频信号里不仅有距离信息,还有速度信息。怎么区分?这就引出了多普勒效应。目标运动时,反射信号的频率会额外偏移,这个偏移量就是多普勒频移。通过它,我们能算出目标的速度。
2.2 信号处理流程
拿到原始的差频信号后,我们需要做一系列处理才能得到有用的信息。我习惯把这个流程分成三步走:
- 距离FFT:对每个chirp做一次FFT,得到距离维度的信息
- 多普勒FFT:对多个chirp在慢时间维度做FFT,得到速度信息
- CFAR检测:从噪声中提取真实目标
你想想看,原始数据是一个二维矩阵——行代表距离采样点,列代表chirp序号。先对每行做FFT,得到距离-慢时间矩阵。再对每列做FFT,就得到了距离-多普勒图。
我的经验:做距离FFT时,窗函数的选择很关键。我一般用汉明窗,旁瓣抑制效果好,主瓣宽度也能接受。曾经试过矩形窗,结果旁瓣把弱目标淹没了,排查了好久才发现问题。
2.2.1 距离-多普勒FFT代码示例
import numpy as np
def range_doppler_fft(data, fs, num_chirps, num_samples):
"""
data: 原始差频信号,形状 (num_chirps, num_samples)
fs: 采样率
"""
# 距离FFT
range_fft = np.fft.fft(data, axis=1)
range_fft = range_fft[:, :num_samples//2] # 取单边谱
# 多普勒FFT
doppler_fft = np.fft.fft(range_fft, axis=0)
doppler_fft = np.fft.fftshift(doppler_fft, axes=0) # 零频移到中间
return doppler_fft
2.3 点云生成
距离-多普勒图出来后,我们得到了目标的距离和速度。但还缺一个关键信息——角度。这就需要用到多根接收天线了。
我记得第一次做角度估计时,用了最简单的波束成形方法。后来发现,MIMO技术能大幅提升角度分辨率。说白了,就是通过多根发射天线和多根接收天线,虚拟出更多的天线阵元。
避坑指南:我曾经在角度估计时忽略了相位校准。结果点云里出现了很多“鬼影”目标。后来花了整整两天时间,一根天线一根天线地测相位偏差,才把问题解决。所以,相位校准这一步千万别省。
点云生成的核心步骤:
- 对每个检测到的目标,提取距离、速度、角度信息
- 将极坐标转换为笛卡尔坐标
- 根据信噪比给每个点分配置信度
- 输出点云数据,通常包含x, y, z, v, snr等字段
2.4 常见参数解读
拿到一份雷达规格书,你可能会被一堆参数搞晕。我挑几个最关键的说说:
| 参数 | 含义 | 我的理解 |
|---|---|---|
| 最大探测距离 | 能检测到目标的最远距离 | 受发射功率和噪声系数限制,别太信理论值 |
| 距离分辨率 | 能区分两个目标的最小距离差 | 由带宽决定,带宽越大分辨率越高 |
| 最大不模糊速度 | 能测量的最大速度 | 受chirp周期限制,周期越短测速范围越大 |
| 角度分辨率 | 能区分两个目标的最小角度差 | 由天线孔径决定,MIMO可以等效增大孔径 |
| 帧率 | 每秒输出点云的次数 | 一般10-20Hz,太高了处理不过来 |
实用技巧:选型时别只看参数最大值。我一般会关注“典型值”和“最差值”。比如最大探测距离写200米,但实际在雨雾天可能只有100米。多问问供应商的实测数据,比看规格书靠谱。
2.5 本章知识体系
为了让你更直观地理解毫米波雷达的整个工作流程,我画了一张图:
这张图把整个流程串起来了。从发射FMCW信号开始,到最终输出点云数据,每一步都环环相扣。我个人觉得,理解了这个流程,你就掌握了毫米波雷达的八成精髓。
本章小结:
- FMCW通过发射频率变化的信号,利用差频计算距离
- 距离-多普勒FFT是信号处理的核心,先做距离维FFT,再做速度维FFT
- 点云生成需要结合距离、速度、角度三个维度的信息
- 参数解读时,重点关注带宽、chirp周期、天线数量这三个关键参数
好了,毫米波雷达的基础就聊到这里。下一章我们会深入激光雷达,看看它和毫米波雷达到底有什么不同,又该如何互补。