> 文档中心 > 毫米波雷达测距/测速原理介绍_小七自学笔记

毫米波雷达测距/测速原理介绍_小七自学笔记


Chirp

Chirp是指频率随时间而改变(增加或减少)的信号, 这一术语可以与扫频信号(Sweep signal)互换使用. 它通常用于声纳、雷达和激光.

距离分辨率(Range Resolution)

雷达需要具备区分两个距离非常近的目标的能力,距离分辨率完全取决于chirp的带宽B_sweep.
d r e s = c / 2 B dres = c/2B dres=c/2B
最大探测距离(由采样率决定)
d m a x = c f s / 2 μ dmax = cfs/2μ dmax=cfs/2μ

μ = B / T c μ = B/Tc μ=B/Tc

Tc:为扫描时间

速度分辨率(Velocity Resolution)

如果两个目标有相同的距离, 但是当它们以不同的速度移动, 它们仍然可以被区分开来。速度分辨率取决于chirp的个数.。正如讨论我们的情况下, 我们选择发送128个chirp,较高的chirp数量增加了速度分辨率, 但它也需要更长的时间来处理信号.
V r e s = 2 λ / f d = λ / 2 T c N Vres = 2λ/fd = λ/2TcN Vres=2λ/fd=λ/2TcN
N:调频连续波的个数

Tc:重复周期

角度分辨率(Angle Resolution)

雷达能够在空间上分离两个目标. 即使两个目标在相同的距离以相同的速度运动, 它们仍然可以通过雷达坐标系中的角度分辨出来.

距离估计

R a n g e = c / 2 ∗ τ Range = c/2*τ Range=c/2τ

测量频移来确定雷达信号的传输时间

FMCW 波形具有频率随时间线性变化的特点. 如果雷达能够确定接收频率和雷达的斜坡频率之间的差值, 那么它就可以计算雷达信号的时间和距离目标的距离.

如果目标是静止的, 那么发射频率和接收频率是相同的. 但是, 雷达的斜坡频率是随时间不断变化的, 所以, 当我们取得接收频率和斜坡频率之间的差(beat frequency) , 我们就得到了信号传输时间.

毫米波雷达测距/测速原理介绍_小七自学笔记

fb是拍频, 通过雷达的斜坡频率减去接收到的频率来测量.
f b = f r a m p i n g − f r e c e i v e d fb = framping - freceived fb=frampingfreceived
雷达发射信号的频率是77 GHz, 返回信号的频率是77.01Ghz, 它们的差值delta称为拍频.
t d / T c = f b / B td/Tc = fb/B td/Tc=fb/B

t d = 2 R / c td = 2R/c td=2R/c

可以由上面的式子推算出目标的距离:
R = c T c f b / 2 B R = cTcfb/2B R=cTcfb/2B
td:为时延

距离计算需要chirp扫描时间Tc和chirp带宽B_sweep, 而这些可以依据我们配置时的雷达距离分辨率和最大探测距离计算.

一般来说, 对于 FMCW 雷达系统, 扫描时间*(Ts)至少应该是雷达最大距离往返时间的5-6倍.

多普勒

由于目标速度的多普勒效应, 接收到的信号频率会有一个频移fd,多普勒频移与目标的速度成正比,
f d = 2 v r / λ fd = 2vr/λ fd=2vr/λ
通过测量多普勒引起的频率偏移, 雷达可以确定速度.

综上, 拍频由两个频率分量组成: fr(距离引起的频率增量)和 fd(速度引起的频率偏移). 值得注意的是在汽车雷达的情况下, fdfr相比是非常小的. 因此多普勒速度是通过测量多个chirp之间的相位变化率来计算的.

相位引起频率的变化

运动目标在每次chirp持续时间内的微小位移会引起的相位变化. 由于每次chirp的持续时间一般是微秒(μs), 因此会导致毫米级(mm)的微小位移. 这可以用来计算相位变化率,从而确定多普勒频率.
d Φ / d t = f r e q u e n c y dΦ/dt = frequency dΦ/dt=frequency

FFT

时域信号包含多个频率分量. FFT 技术可以分离所有的频率成分, 给出回波信号的频率响应.

ID FFT

毫米波雷达测距/测速原理介绍_小七自学笔记

Rang FFT 运行在每一个样本的每个 chirp 上,每个chirp取样N次,并为每一个样本产生一个距离块. 在这个过程中每一次chirp都会重复,因此它会产生一个N * chirp的Range FFT块.这些 FFT bins的集合也称为 FFT block.

block每列中的每一个bin表示新增的范围值, 因此最后一个range bin的末端表示雷达的最大范围.

2D FFT

之前我们说过, 多普勒频移可以通过处理多个chirp之间的相位变化率来实现. 一旦所有的range bins在之前的1st FFT中确定后, 你需要沿着time轴实施2nd FFT, 从而确定多普勒频移.

1st FFT 的输出给出了每个目标的拍频、幅度和相位. 然而当我们从一个chiro移动到另一个chirp(每行的一个格到另一个格)时, 由于目标的小位移, 这个相位还是会发生变化. 通过实施2nd FFT , 它能够确定相位的变化率.

毫米波雷达测距/测速原理介绍_小七自学笔记

通过对各行 FFT bin进行2nd FFT 运算, 可以得到Doppler FFT. 这被称为二维快速傅里叶变换.

经过二维快速傅里叶变换, 每列中的每个bin代表增加的距离值, 行中的每个bin对应一个速度值.

去零多普勒

雷达信号往往伴随着大量的噪声. 雷达不仅接收来自目标的反射信号, 而且还接收来自环境和不需要的目标的反射信号. 来自这些非必要源的散射波被称为杂波.

去除杂波的一种方法是去除具有0多普勒速度的信号. 由于驱动场景中的杂波往往是由静止目标产生的, 0多普勒滤波可以有效地去除这些杂波. 0多普勒滤波的缺点是雷达不能检测到路径中的静止目标, 这将导致检测失败.

另一种方法是采用固定杂波阈值分割( fixed clutter thresholding). 在固定阈值的情况下, 对阈值以下的信号进行剔除. 该方法在检测阈值设置过高的情况下, 会出现极少的虚警(false alarms), 但同时也会掩盖有效目标. 如果阈值设置得太低, 则会导致过多的错误警报. 如在下图中, 固定阈值导致虚警和漏检弱目标.

还有一种方法是使用动态阈值分割(dynamic thresholding). 动态阈值分割通过改变阈值水平来降低误报率. 利用这种名为 CFAR(Constant False Alarm Rate)的技术, 可以监测每一个或每一组距离多普勒bin的噪声, 并将信号与本地的噪声水平进行比较. 此比较用于创建一个阈值, 该阈值为CFAR.

CFAR

CFAR 根据车辆周围环境变化检测阈值. 通过实现恒定的虚警率, 可以解决虚警问题.

目前有四种CFAR:CA-CFAR OS-CFAR GO-CFAR WCA-CFAR

CA-CFAR 是最常用的恒虚警检测技术. CA-CFAR测量被测单元(CUT)两侧的训练单元的干扰程度. 然后用这个测量来决定目标是否在被测单元(CUT)中. 该过程遍历所有的距离多普勒单元, 并根据噪声估计确定目标的存在.

FFT bins是在通过多个chirp的Range Doppler FFT生成的. CA-CFAR使用滑动窗口遍历整个FFT bins . 每个窗口由以下单元格组成:

**被检测单元:**通过比较信号电平和噪声估计值(阈值)来检测目标是否存在的单元.

**训练单元:**在训练单元上测量噪声水平. 训练单元可以分为两个区域, 滞后于CUT的单元称为滞后训练单元, 而领先于CUT的单元称为前导训练单元. 通过对训练单元下的噪声进行平均来估计噪声. 在某些情况下, 采用前导或滞后的噪声平均值, 而在其他情况下, 则合并前导和滞后的噪声平均值, 并考虑两者中较高的一个用于噪声水平估计. 训练单元的数量应根据环境确定. 如果交通场景繁忙, 则应使用较少的训练单元, 因为间隔较近的目标会影响噪声估计.

**保护单元:**紧邻CUT的单元被指定为保护单元. 保护单元的目的是避免目标信号泄漏到训练单元中, 这可能会对噪声估计产生不利影响. 保护单元的数量应根据目标信号从被测单元中泄漏出来的情况来确定. 如果目标反射很强, 它们通常会进入周围的单元.

**偏移:**使用偏移值来缩放噪声阈值. 如果信号强度以对数形式定义, 则将此偏移值添加到平均噪声估计中, 否则相乘.

接下来, 我们来实现1维的CA-CFAR.

T : 训练单元

G : 保护单元

N : 总单元

  1. 确定训练单元和保护单元的数量
  2. 开始在整个FFT 1D阵列上一次滑动一个单元格的窗口. 总窗口大小应为:2(T + G)+ CUT
  3. 对于每一步, 将所有前导或滞后训练单元内的信号(噪声)相加
  4. 对总和求平均值以确定噪声阈值
  5. 使用适当的偏移量值缩放阈值
  6. 在CUT中的被测信号从窗口起点T + G + 1开始的
  7. 将5中测量的信号与4中测量的阈值进行比较
  8. 如果在CUT中测量的信号电平小于所测量的阈值, 则将0值分配给CUT中的信号, 否则分配1.
  9. 1D CA-CFAR的代码实现:
close all;clear all;clc% 数据点数Ns = 1000;%产生随机噪声s=randn(Ns,1);%目标的位置。bin 100、200、300、700为目标,其振幅分别为8、9、4、11。s([50 ,200, 300, 700])=[14 9 4 11];plot(s);%% TODO: CFAR 去除噪声% 1. Define the following:% 1a. 训练单元% 1b. 保护单元T = 12G = 4;% Offset : 理想的信噪比增加高于噪声阈值的空间offset=5;% 向量保持阈值threshold_cfar = [];%阈值化后保持最终信号的矢量signal_cfar = [];% 在信号长度上滑动窗口for i = 1:(Ns-(G+T))  % 通过在训练单元内测量噪声阈值来确定噪声阈值    noise_level = sum(s(i:i+T-1));    % 在CUT内测量信号    threshold = (noise_level /T) * offset;    threshold_cfar = [threshold_cfar, {threshold}];    signal = s(i+T+G);    % 对超过阈值的信号进行滤波    if (signal < threshold) signal = 0;    end     signal_cfar = [signal_cfar, {signal}];end% 对滤波后的信号进行绘图plot (cell2mat(signal_cfar));% 原始信号,阈值和滤波信号figure,plot(s);hold on,plot(cell2mat(circshift(threshold_cfar,G)),'r--','LineWidth',1)hold on, plot (cell2mat(circshift(signal_cfar,(T+G))),'g--','LineWidth',2);legend('信号','CFAR 阈值','检测')

毫米波雷达测距/测速原理介绍_小七自学笔记

毫米波雷达测距/测速原理介绍_小七自学笔记

2D CA-CFAR

二维恒虚警类似于一维恒虚警, 但在距离多普勒块的两个维度上都实现了. 2D CA-CFAR包括训练单元,被测单元以及保护单元, 以防止目标信号对噪声估计的影响.

毫米波雷达测距/测速原理介绍_小七自学笔记

  1. 确定每个维度Tr和Td的训练单元数. 同样, 选择保护单元格Gr和Gd的数量.
  2. 在整个单元矩阵上滑动待测单元(CUT).
  3. 选择总的包含训练, 保护和测试单元的网格. Grid Size = (2Tr+2Gr+1)(2Td+2Gd+1).
  4. 保护区域和被测单元的总数:(2Gr+1)(2Gd+1).
  5. 训练单元的总数为:(2Tr+2Gr+1)(2Td+2Gd+1) - (2Gr+1)(2Gd+1)
  6. 测量并平均所有训练单元的噪声, 并获得阈值.
  7. 将偏移量(如果以dB为单位的信号强度)添加到阈值, 以将错误警报保持在最低水平.
  8. 确定被测单元的信号电平.
  9. 如果CUT信号电平大于阈值, 则将值分配为1, 否则将其等于零.
  10. 由于被测单元不位于边缘, 而训练单元占据了边缘, 我们将边缘抑制为零. 任何既不是1也不是0的单元格值, 为其分配一个0.

元的总数为:(2Tr+2Gr+1)(2Td+2Gd+1) - (2Gr+1)(2Gd+1)
6. 测量并平均所有训练单元的噪声, 并获得阈值.
7. 将偏移量(如果以dB为单位的信号强度)添加到阈值, 以将错误警报保持在最低水平.
8. 确定被测单元的信号电平.
9. 如果CUT信号电平大于阈值, 则将值分配为1, 否则将其等于零.
10. 由于被测单元不位于边缘, 而训练单元占据了边缘, 我们将边缘抑制为零. 任何既不是1也不是0的单元格值, 为其分配一个0.