4. 信号与噪声基础
在传感器数据融合与滤波算法实战中,无论是卡尔曼滤波的状态估计,还是IMU姿态解算的预处理,本质上都是在与“信号”和“噪声”打交道。如果无法准确区分有用信号与噪声的频域特征,后续的滤波设计就会失去理论依据。本章作为整个课程的理论基石,将系统梳理时域与频域分析的基本视角,深入剖析白噪声与有色噪声的本质区别,明确信噪比(SNR)的工程含义,并重点讲解采样定理对嵌入式系统设计的硬性约束,最后厘清低通滤波与高通滤波在传感器信号调理中的典型应用场景。这些概念将直接决定你在STM32平台上编写滤波算法时的参数选择与结构设计。
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弥补) |
| 典型应用 | 波形触发、峰值检测 | 噪声源识别、滤波器截止频率选择 |
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选型和滤波参数设计的重要依据。
4.3 信噪比(SNR):量化信号质量的黄金指标
核心原理:信噪比定义为有用信号功率与噪声功率之比,通常用分贝(dB)表示:SNR(dB) = 10·log₁₀(P_signal / P_noise)。在传感器数据融合中,SNR直接决定了滤波算法的性能上限——当SNR过低时,任何滤波算法都无法有效提取信号。
工程测量方法:
- 采集一段静止状态下的传感器输出,计算其方差作为噪声功率P_noise。
- 施加已知幅值的激励信号(如转台以10°/s匀速旋转),测量输出幅值,计算信号功率P_signal。
- 代入公式计算SNR。对于IMU,通常关注带宽内的SNR,例如100Hz带宽下的SNR。
| SNR范围 | 信号质量 | 滤波策略建议 |
|---|---|---|
| > 60 dB | 优秀 | 简单低通滤波即可,卡尔曼滤波Q可设小 |
| 40 ~ 60 dB | 良好 | 互补滤波或卡尔曼滤波,需适当增大Q |
| 20 ~ 40 dB | 较差 | 需多级滤波,考虑自适应滤波算法 |
| < 20 dB | 极差 | 信号淹没,需硬件前端调理或更换传感器 |
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。
- 数字滤波配合:采样后可在数字域进一步滤波,但数字滤波无法消除已发生的混叠。
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级联实现 |
本章所建立的信号与噪声分析框架,为后续章节中卡尔曼滤波的噪声协方差矩阵设计、IMU预处理流程以及STM32上的实时滤波实现奠定了理论基础。理解时域与频域的互补关系,掌握白噪声与有色噪声的建模方法,明确采样定理对系统设计的硬约束,熟练运用低通与高通滤波器进行频域整形,是每一位从事传感器数据融合开发的工程师必须具备的核心素养。在实际项目中,建议始终从频域视角审视信号链路,用SNR量化信号质量,以采样定理指导硬件设计,最终通过合理的滤波策略实现鲁棒的姿态与位置估计。