SuperRadar 社区共建案例|从全链路到真实车辆场景:A100 周界感知与 MTI 实验

Niko曾辉
阅读次数11

作者介绍

黄涛 北京理工大学毫米波与太赫兹波技术在读博士生,研究方向太赫兹光电子学

社区贡献说明

本文为 SuperRadar 开发者贡献共建应用案例,作者基于 CTSAI-A100 真实车辆周界 ADC 数据,建立了一套面向车辆靠近 / 远离场景的 Range-Doppler 分析、MTI 杂波抑制与 LFMCW 参数实验工程。

项目工程位于:https://github.com/Super-Radar/CTSAI-A100/tree/main/community/projects/a100-perimeter-vehicle-radar-analysis

引言

本项目把真实场景中难以单独控制的带宽、Chirp 时宽、PRF、目标数量、目标速度与 MTI 阶数分开研究。

车辆靠近或者远离雷达时,ADC 中不仅包含车辆运动产生的回波,还混合着地面、道路设施、建筑物以及多径传播产生的静态和近静态反射。

image.png
车辆周界采集场景

这时,一些问题会变得更加具体:

  • 车辆运动在 Range-Doppler Map 中会呈现怎样的特征?
  • 大量能量集中在零 Doppler 附近时,MTI 能带来怎样的变化?
  • MTI 阶数越高,是不是一定越好?
  • 带宽、PRF、Chirp 时宽和目标速度,又分别影响了什么?

实验场景与数据

本项目实际采集数据如下:

场景 Acquisition Run RX 数 ADC TXT
空环境 1 4 4
车辆靠近 5 4 20
车辆远离 5 4 20
合计 11 - 44

本实验边界

ALL-channel 数据采集和保存存在明显时间开销。

因此,车辆靠近和车辆远离场景中的 5 个 Run,应该理解为:车辆处于不同位置和运动状态时采集得到的 5 组离散场景样本。

不能直接理解为严格等时间间隔的连续车辆轨迹。

同样,在这批运动车辆数据中,Rx0-Rx3 也不能直接假设为严格同时采集的 coherent array snapshot。

因此,本项目中的 Doppler FFT 与 MTI 均在“单个 ADC 文件内部的一帧 256 个 slow-time chirp”内完成,而不是跨多个 Run 做慢时间处理。

实测处理链

本次真实 ADC 的处理流程如下:

text 复制代码
CTSAI-A100 ADC TXT
        ↓
Header / Payload / Trailer Check
        ↓
Packed uint32 → Signed int16
        ↓
Fast-time DC Removal
        ↓
Range FFT
        ↓
Range-Slow-Time Data
        ↓
MTI2 / MTI3
        ↓
Doppler FFT
        ↓
Range-Doppler Map
        ↓
近零 Doppler 能量统计

ADC 与 Range-Doppler 基础

本次实验继续使用 CTSAI-A100 ADC 原始数据作为输入。

数据解析方式沿包括:

  • Header / Payload / Trailer 校验;
  • 32-bit Packed Word 解包;
  • 16-bit ADC 二进制补码恢复;
  • Fast-time / Slow-time 数据重组。

以 Pf0 数据为例:

N_s=1024,\qquad N_c=256

每个 32-bit Packed Word 包含两个 16-bit ADC Sample,因此标准 Payload 包含:

N_{\mathrm{word}}=\frac{N_sN_c}{2}=131072

个 Packed Word。

完成解析后,单 RX 数据可以表示为:

\mathbf{X}_q\in\mathbb{R}^{N_s\times N_c}

本文不再重复展开 Packed ADC 的完整解包过程。

同样,关于 LFMCW 信号模型、Range FFT、Doppler FFT 以及距离 / 速度物理坐标的完整过程。

请参考上一篇文章*《社区共建 | 北京理工大学黄涛基于 A100 实现 MATLAB 全链路信号处理工程》。*

本文只保留后续需要使用的几个关键关系。

调频斜率:

S=\frac{B}{T_r}

目标距离对应的主要距离频率:

f_R=\frac{2SR}{c}

目标径向速度对应 Doppler Frequency:

f_D=\frac{2v}{\lambda}

其中波长为:

\lambda=\frac{c}{f_c}

对于理想点目标,可以近似表示为:

x_p[n,m]=A_p\exp\left(j2\pi f_{R,p}\frac{n}{f_s}\right)\exp\left(j2\pi f_{D,p}mT_{\mathrm{sameTX}}\right)

Pf0 参数下的距离轴

Pf0 主要参数如下:

参数 数值
载频 fc 76.3 GHz
调频带宽 B 300 MHz
Chirp Ramp Tr 43 μs
Chirp Period Tc 48 μs
ADC 采样率 fs 25 MHz
Samples / Chirp Ns 1024
Chirps / Frame Nc 256
Range FFT Nr 1024
Doppler FFT Nd 256

调频斜率:

S=\frac{300\times10^6}{43\times10^{-6}}\approx6.9767\times10^{12}\ \mathrm{Hz/s}

当前采样与 FFT 参数对应的距离栅格为:

\Delta R_{\mathrm{bin}}=\frac{cf_s}{2SN_r}\approx0.52454\ \mathrm{m/bin}

对应 Nyquist 距离上限约为

R_{\max}=\frac{cf_s}{4S}\approx268.56\ \mathrm{m}

image.png
车辆靠近代表样本距离谱

距离分辨率与 FFT 栅格

完整调频带宽对应的经典 FMCW 理论距离分辨率:

\Delta R_{\mathrm{res}}=\frac{c}{2B}\approx0.49965\ \mathrm{m}

当前 ADC 每个 Chirp 实际观测时间:

T_{\mathrm{obs}}=\frac{N_s}{f_s}=40.96\ \mu\mathrm{s}

在该采样窗口内覆盖的线性调频带宽约为:

B_{\mathrm{obs}}=ST_{\mathrm{obs}}\approx285.77\ \mathrm{MHz}

因此:

\frac{c}{2B_{\mathrm{obs}}}\approx0.52454\ \mathrm{m}

与当前 Range FFT 栅格基本一致。

这里两个数值虽然接近,但物理意义并不完全相同:

  • 约 0.5245 m/bin 表示当前 ADC 采样窗口及 FFT 参数下的距离坐标间隔;
  • 约 0.4997 m 表示完整 300 MHz 调频带宽对应的理论距离分辨能力。

Doppler 与速度轴

完成距离维处理后,对固定距离 bin 和通道观察 Chirp 序列。

若目标径向速度近似恒定,则慢时间相位满足

x[m] \propto e^{j2\pi f_DmT_{\mathrm{sameTX}}}.

这里使用 T_{\mathrm{sameTX}} 是为了兼容后续 TDM MIMO:当不同 TX 轮流发射时,同一个 TX 的有效慢时间采样周期可能是多个 Chirp Period。

Doppler FFT 写为

X_D[k,\ell,q] = \sum_{m=0}^{M-1} X_r[k,m,q]w_d[m] e^{-j2\pi \ell m/N_d},

其中 M 为有效 slow-time 样本数,N_d 为 Doppler FFT 点数。

执行 fftshift 后,零多普勒位于频谱中心。

多普勒频率与径向速度满足

v=\frac{\lambda f_D}{2}.

Doppler FFT 的频率栅格为

\Delta f_{D,\mathrm{bin}} = \frac{1}{N_dT_{\mathrm{sameTX}}},

对应速度栅格

\Delta v_{\mathrm{bin}} = \frac{\lambda} {2N_dT_{\mathrm{sameTX}}} .

若实际 slow-time 只采集 M 个 Chirp,则 coherent processing interval 为

T_{\mathrm{CPI}} = MT_{\mathrm{sameTX}},

由有限观测时长决定的速度分辨尺度近似为

\Delta v_{\mathrm{res}} \approx \frac{\lambda}{2T_{\mathrm{CPI}}} = \frac{\lambda}{2MT_{\mathrm{sameTX}}} .

当 N_d>M 时,Doppler 零填充可以让频谱栅格变得更密,但不会增加 CPI,因此不会等比例提高真实速度分辨能力。

这与距离维中“FFT 栅格”和“波形分辨率”之间的区别类似。

慢时间采样频率为

f_{s,\mathrm{slow}} = \frac{1}{T_{\mathrm{sameTX}}},

所以无模糊多普勒范围近似为

|f_D| < \frac{1}{2T_{\mathrm{sameTX}}}.

转换成速度:

|v| < v_{\max} = \frac{\lambda}{4T_{\mathrm{sameTX}}} .

Pf0 SISO 配置下

T_{\mathrm{sameTX}} = 48\ \mu s.

由 f_c=76.3\ \mathrm{GHz}:

\lambda = \frac{c}{f_c} \approx 3.9291\ \mathrm{mm}.

因此

\Delta v_{\mathrm{bin}} \approx 0.15988\ \mathrm{m/s/bin},

v_{\max} \approx 20.46\ \mathrm{m/s}.

image.png
车辆靠近代表样本 Range-Doppler Map

为什么需要 MTI?

真实道路和室内环境中,固定反射面在连续 Chirp 之间的位置变化很小,因此对应的慢时间相位近似稳定,大量能量集中在 f_D\approx0 的区域。

车辆、人体和其他运动目标则通过 chirp-to-chirp 相位变化产生非零多普勒。

MATLAB ADC 全链路工程在 Doppler FFT 之前提供多种慢时间杂波处理:

text 复制代码
NONE
MEAN
MTI2
MTI3
SVD
SVD_MEAN
SVD_MTI2

不同方法对“稳定背景”的数学假设并不相同:

  • MEAN 直接去除常量慢时间分量;
  • MTI 用差分滤波器在零频构造零点;
  • SVD 则从整帧数据中寻找能量占主导的低秩相关子空间。

均值消除

对某个 range-channel 单元的慢时间序列:

\mathbf x = [x_0,x_1,\ldots,x_{M-1}]^T.

慢时间均值为

\bar x = \frac1M\mathbf1^T\mathbf x.

处理后:

\mathbf y = \mathbf x-\bar x\mathbf1 = \left( \mathbf I-\frac1M\mathbf1\mathbf1^T \right)\mathbf x.

记

\mathbf P_\perp = \mathbf I-\frac1M\mathbf1\mathbf1^T.

由于

\mathbf P_\perp\mathbf1=\mathbf0,

任何在一个 CPI 内保持严格常量的慢时间复分量都会被投影掉。

若目标速度很低、一个 CPI 内相位变化很小,则目标分量也可能与常量子空间具有较高相关性,因此均值消除并不只影响“背景”。

MTI2

最基础的二脉冲抵消器:

y[n]=x[n]-x[n-1]

Z 域中:

Y(z) = (1-z^{-1})X(z),

对应传递函数:

H_{\mathrm{MTI2}}(z)=1-z^{-1}

令:

z=e^{j\omega}

其幅频响应:

\left|H_{\mathrm{MTI2}}(e^{j\omega})\right|=2\left|\sin\left(\frac{\omega}{2}\right)\right|

运动目标对应的 Slow-time 数字角频率为:

\omega_D=2\pi f_DT_{\mathrm{sameTX}}=\frac{4\pi vT_{\mathrm{sameTX}}}{\lambda}

因此 MTI2 对不同目标速度的幅度响应:

A_2(v)=2\left|\sin\left(\frac{2\pi vT_{\mathrm{sameTX}}}{\lambda}\right)\right|

当目标速度接近零时,可以近似得到:

A_2(v)\approx\frac{4\pi T_{\mathrm{sameTX}}}{\lambda}|v|

这给出了低速目标衰减的直接来源:速度越接近零,目标慢时间频率越靠近 MTI 的零点。

MTI3

项目代码中MT3同时测试了三脉冲抵消器:

y[n]=x[n]-2x[n-1]+x[n-2]

对应传递函数:

H_{\mathrm{MTI3}}(z)=1-2z^{-1}+z^{-2}=(1-z^{-1})^2

因此这里的 “3” 对应三脉冲结构,而差分阶数为二阶。

其幅频响应:

H_{\mathrm{MTI3}}(e^{j\omega}) = -4e^{-j\omega} \sin^2\frac{\omega}{2},

其幅度为

|H_{\mathrm{MTI3}}(e^{j\omega})| = 4\sin^2\frac{\omega}{2} .

代入目标速度:

A_3(v)=4\sin^2\left(\frac{2\pi vT_{\mathrm{sameTX}}}{\lambda}\right)

当目标速度趋近于零时:

A_2(v)=O(|v|)

而:

A_3(v)=O(v^2)

三脉冲抵消器在零多普勒附近下降更快,因此静态背景抑制可以更深,但低速目标也会比 MTI2 更容易损失。

SVD 低秩杂波抑制

工程代码中还提供基于整帧数据的 SVD 处理。

将 Range Cube 的 range-channel 维展开:

\mathbf X \in \mathbb C^{(N_rN_{\mathrm{ch}})\times M}.

奇异值分解:

\mathbf X = \mathbf U \mathbf\Sigma \mathbf V^H

其中

\sigma_1\ge\sigma_2\ge\cdots.

当环境中存在大面积稳定反射时,不同 range-channel 单元在慢时间上往往具有共同的强相关分量,这些分量会集中在较大的奇异值及其对应子空间中。

取前 r 个奇异分量:

\mathbf X_r = \mathbf U_r \mathbf\Sigma_r \mathbf V_r^H.

Eckart–Young 定理给出

\mathbf X_r = \arg\min_{\operatorname{rank}(\mathbf Z)\le r} \|\mathbf X-\mathbf Z\|_F.

若将该低秩部分作为稳定背景估计,则

\mathbf X_{\mathrm{clean}} = \mathbf X - \mathbf U_r\mathbf\Sigma_r\mathbf V_r^H

又因为

\mathbf X\mathbf V_r = \mathbf U_r\mathbf\Sigma_r,

可以改写为

\mathbf X_{\mathrm{clean}} = \mathbf X \left( \mathbf I-\mathbf V_r\mathbf V_r^H \right) .

前 r 个分量对应的能量比例为

\eta_r = \frac{\sum_{i=1}^{r}\sigma_i^2} {\sum_i\sigma_i^2}.

如果 r 取得过大,持续存在或速度很低的真实目标也可能进入主导子空间,因此 SVD 的秩选择同样需要结合目标速度范围和实际场景。

车辆周界实测结果

距离谱

空环境、车辆靠近与车辆远离均提供物理距离轴结果:

车辆靠近距离谱
image.png

车辆靠近

分别比较:

image.png
image.png
image.png
MTI
image.png
MTI2
image.png
MTI3

车辆远离

同样比较 MTI 前、MTI2 与 MTI3:

image.png
MTI
image.png
MTI2
image.png
MTI3

空环境

空道路背景则用于观察环境中稳定静态反射在 MTI 前后的变化:

image.png
image.png
image.png

近零 Doppler 能量变化

从 Range-Doppler Map 可以看到,经过 MTI 后,零 Doppler 附近的大量稳定能量发生明显变化。

为了进一步进行量化,工程在约:

-0.32\ \mathrm{m/s}\le v\le0.32\ \mathrm{m/s}

的速度窗口内统计处理前后的频谱能量。

代表性 Rx0 结果为:

场景 MTI2 MTI3
Empty 42.90 dB 68.37 dB
Vehicle Approaching 43.68 dB 69.76 dB
Vehicle Receding 42.23 dB 67.70 dB

从当前样本可以看到,MTI3 在近零 Doppler 区域带来的能量变化明显高于 MTI2。

这些 dB 数值描述的是当前样本、当前速度窗口和当前归一化方式下的近零 Doppler 频谱能量变化。

参数实验与理论对应

调频带宽决定什么?

经典 FMCW 理论距离分辨率:

\Delta R_{\mathrm{res}}=\frac{c}{2B}

分别比较对应:

调频带宽 理论距离分辨率
150 MHz 0.9993 m
300 MHz 0.4997 m
450 MHz 0.3331 m

可以看到,在其他条件近似不变时:增加有效调频带宽可以缩短距离脉冲响应主瓣,对相邻距离目标的分离更有利。

也就是说,当两个目标在距离维度非常接近时,更大的带宽更有利于形成可区分的距离响应。

image.png
Bandwidth Study

Chirp 时宽改变什么?

固定带宽 B 时:

S=\frac{B}{T_r}

目标距离对应的主要 Beat Frequency 为:

f_R=\frac{2SR}{c}=\frac{2BR}{cT_r}

因此:

f_R\propto\frac{1}{T_r}

改变 Chirp 时宽会改变调频斜率,从而改变距离 → Beat Frequency之间的映射关系。

但只要完整有效带宽仍然保持为 B,经典理论距离分辨能力依然主要由带宽决定。

另一方面,实际 ADC 采样率、采样窗口和最大 Beat Frequency 还会进一步影响实际的 FFT 栅格和可处理距离范围。

PRF 与速度范围

Chirp Period 为 T_c 时:

PRF=\frac{1}{T_c}

在 SISO 条件下,无模糊速度近似为:

v_{\max}=\frac{\lambda PRF}{4}

因此PRF提高,可以扩大无模糊速度范围。

但如果 Slow-time 样本数 M 保持不变:

T_{\mathrm{CPI}}=\frac{M}{PRF}

速度分辨尺度近似为:

\Delta v_{\mathrm{res}}\approx\frac{\lambda PRF}{2M}

也就是说:当 Chirp 数量不变时,PRF 越高,CPI 会越短,速度主瓣也会变宽。

因此 PRF 不是简单的“越高越好”,而是涉及:无模糊速度范围与有效观测时间之间的权衡。

如果希望在提高 PRF 的同时维持 CPI,就需要同步增加 Chirp 数量。

目标速度为什么会影响 MTI?

目标径向速度通过:

f_D=\frac{2v}{\lambda}

映射到 Slow-time Frequency。

MTI2 对应:

A_2(v)=2\left|\sin\left(\frac{2\pi vT_c}{\lambda}\right)\right|

MTI3 对应:

A_3(v)=4\sin^2\left(\frac{2\pi vT_c}{\lambda}\right)

当目标速度较小时:

A_2(v)\sim|v|

A_3(v)\sim v^2

所以目标速度越低,MTI 后的相对幅度越容易下降。

提高 MTI 阶数虽然可以进一步削弱静态分量,也会扩大对极低速运动的影响。

image.png
MTI 阶数参数实验

多个目标靠得太近会怎样?

多个理想点目标可以表示为:

x[n,m]=\sum_{p=1}^{P}A_p e^{j2\pi f_{R,p}n/f_s}e^{j2\pi f_{D,p}mT_c}

经过二维有限窗 DFT 后,可以近似表示为:

X[k,\ell]\approx\sum_{p=1}^{P}A_pW_r(k-k_p)W_d(\ell-\ell_p)

其中:

  • W_r 表示距离维窗函数的离散频率响应;
  • W_d 表示 Slow-time 窗函数的离散频率响应。

如果多个目标在距离和速度上间隔足够大,就可以形成相对独立的峰。

但当目标间隔逐渐接近距离或 Doppler 主瓣宽度时:不同目标响应会开始重叠。

这时,即使继续加入 CFAR、Peak Search 或亚栅格拟合,也仍然受到系统真实物理分辨能力的约束。

仿真与真实环境的差异

教学仿真中的目标通常被简化成一个理想点散射体:

x_p[n,m]=A_p e^{j2\pi f_{R,p}n/f_s}e^{j2\pi f_{D,p}mT_c}

但真实车辆显然不是一个点。

一辆车辆可能同时包含:

  • 车头;
  • 车轮;
  • 车身金属结构;
  • 玻璃;
  • 不同姿态下形成的多个强散射中心。

真实环境中还存在:

  • 地面;
  • 建筑物;
  • 路缘;
  • 固定物体;
  • 环境多径。

因此,真实数据更接近:

x[n,m]=\sum_{p=1}^{P}A_p[n,m]e^{j\phi_p[n,m]}+c[n,m]+w[n,m]

其中不同散射中心的幅度和相位还会随着车辆运动不断变化。

因此,真实车辆的 Range-Doppler Map 往往会出现:

  • 多个局部散射峰;
  • 距离方向扩展;
  • 速度方向扩展;
  • 随姿态变化的幅度;
  • 靠近零 Doppler 的低速成分;
  • 多径叠加产生的复杂谱结构。

这也是为什么:仿真用于理解规律,真实数据用于观察实际问题。

二者不能简单一一对应。

仿真中的深零频陷波可以验证 MTI 的滤波器关系,但不能直接等价成真实硬件在任意环境中的固定抑制度;

同样,真实 ADC 中出现的某一条非零 Doppler 频带,也需要结合实际 TX 编码、慢时间周期和采集配置才能进一步解释为物理速度。

LFMCW 仿真结果

高采样率发射 Chirp:

image.png
LFMCW 发射信号时频图

仿真 Range-Doppler:

Before MTI
After MTI
After MTI

参数实验:

image.png
Bandwidth Study
image.png
Chirp Duration Study
image.png
PRF Study
image.png
Target Number Study
image.png
Target Velocity Study
image.png
MTI Order Study

工程复现

项目工程位于:https://github.com/Super-Radar/CTSAI-A100/tree/main/community/projects/a100-perimeter-vehicle-radar-analysis

运行统一入口:

matlab 复制代码
main

也可以分别执行:

matlab 复制代码
run('tests/inspect_measured_dataset.m')
run('tests/check_measured_physical_axes.m')
run('tests/run_measured_physical_analysis.m')
run('tests/run_lfmcw_simulation.m')
run('tests/run_parameter_studies.m')

本项目局限性与物理解释边界

为了避免对实验结果做超出数据本身的解释,本项目保留以下边界:

5 个车辆 run 是离散采样,不用于重建严格连续轨迹;

Rx0-Rx3 在运动车辆条件下不作为严格同时相干阵列快照,因此本文不基于这批数据宣称严格四通道 DOA;

真实车辆是扩展目标,车身、轮毂、玻璃、金属结构、地面、多径会产生多个散射中心;

MTI3 在零 Doppler 具有二重零点,静态背景抑制更深,但极低速目标损失也更明显;

MATLAB 教学仿真用于解释参数关系,不等价于真实硬件在所有场景中的检测性能。

在 SuperRadar 社区,一次实验、一组数据、一段代码、一套算法,甚至一个有价值的问题反馈,都可以成为后来者继续研究的起点。

欢迎基于现有项目继续复现、修改和探索,也欢迎通过 GitHub Issue、Pull Request 分享你的代码、数据和应用案例。