3、信号采集与预处理:加速度计/振动传感器选型、采样率与分辨率设置、去噪与归一化基础

TinyML振动异常检测的成败,往往不取决于模型有多深、训练有多久,而取决于进入模型的第一毫秒信号质量。传感器选型不当、采样率设置错误、原始数据未做预处理,都会让后续的FFT窗函数选择与特征提取失去意义。本章聚焦信号链路的源头,系统讲解加速度计与振动传感器的选型逻辑、采样率与分辨率(位深)的工程设定方法,以及去噪与归一化的基础操作,为后续FFT频谱分析打下可靠的数据基础。

振动信号采集与预处理链路 传感器选型 量程 ±2g~±16g 灵敏度 300~1000mV/g 带宽 0.5Hz~5kHz 噪声密度 25~200 μg/√Hz 采样率与分辨率 fs ≥ 2.56 × fmax 位深 12~16 bit 采样时长 ≥ 10个周期 抗混叠滤波开启 去噪与归一化 高通滤波去趋势 低通滤波去高频噪声 Z-score / Min-Max 去直流分量 FFT窗函数 加窗处理 频谱计算 特征提取 关键工程参数速查 • 采样率:滚动轴承故障特征频率通常 < 2kHz,取 fs = 12.8kHz 或 25.6kHz • 分辨率:12bit 加速度计可检测 0.01g 级别振动,16bit 适合高精度诊断 • 去噪:先高通(0.5Hz)去趋势,再低通(0.5×fs)抗混叠,最后移动平均平滑 • 归一化:Z-score 适合高斯分布信号,Min-Max 适合有界振动信号 • 数据长度:FFT 点数 N = fs × T,建议 N ≥ 1024,窗函数长度与 N 匹配 图3-1 振动信号采集与预处理工程链路

3.1 传感器选型:从应用场景反推硬件参数

振动传感器选型不是参数越高越好,而是要与目标设备的振动特征、安装环境、功耗约束和成本预算匹配。在TinyML场景下,传感器通常直接连接MCU的ADC或通过SPI/I2C接口输出数字信号,因此选型时需同时考虑模拟性能与数字接口的适配性。

3.1.1 核心原理:量程、灵敏度与带宽的三角平衡

振动传感器有三个核心参数需要权衡:量程(Full Scale)、灵敏度(Sensitivity)和带宽(Bandwidth)。量程决定了能测量的最大振动幅度,灵敏度决定了小信号的检测能力,带宽则决定了能捕捉的最高频率成分。三者之间存在物理约束:量程越大,灵敏度通常越低;带宽越宽,噪声密度越高。

对于工业旋转机械(如电机、泵、风机),振动加速度通常在0.1g~5g之间,特征频率集中在50Hz~2kHz。此时选择±8g量程、灵敏度400mV/g、带宽3kHz的传感器较为合适。对于高精密设备(如硬盘、精密主轴),振动幅度可能低至0.01g,需要选择±2g量程、高灵敏度传感器,并配合低噪声放大器。

经验法则:传感器量程应覆盖最大预期振动的1.5~2倍,避免削波失真;灵敏度应保证最小目标信号在ADC中至少占用10~20个LSB(最低有效位),否则量化噪声会淹没微弱振动特征。

3.1.2 判断方法:五步选型流程

  1. 确定振动类型:位移(低频<10Hz)、速度(中频10Hz~1kHz)、加速度(高频>1kHz)。TinyML异常检测通常使用加速度计,因为FFT分析需要高频成分。
  2. 估算最大振动幅度:通过设备规格书或实测数据,确定最大加速度峰值(g值)。
  3. 确定目标频率范围:根据轴承故障特征频率(BPFO、BPFI、BSF)或齿轮啮合频率,确定需要分析的最高频率fmax。
  4. 选择传感器类型:MEMS加速度计(ADXL345、MPU6050、LIS3DH)适合低频到中频(0.5Hz~5kHz);压电式加速度计(PCB 352C33)适合高频(1Hz~10kHz),但需要电荷放大器。
  5. 验证接口与功耗:确认传感器输出是模拟(需外接ADC)还是数字(I2C/SPI),并评估功耗是否满足电池供电的TinyML设备要求。

3.1.3 案例拆解:电机轴承故障检测的传感器选型

某工厂需要对一台4极异步电机(转速1480rpm)进行振动监测,目标是检测轴承外圈故障。已知轴承型号为6205,节径39.04mm,滚动体直径7.94mm,滚动体数量9个。计算得外圈故障特征频率BPFO≈89.5Hz,内圈故障特征频率BPFI≈132.5Hz。

选型过程:

  • 最大振动幅度:电机正常运行时约0.5g,故障初期可能达到2g,取安全系数2,量程选±4g。
  • 目标频率范围:BPFO的3倍频≈268Hz,考虑高频噪声,fmax取1kHz。
  • 传感器选择:选用ADXL345(±16g量程,13bit分辨率,带宽1.6kHz),虽然量程偏大,但通过配置可降低量程至±4g,灵敏度提升至约3.9mg/LSB。
  • 接口与功耗:I2C接口,测量模式功耗40μA,适合电池供电的无线监测节点。

结果对比:使用该配置在实验室转子试验台上验证,成功在FFT频谱中清晰识别出BPFO及其谐波,信噪比达到18dB以上。若误选±16g量程且不调整灵敏度,则BPFO幅值仅占ADC量程的1.5%,FFT后特征几乎被噪声淹没。

3.1.4 常见误区与总结

误区1:认为量程越大越好。实际上,量程过大会导致小信号量化误差增大,降低微弱故障特征的检测能力。
误区2:忽略传感器带宽与采样率的匹配。如果传感器带宽只有1kHz,即使采样率设为25.6kHz,也无法获取超过1kHz的有效信号,反而引入高频噪声。
误区3:不检查传感器的零偏稳定性。MEMS加速度计存在零偏漂移(温度、时间),需要在预处理中做高通滤波去除直流分量。

3.2 采样率与分辨率设置:奈奎斯特之外的工程考量

采样率与分辨率(位深)直接决定了FFT频谱的频率分辨率和幅值精度。在TinyML设备上,这两者还受限于MCU的ADC采样速度、存储空间和功耗预算。

3.2.1 核心原理:采样率、频率分辨率与混叠

根据奈奎斯特采样定理,采样率fs必须大于信号最高频率fmax的2倍。但在工程实践中,由于FFT频谱存在频谱泄漏和栅栏效应,通常取fs ≥ 2.56 × fmax,即过采样率至少为2.56倍。频率分辨率Δf = fs / N,其中N为FFT点数。要区分两个相邻频率成分(如BPFO的边带),需要Δf小于两者频率差的一半。

分辨率(位深)影响幅值量化精度。12bit ADC的理论动态范围为72dB,16bit为96dB。对于振动信号,若最小目标信号幅值为0.01g,最大为2g,则动态范围需求为20×log10(2/0.01)=46dB,12bit足够。但如果需要检测早期微弱故障(0.001g),则动态范围需求为66dB,需14bit以上。

3.2.2 操作流程:采样参数设定步骤

  1. 确定fmax:根据设备转速和故障特征频率,取最高关注频率的3~5倍作为fmax。
  2. 计算最小采样率:fs_min = 2.56 × fmax,取整到标准采样率(如12.8kHz、25.6kHz)。
  3. 确定采样时长T:至少包含10个最低特征频率的周期,即T ≥ 10 / f_min。例如f_min=10Hz,则T≥1秒。
  4. 计算FFT点数N:N = fs × T,取2的幂次(如1024、2048、4096)。
  5. 配置ADC位深:根据动态范围需求选择12/14/16bit,并设置合适的增益。
工程示例:某齿轮箱转速3000rpm(50Hz),齿轮啮合频率为50×23=1150Hz,需分析至3倍啮合频率3450Hz。取fmax=4kHz,fs=2.56×4k=10.24kHz,取标准值12.8kHz。最低特征频率为轴频50Hz,T≥10/50=0.2s,取T=0.5s。N=12800×0.5=6400,取FFT点数8192,频率分辨率Δf=12800/8192=1.56Hz,足以区分50Hz轴频及其边带。

3.2.3 案例拆解:采样参数不当导致的诊断失败

某风电齿轮箱监测系统使用fs=2kHz采样,FFT点数1024,频率分辨率Δf=1.95Hz。现场发现频谱中无法清晰分辨齿轮啮合频率的边带(边带间隔为轴频0.5Hz),导致无法判断齿轮磨损程度。

分析过程:齿轮啮合频率为500Hz,边带间隔为轴频0.5Hz。要分辨0.5Hz的边带,频率分辨率需小于0.25Hz。原配置Δf=1.95Hz,远大于0.5Hz,边带被平均化而消失。

解决方案:将采样率降至1kHz(fmax=400Hz足够),采样时长增至4秒,N=4000,取4096点FFT,Δf=0.244Hz。修改后频谱清晰显示边带,诊断出齿轮存在不均匀磨损。

代价与经验:降低采样率牺牲了高频分析能力,但针对该齿轮箱的故障特征频率范围是合理的。经验是:采样率不是越高越好,而是要与目标频率匹配;频率分辨率不足时,优先增加采样时长而非采样率。

3.2.4 常见误区与总结

误区1:盲目追求高采样率,导致数据量过大,MCU存储和传输压力剧增,且FFT计算时间变长。
误区2:忽略抗混叠滤波器。如果传感器或ADC没有内置抗混叠滤波,高频噪声会折叠到低频段,污染FFT频谱。
误区3:FFT点数N不是2的幂次,导致计算效率低下。TinyML设备上的FFT库(如CMSIS-DSP)通常要求N为2的幂次。

3.3 去噪与归一化基础:让FFT看到真正的特征

原始振动信号包含直流偏置、趋势项、随机噪声和工频干扰。如果不做预处理,FFT频谱会被这些非目标成分主导,窗函数的选择和特征提取都会失真。去噪与归一化是FFT分析前的最后一道工序。

3.3.1 核心原理:噪声来源与预处理策略

振动信号的噪声来源包括:传感器本底噪声(热噪声、1/f噪声)、环境振动(地面振动、其他设备干扰)、电气干扰(50Hz工频及其谐波)、量化噪声(ADC分辨率限制)。去噪的目标是保留目标频带内的有效信号,抑制带外噪声。

归一化的目的是消除幅值尺度差异,使不同设备、不同工况下的信号具有可比性。常用的归一化方法有:Z-score归一化(减去均值除以标准差)、Min-Max归一化(缩放到[0,1]区间)、峰值归一化(除以最大绝对值)。

3.3.2 操作流程:预处理流水线

  1. 去直流分量:计算信号均值并减去,消除传感器零偏和重力分量。
  2. 高通滤波:截止频率设为0.5Hz~1Hz,去除趋势项和低频漂移。
  3. 低通滤波:截止频率设为0.5×fs,作为抗混叠滤波,去除高频噪声。
  4. 陷波滤波(可选):若存在50Hz工频干扰,使用陷波器去除。
  5. 平滑处理(可选):移动平均或Savitzky-Golay滤波,去除随机噪声。
  6. 归一化:根据后续FFT和特征提取的需求,选择Z-score或Min-Max。
// 伪代码示例:振动信号预处理流水线
float signal[N];  // 原始信号
float filtered[N];

// 1. 去直流
float mean = 0;
for (int i = 0; i < N; i++) mean += signal[i];
mean /= N;
for (int i = 0; i < N; i++) signal[i] -= mean;

// 2. 高通滤波(一阶IIR,fc=1Hz, fs=12800Hz)
float alpha = 1.0f / (1.0f + 2.0f * 3.14159f * 1.0f / 12800.0f);
float prev_y = 0;
for (int i = 0; i < N; i++) {
    float y = alpha * (prev_y + signal[i] - signal[i-1]);
    filtered[i] = y;
    prev_y = y;
}

// 3. 低通滤波(移动平均,窗口=5)
for (int i = 2; i < N-2; i++) {
    filtered[i] = (filtered[i-2] + filtered[i-1] + filtered[i] + filtered[i+1] + filtered[i+2]) / 5.0f;
}

// 4. Z-score归一化
float std = 0;
for (int i = 0; i < N; i++) std += filtered[i] * filtered[i];
std = sqrt(std / N);
for (int i = 0; i < N; i++) filtered[i] /= std;

3.3.3 案例拆解:去噪前后FFT频谱对比

某泵站振动监测系统采集到一组信号,采样率12.8kHz,时长1秒。原始信号FFT频谱显示:0Hz处有巨大直流分量(幅值达2.5g),50Hz处有工频干扰(幅值0.3g),目标故障特征频率在120Hz处(幅值仅0.05g)。

预处理前:直流分量和工频干扰完全掩盖了120Hz特征,FFT频谱中120Hz处几乎不可见。

预处理后:先去除直流分量,再使用50Hz陷波器,最后进行Z-score归一化。处理后的FFT频谱中,120Hz处幅值清晰可见,信噪比从3dB提升至22dB。

关键操作:

  • 去直流:计算均值并减去,直流分量从2.5g降至0.01g以下。
  • 陷波器:使用二阶IIR陷波器,带宽2Hz,中心频率50Hz,工频干扰衰减40dB。
  • 归一化:Z-score后,信号幅值范围变为[-3, 3],FFT幅值具有可比性。

复盘经验:预处理不是越多越好。过度滤波会滤除有效信号成分,例如高通截止频率过高会衰减低频故障特征。建议先做频谱分析,确定噪声频带后再设计滤波器参数。

3.3.4 常见误区与总结

误区1:先归一化再去噪。归一化会放大噪声,导致后续滤波效果变差。正确顺序是先滤波后归一化。
误区2:对所有信号使用相同的滤波器参数。不同设备的振动特征频率不同,滤波器参数应根据目标频带定制。
误区3:忽略传感器安装谐振。传感器安装不当会产生谐振峰,在FFT频谱中形成虚假特征,需通过安装验证和模态分析排除。

3.4 本章总结与工程清单

信号采集与预处理是TinyML振动异常检测的基石。传感器选型决定了信号的上限质量,采样率与分辨率设置决定了FFT的观测能力,去噪与归一化则确保特征提取的可靠性。三者环环相扣,任何一环的失误都会在后续FFT窗函数选择和模型训练中被放大。

环节 关键参数 推荐值/方法 常见错误
传感器选型 量程、灵敏度、带宽 量程=1.5~2×最大振动;灵敏度保证10~20 LSB;带宽≥3×fmax 量程过大、忽略零偏漂移
采样率设置 fs、N、T fs≥2.56×fmax;N取2的幂次;T≥10/f_min 采样率过高、N非2的幂次
分辨率设置 ADC位深 12bit满足一般需求,16bit用于微弱信号 位深不足导致量化噪声
去噪 滤波器类型与截止频率 高通0.5Hz、低通0.5×fs、陷波50Hz 滤波过度、顺序错误
归一化 方法选择 Z-score适合高斯分布,Min-Max适合有界信号 先归一化再去噪
工程检查清单:
  • □ 传感器量程是否覆盖最大振动且留有裕量?
  • □ 采样率是否满足2.56倍过采样?FFT点数是否为2的幂次?
  • □ 是否配置了抗混叠滤波?截止频率是否正确?
  • □ 预处理顺序是否为:去直流→高通→低通→陷波→归一化?
  • □ 归一化方法是否与后续特征提取算法匹配?
  • □ 是否保存了预处理参数(均值、标准差)以便推理阶段复用?

在TinyML部署阶段,预处理参数(滤波器系数、归一化均值/标准差)必须固化到设备端,且与训练阶段保持一致。任何参数不一致都会导致特征分布偏移,使模型在部署后性能下降。建议在训练阶段将预处理参数导出为C头文件,直接嵌入MCU固件。