4、数据采集与预处理:采样率选择、滤波、去噪、滑动窗口、数据标注
TinyML振动异常检测的成败,往往不取决于模型有多深、算力有多强,而取决于喂给模型的数据是否“干净、对齐、有标签”。在嵌入式端部署振动检测模型时,传感器直接贴在电机、泵机或转轴上,采集到的原始信号混杂着工频干扰、结构共振、随机冲击和环境噪声。如果采样率选错,振动特征可能被混叠掩盖;如果滤波参数不当,故障特征可能被一并滤除;如果滑动窗口长度与旋转周期不匹配,时域特征和频域特征都会失真。本章围绕数据采集与预处理的关键环节,系统讲解采样率选择依据、滤波与去噪策略、滑动窗口设计方法以及数据标注规范,并给出一个完整的实战案例闭环。
上图展示了TinyML振动数据采集与预处理的完整工程链路。从传感器选型开始,到采样率确定、滤波去噪、滑动窗口切分、数据标注,每个环节都直接影响后续模型训练和阈值设定的可靠性。下面逐一展开每个环节的核心原理与操作方法。
4.1 采样率选择:从奈奎斯特到工程裕量
核心原理:采样率决定了振动信号在频域上的可观测范围。根据奈奎斯特采样定理,采样率必须大于信号最高频率成分的两倍,否则会发生频谱混叠,高频成分折叠到低频区域,产生虚假的故障特征。但在工程实践中,由于抗混叠滤波器并非理想低通,通常取采样率为最高分析频率的2.56倍以上。对于TinyML振动检测,需要先明确设备的工作转速范围和关注的故障频率范围。例如,一个转速为3000 RPM(50 Hz)的电机,其转频为50 Hz,轴承故障特征频率可能达到转频的10倍以上(500 Hz),因此采样率至少需要1280 Hz,实际工程中常取2 kHz或更高。
- 确定设备最高转速 \( f_{max} \)(单位:Hz),可通过铭牌或转速计实测。
- 计算最高分析频率 \( f_{analysis} = 10 \times f_{max} \)(针对轴承故障)或根据故障机理确定倍频数。
- 采样率 \( f_s \geq 2.56 \times f_{analysis} \),并向上取整到常用值(如2k、4k、8k、16k)。
- 检查嵌入式平台ADC采样能力和存储带宽,确认是否满足实时传输需求。
- 若采样率过高导致数据量过大,可考虑分时采样或降低重叠率。
案例拆解:某工厂离心泵转速为2900 RPM,轴承型号为6205,其外圈故障特征频率约为转频的3.05倍,即 \( 48.3 \times 3.05 \approx 147 \) Hz。若需监测到10倍频(约483 Hz),则采样率至少为 \( 2.56 \times 483 \approx 1236 \) Hz。实际选用2 kHz采样率,每个样本点间隔0.5 ms,单次采集1秒数据仅需2 KB存储,完全满足TinyML设备的内存限制。
| 设备类型 | 转速范围 | 关注频率范围 | 推荐采样率 |
|---|---|---|---|
| 低速重载轴承 | 100~500 RPM | 10~200 Hz | 1 kHz |
| 中速电机/泵 | 1000~3000 RPM | 50~1000 Hz | 2~4 kHz |
| 高速主轴/涡轮 | 5000~30000 RPM | 500~5000 Hz | 10~20 kHz |
| 齿轮箱 | 1500 RPM | 100~3000 Hz | 8 kHz |
4.2 滤波与去噪:保留特征,剔除干扰
核心原理:振动信号中的噪声来源包括工频干扰(50/60 Hz及其谐波)、结构共振、电磁干扰、随机冲击和环境振动。滤波的目标是在保留故障特征频率成分的同时,尽可能抑制无关噪声。常用的滤波方法包括:带通滤波(保留关注频段)、陷波滤波(去除特定频率如工频)、中值滤波(去除脉冲噪声)、小波去噪(适用于非平稳信号)。在TinyML场景下,滤波器设计需考虑计算复杂度,避免使用高阶FIR滤波器导致MCU负载过高。
判断方法:首先通过频谱分析确定噪声频段与故障特征频段是否重叠。若工频干扰与故障频率接近,需使用陷波器而非简单高通;若噪声为宽带随机,可采用小波软阈值去噪;若存在周期性冲击,中值滤波能有效抑制。滤波参数需通过实验对比确定,观察滤波前后频谱变化,确保故障特征幅值不被明显削弱。
// 嵌入式端二阶IIR带通滤波器示例(C语言)
typedef struct {
float b0, b1, b2, a1, a2;
float x1, x2, y1, y2;
} IIRFilter;
float iir_filter(IIRFilter *f, float x) {
float y = f->b0 * x + f->b1 * f->x1 + f->b2 * f->x2
- f->a1 * f->y1 - f->a2 * f->y2;
f->x2 = f->x1; f->x1 = x;
f->y2 = f->y1; f->y1 = y;
return y;
}
案例拆解:某风电齿轮箱振动信号中,齿轮啮合频率为800 Hz,但存在强烈的50 Hz工频干扰及其2、3次谐波。采用4阶巴特沃斯带通滤波器(截止频率500~1200 Hz)后,工频干扰被有效抑制,但发现100 Hz处仍有残留。进一步加入50 Hz陷波器后,频谱干净度提升,故障特征信噪比从8 dB提升至22 dB。整个滤波过程在STM32F4上运行,耗时仅0.3 ms/样本,满足实时性要求。
4.3 滑动窗口:时间分辨率与特征稳定性的平衡
核心原理:滑动窗口将连续振动信号切分为固定长度的片段,每个片段作为一个独立样本输入模型。窗口长度决定了频率分辨率(窗口越长,频率分辨率越高)和时域特征的统计稳定性;重叠率则影响样本数量和相邻窗口间的信息冗余。对于旋转机械,窗口长度应至少包含一个完整旋转周期,通常取2~5个周期以保证特征稳定。
操作流程:
- 确定旋转周期 \( T = 60 / RPM \)(秒)。
- 窗口长度 \( L = k \times T \times f_s \),其中k取2~5。
- 重叠率 \( overlap \) 取50%~75%,重叠率越高,样本越多,但计算量增大。
- 若使用FFT提取频域特征,窗口长度需满足 \( L = 2^n \) 以加速计算。
- 验证窗口长度对特征方差的影响:绘制特征值随窗口长度的变化曲线,选择方差趋于稳定的最小长度。
| 窗口长度(周期数) | 频率分辨率 | 特征稳定性 | 样本数量 | 适用场景 |
|---|---|---|---|---|
| 1 | 低 | 差 | 多 | 快速响应、瞬态检测 |
| 2~3 | 中 | 较好 | 中 | 常规轴承/齿轮监测 |
| 5~10 | 高 | 稳定 | 少 | 低速重载、微弱故障 |
4.4 数据标注:构建高质量训练集的关键
核心原理:数据标注是将原始振动信号与设备状态关联起来的过程。标注质量直接决定模型的上限。标注内容应包括:工况信息(转速、负载、温度)、故障类型(正常、外圈故障、内圈故障、滚动体故障、保持架故障)、故障严重程度(轻微、中度、严重)、时间戳和采集环境描述。标注方式分为在线标注(实时记录设备状态)和离线标注(事后通过频谱分析或检修记录确认)。
标注规范与流程:
- 标签体系设计:采用多级标签,例如一级标签为“正常/异常”,二级标签为具体故障类型,三级标签为严重程度。
- 时间对齐:确保振动数据时间戳与设备运行状态记录同步,误差不超过1秒。
- 标注工具:使用开源工具如Label Studio或自研脚本,支持波形可视化与区间标注。
- 多人交叉验证:至少两人独立标注同一批数据,计算标注一致性(Cohen's Kappa),要求Kappa > 0.8。
- 数据增强:对标注后的样本进行小幅平移、加噪、缩放,增加模型鲁棒性。
总结复盘:数据采集与预处理是TinyML振动检测的基石。采样率需结合故障机理和嵌入式资源综合确定;滤波去噪需在保留特征与抑制噪声间取得平衡;滑动窗口需匹配旋转周期并验证特征稳定性;数据标注需建立规范体系并投入足够人力。任何环节的疏忽都会导致模型在真实场景中失效。建议在项目启动初期就制定详细的数据采集与标注计划,并在预处理流程中加入质量检查节点,确保每个环节的输出符合预期。