黄涛 北京理工大学毫米波与太赫兹波技术在读博士生,研究方向太赫兹光电子学
社区贡献说明
本文为 SuperRadar 开发者贡献共建应用案例,作者基于 CTSAI-A100 真实车辆周界 ADC 数据,建立了一套面向车辆靠近 / 远离场景的
Range-Doppler分析、MTI杂波抑制与LFMCW参数实验工程。
本项目把真实场景中难以单独控制的带宽、Chirp 时宽、PRF、目标数量、目标速度与 MTI 阶数分开研究。
车辆靠近或者远离雷达时,ADC 中不仅包含车辆运动产生的回波,还混合着地面、道路设施、建筑物以及多径传播产生的静态和近静态反射。

这时,一些问题会变得更加具体:
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 的处理流程如下:
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 能量统计
本次实验继续使用 CTSAI-A100 ADC 原始数据作为输入。
数据解析方式沿包括:
以 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 主要参数如下:
| 参数 | 数值 |
|---|---|
| 载频 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}

完整调频带宽对应的经典 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 栅格基本一致。
这里两个数值虽然接近,但物理意义并不完全相同:
完成距离维处理后,对固定距离 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}.

真实道路和室内环境中,固定反射面在连续 Chirp 之间的位置变化很小,因此对应的慢时间相位近似稳定,大量能量集中在 f_D\approx0 的区域。
车辆、人体和其他运动目标则通过 chirp-to-chirp 相位变化产生非零多普勒。
MATLAB ADC 全链路工程在 Doppler FFT 之前提供多种慢时间杂波处理:
NONE
MEAN
MTI2
MTI3
SVD
SVD_MEAN
SVD_MTI2
不同方法对“稳定背景”的数学假设并不相同:
对某个 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 内相位变化很小,则目标分量也可能与常量子空间具有较高相关性,因此均值消除并不只影响“背景”。
最基础的二脉冲抵消器:
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 的零点。
项目代码中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 处理。
将 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 的秩选择同样需要结合目标速度范围和实际场景。
空环境、车辆靠近与车辆远离均提供物理距离轴结果:

分别比较:




同样比较 MTI 前、MTI2 与 MTI3:



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



从 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 |
可以看到,在其他条件近似不变时:增加有效调频带宽可以缩短距离脉冲响应主瓣,对相邻距离目标的分离更有利。
也就是说,当两个目标在距离维度非常接近时,更大的带宽更有利于形成可区分的距离响应。

固定带宽 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 栅格和可处理距离范围。
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 数量。
目标径向速度通过:
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 阶数虽然可以进一步削弱静态分量,也会扩大对极低速运动的影响。

多个理想点目标可以表示为:
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)
其中:
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 往往会出现:
这也是为什么:仿真用于理解规律,真实数据用于观察实际问题。
二者不能简单一一对应。
仿真中的深零频陷波可以验证 MTI 的滤波器关系,但不能直接等价成真实硬件在任意环境中的固定抑制度;
同样,真实 ADC 中出现的某一条非零 Doppler 频带,也需要结合实际 TX 编码、慢时间周期和采集配置才能进一步解释为物理速度。
高采样率发射 Chirp:

仿真 Range-Doppler:


参数实验:






运行统一入口:
main
也可以分别执行:
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 分享你的代码、数据和应用案例。