4、信号处理基础:时域特征、频域特征与时频分析的适用场景

TinyML预测性维护的核心挑战在于:如何在资源受限的MCU(微控制器)上,从振动、电流或声学传感器信号中提取出能够区分“正常”与“故障”的判别性信息。信号处理并非越复杂越好,而是需要在计算开销、物理可解释性与故障灵敏度之间取得平衡。本章将系统梳理时域、频域及时频分析三类特征提取方法的数学本质、适用场景与工程取舍,帮助你在电机、泵与风扇的故障监测中做出正确的技术选型。

信号特征提取方法选型框架 原始信号 振动/电流/声学 时域特征 RMS / 峰值 / 峰峰值 / 峭度 计算极简,适合MCU实时 对冲击、不平衡敏感 频域特征 FFT / 频谱包络 / 谱线能量 需加窗与帧处理 对周期性故障(轴承/齿轮)有效 时频分析 STFT / 小波变换 计算量大,需降采样 适合变速、瞬态冲击 工程决策建议 • 稳态工况 → 优先时域+频域组合(RMS + 1x/2x/BPFO谱线) • 变速/启停过程 → 使用时频分析(STFT或小波)捕捉瞬态特征 • MCU资源受限 → 时域特征为主,FFT仅计算感兴趣频段(Goertzel算法)

4.1 时域特征:计算效率与物理直觉的平衡

核心原理:时域特征直接对原始采样序列进行统计运算,不涉及频率分解。在TinyML场景中,最常用的四个特征为:均方根值(RMS)、峰值(Peak)、峰峰值(Peak-to-Peak)和峭度(Kurtosis)。RMS反映信号的整体能量水平,与振动烈度直接相关;峰值捕捉瞬时最大冲击;峰峰值描述信号摆幅范围;峭度则衡量信号分布的“尖锐程度”,对早期微弱冲击故障极为敏感。

判断方法与操作流程:在嵌入式端提取时域特征时,通常采用滑动窗口方式。窗口长度建议覆盖至少10个旋转周期(例如电机转速为3000 RPM,则窗口长度应≥200ms)。对于每个窗口,依次计算:

RMS = sqrt( (1/N) * Σ x[i]² )
Peak = max(|x[i]|)
Peak-to-Peak = max(x[i]) - min(x[i])
Kurtosis = (1/N) * Σ ((x[i]-mean)/std)⁴

峭度计算涉及四次方运算,在MCU上建议使用查表法或近似公式以降低计算开销。实际部署时,可将窗口数据先存入环形缓冲区,再批量计算,避免频繁中断。

案例拆解:某化工厂循环水泵(转速2950 RPM,轴承型号6315)出现异常振动。在DSP芯片上以12.8 kHz采样率采集振动信号,窗口长度取0.25s(3200点)。初始时域指标:RMS从2.1 mm/s升至3.8 mm/s(ISO 10816报警阈值为4.5 mm/s),峭度从3.2升至5.8。虽然RMS未超报警值,但峭度显著升高提示存在早期冲击。进一步观察时域波形,发现每转存在2个等间隔冲击脉冲,初步判断为外圈剥落。后续停机检查确认外圈存在2处剥落坑。此案例说明:峭度对早期局部缺陷比RMS更敏感,但需结合转速信息判断冲击频率。

常见误区:时域特征无法区分故障类型。例如,不平衡与不对中都会导致RMS升高,但频谱特征完全不同。因此,时域特征适合作为“粗筛”或“异常检测”的第一层,当检测到异常后再触发频域分析以确定故障模式。此外,峭度对随机脉冲噪声(如电磁干扰)也敏感,需在采集前端加入抗混叠滤波。

4.2 频域特征:FFT与频谱包络的故障定位能力

核心原理:快速傅里叶变换(FFT)将时域信号分解为不同频率分量的幅值与相位。在旋转机械中,故障特征频率与转频(f_r)存在固定比例关系:不平衡表现为1×f_r,不对中表现为2×f_r,轴承外圈故障频率BPFO≈0.4×N×f_r(N为滚动体数量)。频谱包络(Envelope Spectrum)则是对原始信号先进行带通滤波,再取包络(Hilbert变换),最后对包络做FFT,用于解调高频冲击成分,特别适合早期轴承故障。

判断方法与操作流程:在TinyML设备上执行FFT需注意:

  1. 采样点数建议为2的幂(256/512/1024),以利用基-2 FFT算法。
  2. 加窗函数(汉宁窗或平顶窗)抑制频谱泄漏,窗函数类型影响幅值精度。
  3. 频率分辨率Δf = fs / N,例如fs=12.8kHz,N=1024,则Δf=12.5Hz。对于低速设备(f_r<10Hz),需增大N或降低fs以保证分辨率。
  4. 频谱包络流程:带通滤波(中心频率选轴承共振频带,通常5-20kHz)→ 包络解调 → 低通滤波 → FFT。
故障类型特征频率FFT直接观察频谱包络适用性
转子不平衡1×f_r幅值明显不必要
轴不对中2×f_r(有时含3×)幅值明显不必要
轴承外圈故障BPFO≈0.4N×f_r微弱,常被噪声淹没强烈推荐
轴承内圈故障BPFI≈0.6N×f_r微弱且调制强烈推荐
齿轮断齿啮合频率及边带边带可见辅助

案例拆解:某风机(转速1470 RPM,f_r=24.5Hz)振动超标。直接FFT频谱显示1×f_r幅值正常,但2×f_r幅值达到1.8 mm/s(超过1×f_r的1.5倍),且存在微弱的高频宽带抬升。进一步做频谱包络(带通8-16kHz),在包络谱中清晰看到BPFO=89.3Hz及其谐波(2×BPFO=178.6Hz)。结合轴承型号(SKF 6205,滚动体数9),理论BPFO=0.4×9×24.5=88.2Hz,实测与理论偏差1.2%,确认外圈故障。更换轴承后,2×f_r降至0.4 mm/s,包络谱中BPFO消失。此案例表明:FFT适合定位不平衡/不对中,而频谱包络是轴承故障的“金标准”。

工程风险提示:FFT对转速波动敏感。若设备存在负载波动导致转速变化超过±2%,频谱会因频率模糊而难以识别边带。此时需采用阶比跟踪(Order Tracking)或使用转速计信号进行重采样,但这会增加硬件成本。在TinyML场景中,若无法保证稳态工况,建议优先考虑时频分析。

4.3 时频分析:STFT与小波变换的瞬态捕捉

核心原理:短时傅里叶变换(STFT)将信号分段加窗后分别做FFT,得到时间-频率二维谱图。其时间分辨率与频率分辨率受海森堡不确定性原理制约:窗长越短,时间分辨率越高但频率分辨率越低。小波变换(WT)通过可伸缩平移的母小波对信号进行多分辨率分解,在低频段获得高频率分辨率,在高频段获得高时间分辨率,更适合捕捉瞬态冲击。

适用场景对比:

  • STFT:适用于转速缓慢变化的设备(如变频驱动泵在加减速过程),可观察频率随时间漂移的趋势。计算量可控(每次FFT仅需256-1024点),可在MCU上分帧处理。
  • 小波变换:适用于快速启停、负载突变或间歇性冲击(如往复式压缩机阀片故障)。但连续小波变换(CWT)计算量巨大,离散小波变换(DWT)虽可降低计算量,但频率分辨率不均匀,对非整数倍频程的故障特征提取效果有限。

操作流程(以STFT为例):

  1. 确定窗长:窗长=fs/f_r×k(k取4-8),确保每个窗内包含足够周期。
  2. 窗重叠率:50%-75%重叠,避免时间分辨率损失。
  3. 对每个窗计算FFT,存储幅值矩阵。
  4. 在TinyML中,可仅保留感兴趣频带(如0-2kHz)的谱线,降低存储需求。

小型场景化说明:某变频驱动风扇在30Hz→50Hz加速过程中出现异响。稳态FFT无法分析,因为频率随时间变化。采用STFT(窗长512点,fs=4kHz,重叠50%),在时频谱图上清晰看到:当转速经过38Hz时,出现一条持续0.3s的横向亮带,频率为152Hz(4×f_r)。结合风扇叶片数(4片),判断为叶片共振。调整变频器跳跃频率(Skip Frequency)避开38Hz后,异响消失。此案例说明:时频分析是变速工况下故障定位的必备工具。

常见误区:时频分析并非“万能药”。在MCU上直接运行CWT会导致内存溢出,通常需要将数据分段传输至云端处理,这违背了TinyML的本地推理原则。实际工程中,建议采用“时域粗筛→频域定位→时频确认”的三级策略:时域特征持续监测,异常时触发FFT,若FFT无法判断(如变速工况)再启用STFT。此外,小波基函数的选择(Daubechies、Symlet等)对结果影响显著,需根据冲击波形特征进行预实验。

4.4 特征选型决策矩阵与工程实践总结

为帮助你在实际项目中快速决策,下表总结了不同工况下的推荐特征组合:

设备类型典型工况推荐特征MCU资源需求预期效果
电机(3000 RPM)稳态RMS + 峭度 + 1×/2×谱线低(FFT 512点)检测不平衡/轴承早期
泵(变频)变速STFT(仅关注0-500Hz)中(需帧缓存)识别气蚀/共振
风扇(轴流)稳态/低负载峰值 + 频谱包络中(需Hilbert)检测叶片裂纹/轴承
压缩机(往复)强冲击峭度 + 小波DWT高(需DSP指令)阀片故障/液击

总结复盘:在TinyML预测性维护中,没有“最好”的特征,只有“最合适”的特征。时域特征提供低成本的异常检测基线,频域特征提供故障类型的判别能力,时频分析则在复杂工况下提供补充信息。建议在项目初期,先在PC端用Python/Matlab对历史数据进行特征对比实验,确定最优特征集后再移植到MCU。同时,务必考虑特征计算的时间一致性——不同特征应在同一时间窗口内计算,避免因窗口错位导致误判。

经验提醒:在MCU上实现FFT时,优先使用定点数运算(Q15格式)而非浮点数,可提升2-3倍速度。对于频谱包络中的Hilbert变换,可采用FIR滤波器近似实现,阶数控制在32-64阶即可满足轴承故障诊断需求。若MCU资源极度紧张(如Cortex-M0),可仅计算BPFO/BPFI对应的单条谱线幅值(Goertzel算法),而非完整FFT。