4、傅里叶变换入门:连续傅里叶变换与离散傅里叶变换、FFT算法原理、频谱分辨率与频率泄露
各位同行,大家好。今天咱们聊聊傅里叶变换。
说实话,我刚入行那会儿,看到傅里叶变换的公式就头疼。什么积分、什么复数,感觉跟实际故障诊断八竿子打不着。后来真干项目了,才发现——不懂它,你连轴承的故障频率都找不准。
这一章,我就用最直白的方式,把傅里叶变换的底裤扒开给你看。咱们不搞数学推导,只讲工程直觉。
4.1 连续傅里叶变换(CFT)——理论上的完美工具
连续傅里叶变换,说白了就是把一个连续的时间信号,拆解成无数个正弦波和余弦波的叠加。每个正弦波都有自己的频率、幅值和相位。
公式长这样:
X(f) = ∫ x(t) * e^(-j2πft) dt
嗯,我知道你看到积分符号就头疼。别急,咱们换个角度理解。
你想想看,一个轴承的振动信号,其实就是很多不同频率的振动叠加在一起。比如内圈故障频率、外圈故障频率、滚动体故障频率,还有各种谐波。傅里叶变换就是一把“筛子”,把这些频率成分一个一个筛出来。
但问题是——现实世界里,我们拿到的信号都是离散的、有限长的。连续傅里叶变换要求信号无限长、连续,这在实际采集系统中根本做不到。所以,才有了离散傅里叶变换。
4.2 离散傅里叶变换(DFT)——工程界的妥协方案
离散傅里叶变换,就是把连续傅里叶变换“离散化”。我们只取信号在特定时间点上的采样值,然后计算这些采样点对应的频率成分。
公式变成这样:
X[k] = Σ x[n] * e^(-j2πkn/N), n=0,1,...,N-1
这里N是采样点数,k是频率索引。说白了,就是把积分换成了求和。
我在项目中遇到过一个问题:用DFT分析一个轴承的振动信号,采样率是10kHz,采样时长1秒,按理说频率分辨率应该是1Hz。但实际出来的频谱图,峰值位置总是偏那么一点点。后来才发现,是DFT的计算量太大了,导致处理器来不及处理,丢了一些数据点。
DFT的致命伤——计算量太大。N个点,要做N²次复数乘法。如果N=1024,那就是100多万次运算。这在嵌入式系统里根本跑不动。
4.3 FFT算法原理——让傅里叶变换飞入寻常百姓家
FFT(快速傅里叶变换)不是一种新的变换,而是DFT的一种高效算法。它利用了旋转因子的对称性和周期性,把计算量从N²降到了N*log₂(N)。
举个例子:N=1024时,DFT需要约100万次运算,FFT只需要约1万次。差了100倍!
FFT的核心思想是“分而治之”。它把一个大DFT分解成两个小DFT,再递归分解,直到变成2点DFT。这就是著名的“基2时间抽取FFT”。
我曾经调试过一个振动监测系统,采样率20kHz,每次处理2048个点。用DFT的话,CPU占用率直接飙到90%,系统卡死。换成FFT后,占用率降到15%,还能同时跑其他任务。这就是FFT的威力。
核心要点:FFT不是魔法,它只是利用了数学上的对称性,把重复计算省掉了。你不需要记住它的具体实现,但要知道——它快,而且准。
4.4 频谱分辨率——你能看清多细的频率细节?
频谱分辨率,说白了就是频谱图上两个相邻频率点之间的间隔。公式很简单:
Δf = fs / N
其中fs是采样率,N是FFT点数。
举个例子:采样率10kHz,FFT点数1024,那么频率分辨率就是10kHz/1024 ≈ 9.77Hz。这意味着,如果两个故障频率相差不到9.77Hz,你在频谱图上就分不清它们。
怎么提高分辨率?两个办法:
- 增加采样时长——采样时间越长,N越大,分辨率越高。但代价是实时性变差。
- 降低采样率——但要注意采样定理,采样率必须大于最高分析频率的2倍。
我在做风电齿轮箱故障诊断时,遇到过一个问题:齿轮的啮合频率和边频带只差几赫兹。用1024点FFT根本看不清。后来我把采样时长从0.1秒延长到1秒,FFT点数增加到8192,分辨率从10Hz降到了1.25Hz,边频带一目了然。
我的建议:做轴承故障诊断时,先估算一下故障频率之间的最小间隔,然后反推需要的FFT点数。别盲目追求高分辨率,够用就行。
4.5 频率泄露——为什么频谱图上总有“鬼影”?
频率泄露,是DFT/FFT的一个固有缺陷。简单说,就是本来应该集中在一个频率点上的能量,扩散到了相邻的频率点上。
为什么会这样?因为DFT假设信号是周期延拓的。如果采样时长不是信号周期的整数倍,那么信号在首尾连接处就会出现“跳变”。这个跳变在频谱上表现为很多额外的频率成分。
举个例子:一个50Hz的正弦波,采样时长0.1秒(5个周期),FFT结果很干净,只有一个峰值。但如果采样时长0.105秒(5.25个周期),FFT结果就会出现很多小峰值,50Hz附近的频率点都有能量。
怎么抑制频率泄露?加窗函数。
窗函数的作用,就是把信号的首尾“抹平”,减少跳变。常用的窗函数有:
| 窗函数 | 主瓣宽度 | 旁瓣衰减 | 适用场景 |
|---|---|---|---|
| 矩形窗 | 窄 | 差 | 瞬态信号、冲击信号 |
| 汉宁窗 | 中等 | 较好 | 连续振动信号(最常用) |
| 海明窗 | 中等 | 好 | 窄带信号 |
| 布莱克曼窗 | 宽 | 最好 | 需要高动态范围 |
我曾经犯过一个错误:用矩形窗分析轴承的连续振动信号,结果频谱图上出现了很多“假峰”,差点误判为故障。后来换成汉宁窗,假峰消失了,真正的故障频率清晰可见。
注意:加窗会降低频率分辨率(主瓣变宽)。所以要在“抑制泄露”和“保持分辨率”之间做权衡。对于轴承故障诊断,我一般先用汉宁窗,如果分辨率不够再换矩形窗。
4.6 本章知识体系
下面这张图,是我自己画的傅里叶变换知识体系。你可以把它当作一张“地图”,随时回来查阅。
嗯,这一章的内容就到这里。傅里叶变换是频谱分析的基石,你把它搞懂了,后面的故障频率识别、包络分析、阶次分析,学起来就轻松多了。
记住我的一句话:别怕公式,怕的是不懂物理意义。傅里叶变换的本质,就是把时间信号变成频率信号。你只要记住这个,剩下的都是技术细节。
公众号:蓝海资料掘金营,微信deep3321