4. 传感器数据预处理与特征提取
XENSIV 系列传感器覆盖雷达、压力、麦克风三类物理量,它们的原始输出在采样率、量纲、噪声结构和动态范围上差异极大。雷达给出的是复数基带 I/Q 采样或距离-多普勒矩阵,压力传感器给出的是低频缓变的绝对/差分压强序列,麦克风给出的是 16~24 bit 的时域声压波形。如果把这些数据直接送进融合网络,量纲大的通道会主导梯度,噪声大的通道会污染特征空间,采样率不一致还会导致时间对齐失败。因此本节的核心任务是:把三类异构原始数据整理成"同时间基准、同数值尺度、同噪声水平"的高质量输入,并从中提取出真正携带信息的特征。
一、预处理链路的整体结构
预处理不是单一操作,而是一条按顺序执行的流水线。顺序很重要:先去噪再归一化,否则归一化会把噪声一起放大;先做时间对齐再做特征提取,否则特征窗口会跨越不同步的数据。下图给出三类传感器从原始采样到特征向量的完整处理链路,以及各环节的关键参数。
二、去噪与滤波:按物理量选择方法
三类数据的噪声来源不同,滤波策略必须分开设计。雷达 I/Q 的主要干扰是静止杂波和直流偏置,做法是先减去慢时间维均值(等效一阶高通),再对快时间维加 Hann 窗抑制旁瓣,然后做二维 FFT 得到距离-多普勒图。压力信号带宽低,主要噪声是工频耦合和 ADC 量化抖动,用二阶巴特沃斯低通即可,截止频率取 10 Hz(约为采样率的 1/10),同时用中值滤波剔除单点脉冲。麦克风信号需要保留语音/声学事件的频谱细节,因此不做强低通,而是用预加重(系数 0.97)提升高频,再分帧加汉明窗。
一个容易忽略的点是滤波器引入的群延迟。IIR 低通在 10 Hz 截止、100 Hz 采样下,群延迟约为 2~3 个采样点。如果雷达链路用了 32 点 FFT,其处理延迟是 16 个采样点。两者不对齐,融合时会出现几十毫秒的错位。工程上要么在特征层做时间戳对齐,要么在滤波后统一补偿延迟。
三、归一化:让不同量纲可比
雷达 RCS 特征可能在 -40~0 dBsm,压力特征在 950~1050 hPa,MFCC 在 -20~20 之间。直接拼接会让压力通道的数值范围完全压制其他通道。常用做法是 Z-score 归一化:对每个特征维度独立计算训练集上的均值 μ 和标准差 σ,然后 x' = (x - μ) / σ。注意 μ 和 σ 必须来自训练集并保存下来,推理时复用同一组参数,否则会出现训练-推理分布不一致。
对于压力这类缓变量,Z-score 会削弱绝对幅值信息,可以改用"相对基线归一化":以开机后前 2 秒的均值为基线,输出 Δp = p - p_baseline,再除以量程。这样既保留了变化趋势,又消除了个体差异。雷达的距离和速度特征建议保留物理量纲,只做除以最大量程的线性缩放,便于后续做几何解释。
四、时频域特征提取
特征提取的目标是用少量维度概括一段窗口内的信号形态。下表给出三类传感器在本课程示例配置下的特征清单,窗口长度统一取 200 ms(对应 100 Hz 栅格下的 20 个点)。
| 传感器 | 时域特征 | 频域特征 | 示例维度 |
|---|---|---|---|
| 雷达 | 目标距离、径向速度、RCS 均值 | 多普勒谱峰、谱宽、微动周期 | 32 |
| 压力 | 均值、方差、一阶差分斜率、峰谷差 | 0.5~5 Hz 带能量 | 24 |
| 麦克风 | 短时能量、过零率、自相关峰 | 40 维 Mel 谱、MFCC 前 13 维、谱质心 | 40 |
以麦克风为例,分帧后每帧做 512 点 FFT,得到 257 个频点,经 40 个 Mel 三角滤波器组加权求和,再取对数得到 40 维对数 Mel 谱。对它做 DCT 并取前 13 个系数,就是 MFCC。MFCC 的前 1 维代表整体能量,2~13 维描述频谱包络,对声学事件分类非常有效。雷达的微动特征则来自对慢时间维做 FFT:如果目标有周期性运动(如呼吸、振动),多普勒谱会在对应频率处出现边带,边带间隔就是微动频率。
五、可执行的预处理参数配置示例
下面给出一份可直接参考的参数配置,用于搭建三类传感器的预处理流水线。参数值属于本课程示例配置,实际项目需根据传感器型号和场景调整。
# XENSIV 多传感器预处理配置(示例)
radar:
sample_rate: 1_000_000 # I/Q 采样率
chirps_per_frame: 32
range_fft: 256
doppler_fft: 32
window: hann
cfar_guard: 2
cfar_train: 8
cfar_pfa: 1e-4
pressure:
sample_rate: 100
filter: butterworth2
cutoff_hz: 10
median_kernel: 3
baseline_sec: 2.0
window_ms: 200
microphone:
sample_rate: 16000
preemphasis: 0.97
frame_len_ms: 25
frame_shift_ms: 10
fft_size: 512
mel_bands: 40
mfcc_coeff: 13
fusion:
time_grid_hz: 100
normalize: zscore
feature_dim: 96
六、结果如何判断
预处理是否合格,可以从三个可观察指标判断。第一,看归一化后各通道的数值分布:均值接近 0、标准差接近 1,说明尺度已统一。第二,看时间对齐误差:在雷达和麦克风同时捕获同一次敲击事件时,两者特征窗口的起始时间差应小于一个栅格周期(10 ms)。第三,看特征可分性:用简单的线性判别或可视化(如 t-SNE)检查不同类别的特征簇是否分离,如果完全混叠,说明去噪不足或特征选择不当,需要回到滤波环节调整截止频率或窗口长度。