4、信号预处理:去趋势、去均值、滤波(低通/高通/带通)、异常值处理、重采样与数据清洗
振动信号在采集过程中不可避免地会混入直流偏置、趋势项、环境噪声、瞬态干扰以及采样率不匹配等问题。若未经预处理直接进入特征提取与故障诊断环节,轻则降低模型灵敏度,重则导致误判漏判。本章围绕去趋势、去均值、滤波、异常值处理、重采样与数据清洗六个核心环节,系统讲解其原理、操作流程、工程案例与常见误区,帮助学员建立一套稳健的信号预处理流水线。
4.1 去趋势与去均值:消除基线漂移与直流分量
核心原理:振动传感器(如压电式加速度计)在低频段容易受到温度漂移、前置放大器零点漂移以及积分电路饱和的影响,导致信号中混入缓慢变化的趋势项。趋势项在频域表现为极低频分量,会掩盖真实的低频故障特征(如转频及其谐波)。去均值则是消除信号的直流分量,使信号围绕零值波动,便于后续FFT分析和特征统计。
判断方法与操作流程:
- 趋势项检测:对原始信号进行最小二乘线性拟合,若拟合斜率显著(R²>0.3),则判定存在线性趋势;若残差仍呈现缓慢波动,需考虑高阶多项式拟合(2~3阶)。
- 去趋势操作:使用
detrend函数(Python/Matlab均支持),指定type='linear'或type='constant';对于非线性趋势,可先进行高通滤波(截止频率设为最低关注频率的1/3)。 - 去均值:计算信号均值并减去,公式为
x_clean = x - mean(x)。注意:去均值应在去趋势之后进行,否则趋势项会残留部分直流分量。
实战场景:某离心压缩机振动监测中,传感器输出信号在30秒内从0.5V缓慢漂移至1.2V,同时叠加了0.8V的直流偏置。直接进行FFT分析时,0Hz附近出现巨大谱峰,导致1倍频(50Hz)特征被淹没。通过二阶多项式去趋势后,再减去均值,频谱中0Hz分量降至-80dB以下,1倍频幅值清晰可见。
常见误区:去趋势时过度使用高阶多项式(阶数>5),可能将真实低频故障特征一并消除。建议先观察信号时域波形和频谱,确定趋势项频段与故障特征频段是否重叠,若重叠则优先采用高通滤波而非多项式拟合。
4.2 滤波处理:低通、高通、带通与带阻
核心原理:滤波的本质是频率选择。低通滤波保留低于截止频率的成分,用于去除高频噪声;高通滤波保留高于截止频率的成分,用于去除低频漂移;带通滤波保留特定频段,常用于提取轴承故障特征频率(如BPFO、BPFI);带阻滤波用于抑制特定干扰(如50Hz工频)。
滤波器类型对比:
| 滤波器类型 | 典型应用 | 截止频率设置 | 注意事项 |
|---|---|---|---|
| 低通(Butterworth) | 去除高频噪声,保留低频振动 | 设为最高关注频率的1.5~2倍 | 阶数过高会引起相位滞后 |
| 高通(Chebyshev I) | 去除趋势项和直流偏置 | 设为最低关注频率的1/3 | 通带纹波可能影响幅值精度 |
| 带通(FIR) | 提取特定故障特征频段 | 中心频率±10%~20%带宽 | 需保证过渡带陡峭 |
| 带阻(IIR) | 抑制工频及谐波干扰 | 阻带宽度设为干扰频率±2Hz | 注意阻带引起的相位突变 |
操作流程:
- 根据故障特征频率范围确定滤波器类型与截止频率。
- 使用
scipy.signal.butter设计滤波器系数,filtfilt实现零相位滤波(避免相位偏移)。 - 验证滤波效果:对比滤波前后频谱,确认目标频段保留、干扰频段衰减≥40dB。
经验提醒:对于滚动轴承故障诊断,建议使用带通滤波(中心频率为共振解调频带),而非单纯低通或高通。共振解调技术(包络分析)需要先带通滤波再取包络,才能有效提取冲击特征。
4.3 异常值处理:识别与修复数据中的离群点
核心原理:异常值(Outliers)可能来自传感器瞬时掉电、电磁干扰脉冲、电缆接触不良或数据采集卡溢出。这些离群点会严重扭曲均方根值、峰值因子等时域指标,并在频谱中产生虚假的宽带噪声。
判断方法:
- 3σ准则:计算信号均值μ和标准差σ,超出μ±3σ范围的点视为异常值。适用于信号近似正态分布的场景。
- Hampel滤波:基于滑动窗口的中值偏差(MAD),对局部突变更鲁棒。窗口长度通常设为信号长度的1%~5%。
- 差分阈值法:计算相邻采样点差值,若差值超过设定阈值(如最大正常差值的5倍),则判定为异常。
处理策略:
- 剔除:直接删除异常点,但需保证删除后信号连续,否则需插值。
- 替换:用窗口内中值或线性插值替换异常值,保持信号长度不变。
- 标记:在数据清洗阶段标记异常段,供后续特征提取时排除。
案例拆解:某风电齿轮箱振动监测系统在强电磁干扰下,每10秒出现1~2个幅值超过正常值20倍的尖峰脉冲。若直接计算峰值因子,该指标从3.2飙升至15.8,导致误报警。采用Hampel滤波(窗口长度=500点,阈值=3倍MAD)后,尖峰被替换为局部中值,峰值因子恢复至3.5,同时保留了真实的齿轮啮合冲击特征。
常见误区:不要对所有异常值一律剔除。若异常值呈现周期性(如每转一圈出现一次),可能是真实的故障冲击而非噪声,需结合转速信号判断。建议先绘制时域波形和包络谱,确认异常值的物理含义。
4.4 重采样与数据清洗:统一时间基准与提升数据质量
核心原理:多通道振动采集系统可能因采样率不一致、触发延迟或时钟漂移导致数据时间轴不对齐。重采样通过插值算法将信号统一到目标采样率,保证后续多通道联合分析(如全息谱、阵列信号处理)的准确性。数据清洗则是对整体数据质量进行系统性校验与修复。
重采样操作流程:
- 确定目标采样率:通常取各通道采样率的最小公倍数,或统一到最高采样率。
- 抗混叠滤波:重采样前先进行低通滤波,截止频率设为目标采样率的0.4倍(满足奈奎斯特准则)。
- 插值重采样:使用
scipy.signal.resample(FFT法)或resample_poly(多相滤波法),后者计算效率更高。
数据清洗清单:
| 检查项 | 判定标准 | 处理方式 |
|---|---|---|
| 数据完整性 | 缺失率 < 0.1% | 线性插值或删除该段 |
| 重复时间戳 | 无重复 | 保留首条,删除后续 |
| 时间戳单调性 | 严格递增 | 排序并标记异常段 |
| 信号幅值范围 | 在传感器量程内 | 超限点按异常值处理 |
| 通道间延迟 | 延迟 < 1个采样周期 | 互相关法校正 |
实战场景:某旋转机械试验台使用4个加速度计,其中2个通道采样率为51.2kHz,另2个为25.6kHz。为进行全息谱分析,需将所有通道统一至51.2kHz。先对25.6kHz通道进行抗混叠滤波(截止频率=20kHz),再使用多相滤波器进行2倍插值,重采样后各通道频谱一致性误差小于0.5dB。
经验提醒:数据清洗应生成清洗报告,记录异常值数量、替换方法、重采样参数等元数据。这不仅是可追溯性的要求,也是后续机器学习模型训练时数据版本管理的基础。
4.5 预处理流程的工程化落地与质量验证
核心原理:预处理不是孤立的步骤,而是需要形成标准化流水线,并建立质量验证机制。建议将预处理流程封装为可复用的函数或类,输入原始信号,输出清洗后的信号及质量指标。
推荐流程:
- 原始信号导入 → 2. 去趋势(线性/多项式) → 3. 去均值 → 4. 带通滤波(根据故障类型) → 5. 异常值检测与修复 → 6. 重采样(如需) → 7. 数据清洗校验 → 8. 输出信号与质量报告。
质量验证指标:
- 信噪比(SNR):预处理后SNR应提升至少10dB。
- 趋势项残留:对预处理后信号再次拟合,斜率应接近零。
- 频谱保真度:对比预处理前后已知故障特征频率的幅值变化,衰减应小于3dB。
- 相位失真:使用零相位滤波(filtfilt)确保相位无偏移。
案例闭环:某化工厂离心泵振动监测系统频繁误报警。原始信号分析发现:信号存在0.2Hz/s的线性漂移,且每5秒出现一次幅值达10g的尖峰(实际振动仅2g)。处理流程:① 二阶多项式去趋势,消除漂移;② 去均值,使信号零均值化;③ 带通滤波(10Hz~1000Hz),保留泵的转频(25Hz)及叶片通过频率(150Hz);④ Hampel滤波修复尖峰;⑤ 重采样至10kHz统一采样率。处理后,误报警率从每月15次降至0次,同时成功捕捉到轴承早期故障特征(BPFO=87.5Hz)。该流程耗时仅0.8秒/段(10秒数据),满足实时监测要求。
总结复盘:预处理参数的选择必须基于对设备工况和故障机理的深入理解。盲目使用默认参数可能导致有效信号被滤除。建议建立参数配置表,针对不同设备类型(轴承、齿轮、转子)预设不同的滤波频段和异常值阈值,并在实际运行中持续优化。