4、雷达工作原理:毫米波雷达原理、多普勒效应、点云生成机制、雷达数据特性
好,咱们进入雷达的部分。说实话,在传感器融合这个领域,雷达是个很有意思的角色。它不像摄像头那样能给你丰富的颜色和纹理,但它有自己不可替代的优势——全天候、全天时,而且能直接测速。我在做第一个量产项目时,就吃过摄像头的亏:大雾天,视觉算法直接罢工,全靠雷达撑着。从那以后,我对雷达就多了一份敬畏。
4.1 毫米波雷达原理
毫米波雷达,说白了就是发射毫米波段的电磁波,然后接收回波。为什么用毫米波?因为它的波长在1到10毫米之间,这个波段有几个好处:天线尺寸可以做得很小,分辨率够用,而且在大气中传播时衰减适中。
我习惯把毫米波雷达的工作流程拆成三步:
- 发射:雷达发射调频连续波(FMCW),频率随时间线性变化
- 反射:波遇到目标后反射回来
- 混频:发射信号与回波信号混频,得到中频信号
这里有个关键点——中频信号的频率正比于目标的距离。为什么?因为发射信号和回波信号之间存在时间差,这个时间差导致频率差。频率差越大,距离越远。嗯,就是这么简单粗暴。
核心公式:距离 d = (c × Δf) / (2 × S)
其中 c 是光速,Δf 是中频频率,S 是调频斜率
4.2 多普勒效应
多普勒效应,你肯定在中学物理里听过。火车朝你开过来,汽笛声变尖;离你远去,声音变低沉。雷达里的多普勒效应原理一模一样,只不过用的是电磁波。
但这里有个坑——我刚开始做雷达时,一直以为多普勒频移和距离测量是分开的。后来才发现,在FMCW雷达里,这两个信息是耦合在一起的。中频信号里既有距离信息,又有速度信息。怎么解耦?靠发射多个chirp(啁啾信号),然后做二维FFT。
具体来说:
- 第一个维度(快时间FFT)得到距离
- 第二个维度(慢时间FFT)得到速度
多普勒频移的计算公式:
fd = 2 × v × cos(θ) / λ
其中 v 是目标速度,θ 是目标与雷达的夹角,λ 是波长。注意这个 cos(θ)——如果目标横着飞,多普勒频移为零。我曾经在测试时遇到过这种情况,一辆车从侧面横穿,雷达居然没测出速度,当时我还以为是算法写错了。
个人经验:多普勒效应在低速目标上容易出问题。比如行人以0.5m/s的速度走,多普勒频移只有几十赫兹。这时候需要提高频率分辨率,也就是增加慢时间维度的采样点数。我一般会保证至少64个chirp做一次速度估计。
4.3 点云生成机制
点云生成,是雷达从原始信号到可用数据的关键一步。整个过程我习惯分成四个阶段:
| 阶段 | 输入 | 输出 | 关键操作 |
|---|---|---|---|
| 1. 距离-速度估计 | 原始ADC数据 | 距离-速度图 | 二维FFT |
| 2. 恒虚警检测 | 距离-速度图 | 候选目标 | CFAR算法 |
| 3. 角度估计 | 多天线数据 | 方位角/俯仰角 | 波束成形/MUSIC |
| 4. 点云输出 | 距离+速度+角度 | 点云列表 | 聚类/过滤 |
这里我想重点说说CFAR(恒虚警检测)。你想想看,雷达接收到的信号里,噪声水平是变化的——下雨天噪声大,晴天噪声小。如果用一个固定的阈值,要么漏检,要么虚警太多。CFAR的做法是:对每个待检测单元,用周围单元估计噪声水平,然后动态调整阈值。
我常用的CFAR实现:
// 一维CA-CFAR伪代码
for each 待检测单元 x[i]:
// 取左右保护单元(防止目标自干扰)
left_noise = mean(x[i-L-Guard : i-Guard])
right_noise = mean(x[i+Guard : i+Guard+L])
noise_level = (left_noise + right_noise) / 2
threshold = noise_level * alpha // alpha是缩放因子
if x[i] > threshold:
标记为目标
避坑指南:我曾经在密集目标场景下吃过亏。两辆车并排行驶,CFAR的保护单元设置太小,导致一个目标被另一个目标的旁瓣淹没。后来我把保护单元从2个增加到4个,情况就好多了。记住:保护单元的大小取决于雷达的距离分辨率。
4.4 雷达数据特性
做融合算法,不了解传感器特性就是瞎搞。雷达数据有几个关键特性,我一个个说。
4.4.1 稀疏性
雷达点云有多稀疏?举个例子,一个中端激光雷达每秒能出几十万甚至上百万个点,而毫米波雷达通常只有几十到几百个点。为什么这么少?因为雷达的角分辨率有限,而且只有检测到目标才会生成点。
这种稀疏性带来的问题很明显:
- 目标形状信息几乎为零——你只能看到一个点,不知道它是轿车还是卡车
- 目标遮挡判断困难——稀疏点云里,前后目标可能混在一起
- 跟踪初始化慢——需要多帧才能确认目标存在
我个人的处理习惯是:不要试图从雷达点云里提取形状特征,那是摄像头该干的事。雷达的核心价值在于距离、速度和角度,用好这三个维度就够了。
4.4.2 噪声模型
雷达噪声不是白噪声,它有明显的统计特性。我总结了几种常见噪声:
| 噪声类型 | 来源 | 特性 | 处理方法 |
|---|---|---|---|
| 热噪声 | 接收电路 | 高斯分布,均匀 | 滤波、多帧平均 |
| 多径噪声 | 地面/建筑物反射 | 产生虚假目标 | 高度滤波、一致性检查 |
| 闪烁噪声 | 目标RCS变化 | 点云位置抖动 | 卡尔曼滤波平滑 |
| 旁瓣噪声 | 天线旁瓣 | 强目标产生虚假弱目标 | 窗函数、旁瓣抑制 |
这里我想特别说一下多径噪声。你想想看,雷达波打到地面再反射到目标,路径长度比直达波长,雷达会误以为目标更远。我在高速公路上遇到过这种情况:护栏反射导致雷达在车道外侧检测到虚假目标,差点让AEB误触发。后来我加了一个地面回波滤波器,专门处理这类问题。
经验之谈:雷达噪声的方差与距离的平方成正比。也就是说,远距离的目标,距离测量误差更大。在做融合时,我通常会给近距离目标更高的权重。具体做法是在卡尔曼滤波的观测噪声协方差矩阵里,把R矩阵设为距离的函数。
嗯,雷达这部分内容不少,但核心就这些。记住:雷达是可靠的测距测速传感器,但别指望它给你精细的轮廓信息。在融合算法里,雷达和摄像头是互补的——雷达提供稳定的距离和速度,摄像头提供丰富的语义信息。下一章我会讲如何把这两者结合起来,敬请期待。