第三节:数据采集——采样定理、抗混叠滤波、采样频率设置、数据长度选择
各位同行,咱们接着聊。上一节我们把传感器选型和安装位置敲定了,信号源算是有了。但信号从传感器出来,到进入分析软件,中间还有一道关键工序——数据采集。
这一步要是没做好,后面再牛的分析算法也是白搭。说白了,就是「垃圾进,垃圾出」。我见过太多人,传感器装得挺好,结果采集参数设错了,分析出来的频谱图根本没法看。
今天我就把数据采集里最核心的四个问题讲透:采样定理、抗混叠滤波、采样频率设置、数据长度选择。嗯,咱们一个一个来。
核心观点:数据采集不是简单的「把模拟信号转成数字信号」。你得理解信号本身的频率成分,才能决定怎么采、采多长。否则,你看到的频谱,可能根本不是真实的振动。
3.1 采样定理——别让高频信号「伪装」成低频
采样定理,也叫奈奎斯特采样定理。内容很简单:采样频率必须大于信号最高频率的两倍。
为什么?我给你打个比方。你想想看,一个正弦波,一个周期内你至少得采两个点吧?一个在波峰,一个在波谷。少采一个,你就分不清这个波到底是正着转还是反着转了。
用公式说就是:
fs > 2 × fmax
其中 fs 是采样频率,fmax 是信号中的最高频率成分。
举个例子。一台风机转速 3000 RPM,也就是 50 Hz。但它的叶片通过频率、齿轮啮合频率可能到几百甚至上千赫兹。如果你只按 100 Hz 去采样,那高频成分就会「混叠」到低频段,让你误以为设备有低频故障。
⚠️ 注意:「大于两倍」不是「等于两倍」。理论上等于两倍也能恢复,但实际工程中,我建议至少取 2.56 倍,甚至 4 倍以上。我曾经吃过这个亏——按 2 倍采,结果信号恢复出来波形都变形了。
3.2 抗混叠滤波——给信号「洗个澡」
好,你可能会问:那我采样频率设高一点不就行了?
理论上可以。但现实是,信号里总有一些你不需要的高频噪声。比如电磁干扰、高频振动模态。这些成分如果直接进 ADC(模数转换器),照样会产生混叠。
所以,在采样之前,必须加一道抗混叠滤波器。它本质上是一个低通滤波器,把高于 fs/2 的频率成分统统滤掉。
我个人习惯用巴特沃斯滤波器,它的通带最平坦,对有用信号的幅值影响最小。但要注意,滤波器不是理想砖墙,它有一个过渡带。所以实际设置时,我会把滤波器的截止频率设在 fs/2 的 80% 左右,留点余量。
💡 实战技巧:我建议你在采集卡上开启硬件抗混叠滤波。软件滤波虽然也能做,但那是事后补救,效果不如硬件来得干净。我在某次风机振动测试中,就是因为没开硬件滤波,结果频谱里多了一堆莫名其妙的峰值,排查了半天才发现是电源噪声混进来了。
3.3 采样频率设置——不是越高越好
很多人觉得采样频率越高越好,恨不得设到 100 kHz。其实没必要,而且有副作用。
采样频率越高,数据量越大,存储和计算压力都上来了。更重要的是,频率分辨率会变差。
频率分辨率 Δf 的计算公式是:
Δf = fs / N
其中 N 是采样点数。你看,fs 越大,Δf 越大,你就越难分辨两个相近的频率成分。
那怎么设?我的经验是三步走:
- 确定目标频率范围:比如风机振动,重点关注 10 Hz ~ 1000 Hz 的故障频率。
- 按 2.56 倍原则设 fs:1000 Hz × 2.56 = 2560 Hz,取整为 2560 Hz 或 3200 Hz。
- 考虑抗混叠滤波器:确保滤波器截止频率在 fs/2 以内。
举个例子,我最近测一台离心风机,轴承故障频率在 120 Hz 左右,叶片通过频率在 300 Hz。我设了 fs = 1280 Hz,既覆盖了所有目标频率,又保证了足够的频率分辨率。
| 设备类型 | 典型故障频率范围 | 建议采样频率 (fs) | 说明 |
|---|---|---|---|
| 低速风机 (< 600 RPM) | 1 Hz ~ 200 Hz | 512 Hz ~ 1024 Hz | 重点关注轴承和叶片频率 |
| 中速风机 (600~3000 RPM) | 10 Hz ~ 1000 Hz | 2560 Hz ~ 3200 Hz | 覆盖齿轮啮合、叶片通过频率 |
| 高速风机 (> 3000 RPM) | 50 Hz ~ 5000 Hz | 12800 Hz ~ 16000 Hz | 注意高频模态和轴承故障 |
3.4 数据长度选择——要多少点才够?
数据长度 N,决定了两个东西:频率分辨率和统计稳定性。
先说频率分辨率。你想分辨两个频率差 1 Hz 的信号,那 Δf 必须小于 1 Hz。根据 Δf = fs / N,如果 fs = 2560 Hz,那 N 至少要 2560 点以上。
再说统计稳定性。振动信号是随机的,你采一段数据做 FFT,结果可能不稳定。所以通常需要分段平均。比如采 10 段,每段 1024 点,然后平均频谱。
我个人的经验法则是:
- 最低要求:N ≥ 1024 点,保证基本的频率分辨率。
- 推荐值:N = 2048 ~ 4096 点,兼顾分辨率和计算效率。
- 高精度分析:N = 8192 ~ 16384 点,用于识别非常接近的故障频率。
举个例子。我在做风机齿轮箱诊断时,需要分辨两个啮合频率,它们只差 0.5 Hz。我设 fs = 2560 Hz,N = 8192 点,Δf = 2560 / 8192 ≈ 0.31 Hz。这样就能清晰分开两个频率了。
关键公式总结:
- 采样定理:fs > 2 × fmax
- 频率分辨率:Δf = fs / N
- 数据长度:N = fs / Δf
- 采样时间:T = N / fs
这四个公式,你记住了,数据采集的参数设置就不会出大错。
3.5 实战案例——一次风机振动测试的参数设置
最后,我分享一个实际案例。去年我帮一家水泥厂诊断风机振动问题。
风机参数:转速 1480 RPM(约 24.67 Hz),叶片数 12 片,轴承型号 SKF 22320。
我的设置过程:
- 确定目标频率:叶片通过频率 24.67 × 12 ≈ 296 Hz,轴承故障频率约 100~400 Hz。取 fmax = 500 Hz。
- 设采样频率:fs = 500 × 2.56 = 1280 Hz,取整为 1280 Hz。
- 设数据长度:需要分辨 1 Hz 以内的频率差,Δf = 0.5 Hz,N = 1280 / 0.5 = 2560 点,取 4096 点。
- 采样时间:T = 4096 / 1280 ≈ 3.2 秒。
结果呢?频谱里清晰看到了叶片通过频率及其边频,轴承故障频率也一目了然。客户说,之前他们用 10 kHz 采样,数据量大得吓人,反而看不出问题。
💡 我的建议:别盲目追求高采样频率。先搞清楚你要看什么频率,再反推 fs 和 N。这样既省存储,又出好结果。
好了,数据采集这部分就讲到这里。记住:采样定理是底线,抗混叠滤波是保障,采样频率和数据长度是平衡的艺术。下一节,咱们聊聊信号预处理——怎么把原始信号变成能用的干净数据。
公众号:蓝海资料掘金营,微信deep3321