2. FMCW雷达信号处理数学基础

调频连续波(FMCW)雷达的核心思想,是把“距离”这一空间量编码成“频率”这一可被FFT直接测量的量。理解这条编码链路,是后续在S32R上做定点优化、窗函数选择、耦合补偿的前提。本节从发射信号出发,逐步推导中频信号模型,再讨论距离-多普勒耦合、FFT与窗函数的作用,最后落到S32R定点与浮点的取舍。

一、发射信号与中频信号的产生

设单个chirp的发射信号为线性调频:

s_tx(t) = A·cos(2π(f_c·t + (B/(2T_c))·t²)),0 ≤ t ≤ T_c

其中 f_c 为载频,B 为扫频带宽,T_c 为chirp有效时长,斜率 S = B/T_c。目标距离 R 处回波延迟 τ = 2R/c,接收信号是发射信号的时延副本。将收发信号混频并低通滤波后,得到中频(IF)信号:

s_if(t) ≈ A_if·cos(2π(S·τ)·t + 2π·f_c·τ - π·S·τ²)

关键结论是:中频频率 f_if = S·τ = 2SR/c,与距离成正比;而相位项 2πf_c·τ 携带了目标微小位移信息,这正是多普勒的来源。因此一个chirp内的FFT给出距离,跨chirp的相位变化给出速度。

举例:B = 1 GHz,T_c = 64 μs,则 S = 15.625 MHz/μs。若目标在 R = 30 m,τ = 0.2 μs,f_if = 3.125 MHz。若采样率 f_s = 10 MHz,则距离FFT的峰值落在第 3.125M/10M × N 个bin上(N为每chirp采样点数)。

FMCW信号链:从chirp斜率到距离-速度二维谱 发射chirp 斜率 S = B/T_c 带宽 B,时长 T_c 目标回波 延迟 τ = 2R/c 幅度衰减 混频+低通 f_if = S·τ 相位含 f_c·τ 距离FFT 每chirp N点 峰值→距离bin 多普勒FFT 跨chirp M点 相位差→速度 距离-多普勒谱 RDM (N×M) 检测/CFAR输入 距离-多普勒耦合 运动目标使 f_if 偏移 Δf = 2v·f_c/c 距离估计偏差 ΔR = c·Δf/(2S) 需速度补偿或波形设计解耦 示例参数(教学假设): B = 1 GHz,T_c = 64 μs,S = 15.625 MHz/μs,f_s = 10 MHz,N = 256,M = 128 距离分辨率 ΔR = c/(2B) = 0.15 m;最大不模糊距离 R_max = c·f_s/(2S) ≈ 96 m 速度分辨率 Δv = λ/(2·M·T_c) ≈ 0.036 m/s(λ = 3.9 mm @77 GHz)

二、距离-多普勒耦合

上面的推导假设目标静止。当目标以径向速度 v 运动时,回波在chirp内也发生频率偏移,中频频率变为:

f_if = 2SR/c + 2v·f_c/c

第二项就是多普勒频率 f_d = 2v/λ。问题在于:单个chirp内,我们无法区分这个偏移是来自距离还是来自速度,这就是距离-多普勒耦合。耦合带来的距离误差为 ΔR = c·f_d/(2S)。以 S = 15.625 MHz/μs、v = 30 m/s 为例,f_d ≈ 15.4 kHz,ΔR ≈ 0.148 m,已经接近一个距离分辨率单元,不可忽略。

工程上有三条常用路径:一是用上下扫频(up-down chirp)配对,两个方程解出 R 和 v;二是先做多普勒FFT估计速度,再对距离维做补偿;三是在波形设计上增大 T_c 或采用多chirp联合处理,让耦合项在后续处理中被显式建模。S32R 的 BBE32 与 SPU 适合把补偿放在多普勒FFT之后、CFAR之前完成。

三、FFT与窗函数

距离维FFT把 N 点中频采样变换到 N 个距离bin,bin间隔对应 ΔR = c·f_s/(2S·N)。但矩形窗的旁瓣仅 -13 dB,强目标旁瓣会淹没邻近弱目标。加窗(如 Hann、Hamming、Blackman)可把旁瓣压到 -30 dB 以下,代价是主瓣展宽、分辨率略降。

选择窗函数时看三个量:峰值旁瓣电平(PSLR)、主瓣宽度(约 3 dB 宽度)、以及 SNR 损失。Hann 窗 PSLR ≈ -31 dB,主瓣展宽约 1.5 倍;Blackman 窗 PSLR ≈ -58 dB,但主瓣展宽约 1.7 倍。若场景中强弱目标共存且距离接近,优先选低旁瓣窗;若追求分辨率且目标强度相近,可用 Hamming 折中。

加窗在实现上就是逐点乘系数,可在S32R上用查表或分段线性近似完成。注意窗系数应在定点域预先量化,避免每次运算重复转换。

四、S32R上定点与浮点的取舍

S32R 系列包含 BBE32、SPU 等专用信号处理单元,定点吞吐远高于通用浮点。典型做法是:前端FFT与加窗用定点,后端检测与角度估计可保留浮点。定点化的关键是动态范围管理。

以16位定点为例,中频采样先做块浮点(block floating point)归一化,把最大值对齐到 Q15 的 0.99 附近,再进入FFT。FFT每级蝶形会带来约 1 bit 的增长,256点FFT需预留 8 bit 余量,因此中间结果常用 Q15 输入、Q31 累加、输出再右移饱和。若不做缩放,溢出会直接产生错误峰值。

浮点与定点的误差对比可用一个简单判据:定点FFT的量化噪声底约比浮点高 20~30 dB,若系统要求检测 -100 dBm 级弱目标,需在FFT前做增益校准,或在CFAR门限上补偿噪声抬升。实际工程中,建议先用浮点模型跑通算法,再逐级替换为定点,每替换一级就对比距离谱峰值位置与幅度,偏差超过 0.5 个bin或 1 dB 就要回退检查缩放策略。

在S32R上做定点FFT时,优先使用芯片提供的定点FFT库与块浮点接口,避免手写蝶形带来的缩放不一致;窗系数与旋转因子统一用 Q15 存储,可减少一次格式转换。
距离-多普勒耦合在高速目标场景下会直接导致距离bin偏移,若忽略补偿,CFAR可能在错误距离单元上形成检测,后续角度估计也会随之偏移。务必在算法链中显式处理该项。

把以上四块串起来:chirp斜率把距离变成中频频率,混频与低通得到IF信号,距离FFT给出距离bin,多普勒FFT给出速度bin,窗函数控制旁瓣,定点/浮点决定精度与吞吐的平衡。S32R的工程实现,本质上就是在这条链路上逐级分配位宽、缩放与补偿策略。