傅里叶变换(FFT)基础:从时域到频域的“翻译官”

各位同学,咱们今天聊点硬核的。傅里叶变换,尤其是它的快速实现FFT,可以说是故障诊断里最核心的工具之一。说白了,它就像一台“翻译机”,能把传感器采集到的、随时间变化的振动信号(时域),翻译成我们更容易理解的、按频率分布的频谱图(频域)。

我刚开始做故障诊断那会儿,看着时域波形图,除了能看出振幅大小,根本不知道里面藏着什么猫腻。直到我学会了看频谱,才恍然大悟——原来一个看似杂乱的振动信号,其实是多个不同频率、不同幅值的正弦波叠加在一起的。嗯,这就是FFT的物理意义。

核心思想:任何复杂的周期信号,都可以分解为一系列不同频率、不同幅值、不同相位的正弦波之和。FFT就是帮我们快速算出这些正弦波成分的算法。

1. 采样定理(Nyquist):别让你的数据“说谎”

做FFT之前,有个坎儿必须迈过去——采样定理。我记得刚入行时,有次去现场测一台离心泵的振动,随手设了个1000 Hz的采样率,觉得挺高了。结果回来一分析,频谱图上在400 Hz附近出现了一个明显的峰值,我以为是轴承故障频率。后来老工程师一看,说:“你被‘混叠’骗了。”

为什么会这样?

采样定理告诉我们:要正确还原一个信号,采样频率必须大于信号最高频率的两倍。这个“两倍”的临界值,就叫奈奎斯特频率

  • 采样频率 fs:你每秒采集多少个数据点
  • 奈奎斯特频率 fn = fs / 2:你能分析到的最高频率
  • 如果信号中有高于 fn 的成分,它们会“伪装”成低于 fn 的频率出现在频谱上——这就是频率混叠

避坑指南:我曾经因为采样率设置不当,把齿轮的啮合频率(高频)误判成了转频(低频),差点让人家换了一整套轴承。记住:采样率至少设为目标分析频率的2.56倍(工程上常用2.56倍留余量)。

信号最高频率 理论最小采样率 工程推荐采样率
100 Hz 200 Hz 256 Hz
1000 Hz 2000 Hz 2560 Hz
10 kHz 20 kHz 25.6 kHz

2. 频率分辨率:你能看清多细的“谱”

采样率搞定了,下一个问题来了:频谱上相邻两根谱线之间隔多远?这就是频率分辨率 Δf

公式很简单:Δf = fs / N

其中 N 是FFT的点数(也就是你截取了多少个数据点来做FFT)。

你想想看,如果采样率 fs = 2560 Hz,你取 N = 1024 点做FFT,那么 Δf = 2560 / 1024 = 2.5 Hz。这意味着,如果两个故障频率只差1 Hz,你在频谱上是分不开的,它们会“糊”在一起。

我的经验:做滚动轴承故障诊断时,保持架故障频率往往和转频非常接近,有时就差零点几赫兹。这时候我会尽量增加采样点数 N(比如取4096点甚至8192点),把频率分辨率做到0.5 Hz以下,才能把这两个频率“掰开”。

但注意,增加 N 意味着你需要采集更长时间的数据。这是个权衡:

  • 想要高频率分辨率 → 采集更长时间 → 数据量大
  • 想要快速诊断 → 采集短时间 → 频率分辨率低

3. 频谱泄露:FFT的“副作用”

好,现在你有了数据,设好了参数,跑FFT。结果一看频谱,咦?明明是一个单一频率的正弦波,怎么在它旁边还出现了几个小“鼓包”?

这就是频谱泄露。说白了,FFT假设你截取的这段信号是周期性重复的。但如果你的截取长度不是信号周期的整数倍,首尾就不连续,FFT就会“强行”用一堆额外的频率成分去拟合这个不连续点。

我举个例子:你录了一段完美的50 Hz正弦波,但只截取了0.1秒(5个周期),首尾刚好衔接,没问题。但如果你截取了0.12秒(6个周期又多了点),首尾对不上,频谱上就会出现一堆不该有的频率分量。

解决办法:加窗函数。常用的有汉宁窗(Hanning)、海明窗(Hamming)、布莱克曼窗(Blackman)等。加窗的本质是让截取信号的首尾逐渐衰减到零,减少不连续性。

我个人习惯,做一般的振动分析用汉宁窗就够了。如果是分析两个频率非常接近的信号,我会用布莱克曼窗,它的旁瓣衰减更大,但主瓣会宽一点(频率分辨率会稍微变差)。

注意:加窗不是万能的。它只是“减轻”泄露,不能“消除”泄露。而且加窗后,信号的幅值会被压低,需要做幅值修正。嗯,这个细节很多新手会忽略。

知识体系总览

下面这张图,是我自己总结的FFT基础三要素的关系,你一看就明白:

FFT基础三要素关系图 FFT频谱分析 采样定理 fs ≥ 2 × fmax 频率分辨率 Δf = fs / N 频谱泄露 加窗函数缓解 避免混叠 设置抗混叠滤波器 增加N提高分辨率 权衡采集时间 汉宁窗 布莱克曼窗 三者相互影响,需根据实际工况权衡设置

实战中的小建议

最后,分享几个我这些年总结出来的实用技巧:

  1. 先看时域,再看频域。别一上来就做FFT。先看看时域波形有没有明显的冲击、调制、削波,这些特征能帮你预判故障类型。
  2. 采样时间要够长。至少采集10个以上的旋转周期,才能保证频率分辨率够用。我一般会采集30秒以上的数据。
  3. 多做几次平均。单次FFT的结果可能受随机噪声影响。做4~8次线性平均,能有效抑制噪声,让故障频率更清晰。
  4. 别迷信高采样率。采样率不是越高越好。过高的采样率会带来巨大的数据量,而且如果信号本身没有高频成分,纯属浪费。

一个小练习:找一段已知转速的电机振动数据,分别用256 Hz、1024 Hz、4096 Hz的采样率做FFT,对比频谱图。你会发现,采样率太低时,高频故障频率根本看不到;采样率合适时,频谱清晰干净。这就是理论落地的感觉。

好了,这一章的内容就到这里。FFT的基础打牢了,后面讲故障特征频率提取、边频带分析、包络谱这些,你才能听得明白。记住我今天说的三个关键词:采样定理、频率分辨率、频谱泄露。它们是所有频谱分析的基石。

专注资料整理