4. 信号与噪声基础

在传感器数据融合与滤波算法实战中,无论是卡尔曼滤波的状态估计,还是IMU姿态解算的预处理,本质上都是在与“信号”和“噪声”打交道。如果无法准确区分有用信号与噪声的频域特征,后续的滤波设计就会失去理论依据。本章作为整个课程的理论基石,将系统梳理时域与频域分析的基本视角,深入剖析白噪声与有色噪声的本质区别,明确信噪比(SNR)的工程含义,并重点讲解采样定理对嵌入式系统设计的硬性约束,最后厘清低通滤波与高通滤波在传感器信号调理中的典型应用场景。这些概念将直接决定你在STM32平台上编写滤波算法时的参数选择与结构设计。

信号与噪声分析框架 时域与频域分析 时域:幅值随时间变化 x(t) = A·sin(2πft + φ) 频域:幅值随频率分布 噪声分类 白噪声 功率谱平坦 有色噪声 功率谱非平坦 高斯白噪声 粉红/布朗/红噪声 IMU零偏不稳定 → 有色噪声 采样与滤波 采样定理:fs ≥ 2·fmax 否则发生混叠(aliasing) 低通滤波 保留低频 高通滤波 保留高频 信噪比 SNR = 10·log₁₀(Psignal / Pnoise) [dB] SNR > 40dB:信号质量良好 | SNR 20~40dB:需滤波处理 | SNR < 20dB:信号淹没,需前端调理 IMU加速度计典型SNR:60~80dB(带宽100Hz时) 传感器信号处理链路 传感器原始信号 含噪声+漂移 抗混叠低通滤波 截止频率=fs/2 ADC采样 fs ≥ 2·fmax 数字滤波 卡尔曼/互补滤波 姿态/位置估计 融合输出

4.1 时域与频域:观察信号的两种互补视角

核心原理:时域分析以时间为横轴,描述信号幅值随时间的变化规律,直观但信息密度低;频域分析以频率为横轴,将信号分解为不同频率分量的叠加,揭示信号的频谱结构。对于传感器信号处理,频域视角尤为重要——噪声和有用信号往往在频带上存在可分离的差异。例如,IMU加速度计输出的重力加速度分量集中在0Hz附近的直流区,而人体运动产生的加速度通常在0.1~10Hz频带,振动噪声则可能分布在100Hz以上。

傅里叶变换是连接两个域的桥梁:

X(f) = ∫ x(t)·e^(-j2πft) dt   (连续时间傅里叶变换)
X[k] = Σ x[n]·e^(-j2πkn/N)    (离散傅里叶变换,DFT)

在STM32嵌入式平台上,我们通常使用FFT(快速傅里叶变换)算法将ADC采样得到的时域序列转换为频谱。一个典型的应用场景是:通过分析IMU静止时的频谱,可以识别出50Hz工频干扰、机械振动等噪声源,从而为滤波器设计提供频率依据。

对比维度时域分析频域分析
横轴时间 t(秒)频率 f(Hz)
纵轴幅值(V、g、°/s)幅值谱/功率谱(dB)
优势直观、便于观察瞬态变化清晰展示频率成分、便于滤波设计
劣势难以区分叠加的多个频率分量丢失时间信息(需STFT弥补)
典型应用波形触发、峰值检测噪声源识别、滤波器截止频率选择
实战经验:在调试IMU数据时,建议先用STM32的DSP库对静止状态下的采样数据做256点FFT,观察频谱中是否存在明显的尖峰。如果发现50Hz附近有突出分量,说明存在工频干扰,应在硬件上增加RC低通滤波或在软件中设计陷波器。

4.2 白噪声与有色噪声:噪声的频谱指纹

核心原理:白噪声(White Noise)是一种理想化的噪声模型,其功率谱密度(PSD)在整个频率范围内保持恒定,即各频率分量具有相等的功率。实际传感器中的热噪声、散粒噪声近似为白噪声。白噪声在时域上表现为幅值随机、无记忆性,其自相关函数为δ函数——任意两个不同时刻的噪声值互不相关。

有色噪声(Colored Noise)则指功率谱密度随频率变化的噪声。常见类型包括:

  • 粉红噪声(1/f噪声):功率与频率成反比,低频成分占主导。IMU的零偏不稳定性(Bias Instability)就表现为这种特性,是MEMS陀螺仪的主要误差源之一。
  • 布朗噪声(1/f²噪声):随机游走(Random Walk)过程,角速率随机游走(ARW)即属此类,其功率随频率的平方反比衰减。
  • 红噪声:低频能量集中,常见于环境温度缓慢漂移引起的传感器输出变化。

判断方法:在工程实践中,可以通过Allan方差分析来区分IMU噪声类型。Allan方差曲线中,斜率为-1/2的段对应白噪声(角度随机游走),斜率为0的段对应零偏不稳定性,斜率为+1/2的段对应速率随机游走。这是IMU选型和滤波参数设计的重要依据。

案例拆解:某四旋翼无人机使用BMI088 IMU,静止测试时陀螺仪Z轴输出在±0.5°/s范围内波动。通过Allan方差分析发现:积分时间τ<0.1s时曲线斜率为-1/2(白噪声主导),τ在1~10s时曲线平坦(零偏不稳定性约0.8°/h),τ>50s时曲线上翘(速率随机游走)。据此确定:互补滤波的截止频率应设在0.5Hz左右,以抑制高频白噪声;卡尔曼滤波的过程噪声协方差Q应根据Allan方差曲线在τ=1s处的值来初始化。
常见误区:很多初学者将IMU的所有噪声都当作白噪声处理,导致卡尔曼滤波的Q矩阵设置过小,滤波器过度信任测量值,最终姿态估计结果出现明显抖动。正确做法是:将零偏不稳定性建模为一阶马尔可夫过程(有色噪声),在状态向量中增加零偏估计项。

4.3 信噪比(SNR):量化信号质量的黄金指标

核心原理:信噪比定义为有用信号功率与噪声功率之比,通常用分贝(dB)表示:SNR(dB) = 10·log₁₀(P_signal / P_noise)。在传感器数据融合中,SNR直接决定了滤波算法的性能上限——当SNR过低时,任何滤波算法都无法有效提取信号。

工程测量方法:

  1. 采集一段静止状态下的传感器输出,计算其方差作为噪声功率P_noise。
  2. 施加已知幅值的激励信号(如转台以10°/s匀速旋转),测量输出幅值,计算信号功率P_signal。
  3. 代入公式计算SNR。对于IMU,通常关注带宽内的SNR,例如100Hz带宽下的SNR。
SNR范围信号质量滤波策略建议
> 60 dB优秀简单低通滤波即可,卡尔曼滤波Q可设小
40 ~ 60 dB良好互补滤波或卡尔曼滤波,需适当增大Q
20 ~ 40 dB较差需多级滤波,考虑自适应滤波算法
< 20 dB极差信号淹没,需硬件前端调理或更换传感器
经验提醒:在计算SNR时,务必明确带宽范围。同一传感器在1Hz带宽和100Hz带宽下的SNR可能相差20dB。数据手册中给出的SNR通常是在特定带宽下测得的,直接对比不同传感器的SNR时需注意带宽一致性。

4.4 采样定理:数字信号处理的基石

核心原理:奈奎斯特-香农采样定理指出:要从采样后的离散信号中无失真地恢复原始连续信号,采样频率f_s必须大于信号最高频率分量f_max的两倍,即f_s > 2·f_max。当f_s ≤ 2·f_max时,高频分量会折叠到低频区域,产生混叠(Aliasing)现象,且混叠一旦发生就无法通过数字滤波消除。

工程约束与操作流程:

  • 确定信号带宽:根据应用场景确定有用信号的最高频率。例如,人体姿态识别中运动信号通常不超过10Hz,而振动监测可能需要分析到1kHz。
  • 选择采样频率:工程上通常取f_s = 5~10倍f_max,而非理论上的2倍,以留出设计余量。STM32的ADC采样率可配置,IMU的SPI/I2C读取速率也需匹配。
  • 抗混叠滤波:在ADC采样前必须加硬件低通滤波器(RC或运放有源滤波),截止频率设为f_s/2以下。例如,若f_s=1kHz,抗混叠滤波器截止频率应设在400~500Hz。
  • 数字滤波配合:采样后可在数字域进一步滤波,但数字滤波无法消除已发生的混叠。
实战案例:某惯性导航系统使用MPU6050,配置陀螺仪带宽为256Hz(内部DLPF开启),SPI读取速率为1kHz。此时f_max=256Hz,f_s=1kHz > 2×256Hz=512Hz,满足采样定理。但若将SPI读取速率降至500Hz,则256Hz的信号分量会混叠到244Hz(500-256=244Hz),产生虚假的低频信号,导致姿态解算出现周期性漂移。解决方案:将陀螺仪DLPF带宽降至98Hz,或提高读取速率至1kHz以上。
风险提示:STM32的ADC采样若使用定时器触发,需注意触发频率的准确性。使用内部RC振荡器时,实际采样率可能偏差±2%,在要求严格的场合应使用外部晶振或校准RC频率。

4.5 低通滤波与高通滤波:频域整形的基本工具

核心原理:低通滤波器(LPF)允许低于截止频率f_c的信号通过,衰减高于f_c的频率分量;高通滤波器(HPF)则相反,允许高于f_c的信号通过,衰减低频分量。在传感器信号处理中,两者各有典型应用:

  • 低通滤波:用于去除高频噪声。IMU加速度计输出中的高频振动噪声、ADC采样引入的量化噪声,都可通过低通滤波抑制。一阶RC低通的传递函数为H(s)=1/(1+sRC),截止频率f_c=1/(2πRC)。
  • 高通滤波:用于去除直流偏置和缓慢漂移。例如,压电式力传感器输出中混有温度漂移引起的直流分量,通过高通滤波可将其去除,保留动态力信号。

数字滤波器实现:在STM32平台上,常用一阶IIR滤波器实现低通/高通功能:

// 一阶低通滤波(IIR)
float lowpass(float input, float alpha, float *prev_output) {
    *prev_output = alpha * input + (1 - alpha) * (*prev_output);
    return *prev_output;
}
// alpha = 2π·f_c·T / (2π·f_c·T + 1),T为采样周期

// 一阶高通滤波
float highpass(float input, float alpha, float *prev_input, float *prev_output) {
    *prev_output = alpha * (*prev_output + input - *prev_input);
    *prev_input = input;
    return *prev_output;
}

截止频率选择原则:低通滤波的截止频率应高于有用信号的最高频率,低于噪声的最低频率。对于IMU姿态解算,若运动信号带宽为10Hz,噪声从50Hz开始,则f_c可设在20~30Hz。高通滤波的截止频率应低于有用信号的最低频率,例如去除0.1Hz以下的直流漂移时,f_c设为0.05Hz。

滤波器类型典型应用场景截止频率选择注意事项
低通滤波IMU加速度计去振运动带宽的1.5~3倍过低的f_c会引入相位延迟
低通滤波ADC抗混叠f_s/2以下必须为硬件滤波器
高通滤波去除直流漂移低于信号最低频率会衰减低频有用信号
带通滤波特定频段信号提取f_L ~ f_H由LPF+HPF级联实现
经验总结:在卡尔曼滤波设计中,低通滤波的截止频率可作为过程噪声Q的调节参考。若低通截止频率较高(如50Hz),说明系统允许较宽的频带,Q可适当增大;若截止频率较低(如5Hz),则Q应减小,滤波器更依赖模型预测。

本章所建立的信号与噪声分析框架,为后续章节中卡尔曼滤波的噪声协方差矩阵设计、IMU预处理流程以及STM32上的实时滤波实现奠定了理论基础。理解时域与频域的互补关系,掌握白噪声与有色噪声的建模方法,明确采样定理对系统设计的硬约束,熟练运用低通与高通滤波器进行频域整形,是每一位从事传感器数据融合开发的工程师必须具备的核心素养。在实际项目中,建议始终从频域视角审视信号链路,用SNR量化信号质量,以采样定理指导硬件设计,最终通过合理的滤波策略实现鲁棒的姿态与位置估计。