3. 雷达信号链基础与原始数据获取
要真正理解雷达传感器能“看见”什么,必须先走通从发射波形到原始数据的一条完整信号链。XENSIV 雷达(如 BGT60TR13C、BGT60LTR11A1 等)属于调频连续波(FMCW)体制,其核心思想是:发射一段频率随时间线性上升的“啁啾”(chirp),接收目标反射回来的延迟副本,将两者混频得到差频信号,再通过 ADC 采样和二维 FFT 处理,最终形成距离-多普勒矩阵(Range-Doppler Matrix, RDM)。本节按信号在硬件与算法中的实际流向,逐级拆解这条链路,并给出通过 SDK 读取原始雷达数据的关键方法。
发射波形:FMCW 啁啾与帧结构
FMCW 雷达发射的不是单一频率,而是一串频率线性扫掠的连续波。一个 chirp 的关键参数包括:起始频率 fstart、带宽 B、扫频斜率 S = B/Tc(Tc 为单 chirp 有效时长)、采样率 fs。多个 chirp 组成一帧(frame),帧内 chirp 数记为 Nc,帧周期为 Tf。以 BGT60TR13C 为例,典型配置为:fstart = 58 GHz,B = 5.5 GHz,Tc = 64 µs,每帧 32 个 chirp,帧周期 5 ms。带宽决定距离分辨率 ΔR = c/(2B),5.5 GHz 带宽对应约 2.7 cm 的距离分辨率;帧内 chirp 数决定多普勒分辨率与最大不模糊速度。
混频与中频信号
接收天线收到目标回波后,与发射信号的一小部分(经耦合器或功分器)送入混频器。混频器输出发射与接收信号的乘积,经低通滤波后保留差频分量,即中频(IF)信号。对于静止目标,IF 频率 fIF = 2·S·R/c,与目标距离 R 成正比;对于运动目标,回波存在多普勒频移 fD = 2·v·fc/c,因此 IF 信号在快时间(单 chirp 内)表现为频率 fIF,在慢时间(跨 chirp)表现为相位随 chirp 序号线性变化。这正是后续二维 FFT 能同时分离距离与速度的物理基础。
ADC 采样与数据立方体
IF 信号经抗混叠滤波后送入 ADC。ADC 采样率 fs 必须满足奈奎斯特条件,且需覆盖最大中频:fIF,max = 2·S·Rmax/c。每个 chirp 采样 Ns 个点,一帧共 Nc 个 chirp,则单通道原始数据量为 Ns × Nc 个复数样本(实采样时经希尔伯特变换或正交解调得到 I/Q)。多接收天线(BGT60TR13C 有 3 个 RX)则形成 Ns × Nc × Nrx 的三维数据立方体。这个立方体就是“原始雷达数据”的完整形态。
距离-多普勒矩阵生成
从数据立方体到 RDM 需要两步 FFT。第一步是沿快时间轴(每个 chirp 内的 Ns 个采样点)做 FFT,称为距离 FFT。由于 fIF 与 R 成正比,FFT 峰值所在 bin 索引 k 对应距离 R = k·c/(2·B·Ns)。第二步是沿慢时间轴(跨 Nc 个 chirp 的同一距离 bin)做 FFT,称为多普勒 FFT。运动目标在相邻 chirp 间引入相位差 Δφ = 4πvTc/λ,多普勒 FFT 峰值位置对应速度 v。两步 FFT 后得到 Ns × Nc 的复数矩阵,其幅度谱即 RDM。RDM 中每个像素代表一个“距离-速度”单元,像素强度反映该单元内目标的雷达截面积(RCS)与回波功率。
通过 SDK 读取原始雷达数据
Infineon 提供 Radar SDK(C 语言库)与 Python 封装(ifxradarsdk)。以 BGT60TR13C 为例,典型读取流程如下:
# 1. 连接设备
device = DeviceFmcw()
# 2. 配置 chirp 与帧参数
config = device.get_profile_config()
config.set_start_frequency(58e9)
config.set_bandwidth(5.5e9)
config.set_chirp_duration(64e-6)
config.set_num_chirps(32)
config.set_frame_rate(200) # 200 Hz
device.set_profile_config(config)
# 3. 启动采集
device.start_acquisition()
# 4. 读取一帧原始数据
frame = device.get_next_frame() # shape: (Nc, Nrx, Ns)
# 5. 停止并关闭
device.stop_acquisition()
device.close()
读取到的 frame 是一个三维数组,维度顺序通常为 (chirp 数, 接收天线数, 每 chirp 采样点数)。在 Python 中可将其 reshape 为 (Nc, Nrx, Ns),再对每个 RX 通道分别做距离 FFT 与多普勒 FFT,即可得到 RDM。注意:原始数据为实数采样时,需先做希尔伯特变换或使用 I/Q 解调数据;若 SDK 已返回复数,则直接使用。
关键参数与结果判读
| 参数 | 符号 | 典型值(BGT60TR13C) | 对结果的影响 |
|---|---|---|---|
| 起始频率 | fstart | 58 GHz | 决定波长与多普勒灵敏度 |
| 带宽 | B | 5.5 GHz | 距离分辨率 ΔR = c/(2B) ≈ 2.7 cm |
| chirp 时长 | Tc | 64 µs | 影响最大不模糊速度 |
| 每帧 chirp 数 | Nc | 32 | 多普勒分辨率与速度范围 |
| 每 chirp 采样数 | Ns | 128 | 距离 FFT 点数与最大距离 |
| 帧周期 | Tf | 5 ms | 帧率 200 Hz,决定时间分辨率 |
判读 RDM 时,先看距离维峰值是否与目标实际距离一致,再看多普勒维峰值符号是否与目标运动方向一致(靠近为负、远离为正,具体符号约定需与坐标系定义统一)。若峰值展宽或出现多个峰,可能是多径、旁瓣或目标扩展所致。通过 SDK 读取的原始数据是后续所有检测、跟踪与分类算法的输入,理解其物理含义与维度结构,是雷达智能感知工程的第一步。