雷达信号处理流程说明
整个雷达数据处理流程如下:
text
配置参数
│
▼
读取 ADC 数据
│
▼
2D FFT(距离 FFT + 多普勒 FFT)
│
▼
非相干积累(Non-Coherent Integration)
│
▼
目标搜索(Target Detection)
│
▼
计算全局底噪(Global Noise)
│
▼
绘图 / 输出结果
主要函数说明
get_radar_parameter
用于解析雷达配置文件。
该函数代码较长,但无需逐行阅读,其主要作用是:
- 解析配置文件中的参数
- 将文本配置转换为数值参数
- 根据配置自动计算一些派生参数,例如:
- 距离分辨率(Range Resolution)
- 最大探测距离(Maximum Range)
- 最大测速范围(Maximum Velocity)
- 速度分辨率(Velocity Resolution)
简单来说,它就是完成雷达参数初始化。
load_adc_data
用于读取并解析 ADC 原始数据。
处理完成后,会生成一个三维数组:
text
adcData
[采样点 × Chirp 数 × 通道数]
例如:
text
adcData[sample][chirp][channel]
其中:
- 第一维:ADC 采样点(Sample)
- 第二维:Chirp 序号
- 第三维:接收通道(RX Channel)
这是后续 FFT 计算的输入数据。
do_fft_2d
该函数完成整个二维 FFT 计算,包括:
1. 距离维 FFT(Range FFT)
首先,对每一个 Chirp 的采样点进行 FFT。
物理意义:
将回波信号中的频率信息转换成目标距离。
可以简单理解为:
回波频率越高,目标距离越远。
计算结果保存在:
text
rngFftData
2. 速度维 FFT(Doppler FFT)
完成距离 FFT 后,再对同一个距离 Bin、不同 Chirp 之间的数据进行 FFT。
物理意义:
利用连续多个 Chirp 之间的相位变化计算目标速度(多普勒效应)。
计算结果保存在:
text
velFftData
FFT 加窗(Window)
每次 FFT 前都会进行加窗处理。
支持的窗函数包括:
- Chebyshev Window(Chebwin)
- Hann Window
- Hamming Window
窗函数由配置文件决定。
作用: 抑制频谱旁瓣(Side Lobe),减少能量泄漏,使目标峰值更加明显,提高检测效果。
calculate_global_noise
用于计算整张 Range-Doppler 图的全局噪声水平(Global Noise)。
该噪声值通常用于:
- CFAR 门限计算
- 噪声估计
- 后续目标检测
配置文件主要参数
ADC 与 Chirp 参数
SensorConfig.adc_sample_num
每个 Chirp 的 ADC 采样点数。
采样点越多:
- 距离分辨率通常越高
- FFT 数据量也越大
SensorConfig.nchirp
每一帧发送的 Chirp 数量。
Chirp 数越多:
- 速度分辨率越高
- 速度 FFT 效果越好
FFT 窗函数
SensorConfig.rng_win
距离维 FFT 所使用的窗函数。
例如:
- Hann
- Hamming
- Chebyshev
SensorConfig.vel_win
速度维 FFT 所使用的窗函数。
MIMO 参数
SensorConfig.nvirtual_chirp
TDM MIMO 模式下的发射(TX)通道数量。
需要注意:
提供的样例数据采用 DDM 调试模式,因此默认值为:
text
1
SensorConfig.nvirtual_array
TDM MIMO 模式下的虚拟阵列数量。
样例数据采用 DDM 调试方式,因此默认值为:
text
4
即物理接收通道数(RX 数)。
FFT 点数
SensorConfig.rng_nfft
距离维 FFT 的计算点数。
通常大于等于 ADC 采样点数。
SensorConfig.vel_nfft
速度维 FFT 的计算点数。
通常大于等于 Chirp 数。
FFT 输出参数
SensorConfig.rng_bin_num
完成一维 FFT 后,
去掉距离维负频率,仅保留有效距离 Bin 的数量。
SensorConfig.rng_res
距离 Bin 的大小(距离分辨率)。
单位通常为:
text
m / Bin
表示每一个距离 Bin 对应多少米。
SensorConfig.V_res
速度 Bin 的大小(速度分辨率)。
单位通常为:
text
m/s / Bin
表示每一个速度 Bin 对应多少米每秒。