🙋听说振动分析中经常用到 FFT,但我完全不明白它在做什么。把时间序列数据转换成“频率”是什么意思?
🎓大致来说,就是把“这段复杂的振动里含有哪些频率的波、各有多强”分解出来的计算。例如把录下的发动机振动数据做 FFT,“50Hz 的峰”=燃烧频率,“200Hz 的峰”=齿轮啮合频率,原因就看出来了。
🎓FFT 是在“有限长的数据无限重复”的假设下计算的。矩形窗在两端把数据硬切断,端部出现突变,频谱就会模糊扩散,这就是“泄漏”。汉宁窗把两端平缓地降到零,消除了不连续。选窗就是在峰的尖锐程度与泄漏量之间权衡。
🙋本工具的信号只到 200 Hz,但如果用 1024 Hz 的采样频率测 600 Hz 的信号会怎样?
🎓这就是混叠(折返失真)!奈奎斯特频率是 fs/2=512Hz,超过它的 600Hz 分量会以 1024−600=424Hz 出现。在本来不该有的频率上出现峰,非常麻烦。实际测量中,在 ADC 前面加抗混叠滤波器(低通)把 fs/2 以上的成分滤掉是常识。
🎓结构分析中实验模态分析(EMA)是典型例子。用力锤敲击结构并测量加速度,由输入与响应的 FFT 之比(传递函数)求出固有频率、阻尼比和振型,用于与 FEM 特征值计算结果比较(相关性分析)。在噪声振动(NVH)分析中也是必不可少的方法。
❓ 常见问题
为什么 FFT 的采样点数多为 2 的幂?
库利–图基 FFT 算法在 N=2^k(2 的幂)时递归分割计算,实现 O(N log N)。也有适用于任意长度的算法(如 Rader-Brenner),但 2 的幂要快得多。
为什么使用分贝(dB)刻度?
声学和振动的动态范围可能超过 10⁶,用线性刻度时小峰会看不见。用 dB = 20 log₁₀(X/X_ref) 表示,可以均匀地显示 120dB 的动态范围。
短时傅里叶变换(STFT)与小波变换有什么区别?
FFT 以平稳信号为前提,对非平稳信号(频率随时间变化)短时 FFT(STFT)很有用。小波变换在高频处时间分辨率高、在低频处频率分辨率高,适合冲击信号和语音分析。
什么是补零?
就是在信号末尾添加零以增加采样点数后再做 FFT。这样频率分辨率 Δf=fs/N 表面上提高,频谱变得平滑(实际分辨率并没有增加,但有插值效果)。
什么是 FFT 频谱分析工具
FFT 频谱分析工具的物理模型,用离散傅里叶变换(DFT)的快速算法 FFT 把输入信号转换到频域。对以采样周期 \( T_s \) 离散化连续时间信号 \( x(t) \) 得到的序列 \( x[n] \),N 点 FFT 定义如下。
$$
X[k] = \sum_{n=0}^{N-1} x[n] \, e^{-j 2\pi k n / N}
$$
其中 \( k \) 为频率仓编号,对应的物理频率为 \( f_k = k / (N T_s) \)。但为了抑制截取有限长数据时产生的频谱泄漏,要乘以窗函数 \( w[n] \)。例如汉宁窗为 \( w[n] = 0.5 - 0.5 \cos(2\pi n / (N-1)) \),应用后的频谱如下。
$$
X_w[k] = \sum_{n=0}^{N-1} x[n] \, w[n] \, e^{-j 2\pi k n / N}
$$
另外,超过采样频率 \( f_s = 1/T_s \) 一半的频率成分会引起混叠,在本工具中改变输入合成波形的频率设置和采样条件,可以实时观察其影响。通过选择窗函数,可以体会频率分辨率与泄漏抑制之间的权衡,并理解混叠发生的条件。
常见问题
汉宁窗是抑制频谱泄漏的通用选择,频率分辨率与振幅精度平衡较好。矩形窗分辨率高但容易泄漏,适合频率为分辨率整数倍的周期信号。请根据目的切换比较。
采样频率低于信号最高频率的 2 倍时,高频成分会折返到低频出现。在工具中把输入频率设在采样频率的一半(奈奎斯特频率)以下即可防止。
截取有限长信号时,两端波形不连续,会出现本来不存在的频率成分。当分析区间(N/fs 秒)中不能正好装下整数个周期时,也就是频率不是频率分辨率 Δf 的整数倍时会发生。在工具中选择矩形窗,例如在 fs=1024 Hz(Δf=2 Hz)下设 f₁=51 Hz,就能看到峰变宽。
纵轴是各频率仓复数频谱的绝对值,并按窗函数的相干增益进行了补正和归一化。因此频率为 Δf 整数倍的正弦波,无论用哪种窗都能直接读出原来的振幅(例如 1.00)。频率不是整数倍时,泄漏会使峰值降低,要准确读取振幅会使用平顶窗等补正方法。
现实世界中的应用
工业中的实际应用
在汽车行业,发动机和电机的振动分析离不开 FFT。例如在混合动力车的逆变器中用 FFT 识别开关噪声的频率成分用于 EMC 对策,在航空发动机的涡轮叶片上对随旋转产生的共振频率做频谱分析以评估疲劳破坏风险。适当选择窗函数(如汉宁窗)可以抑制频谱泄漏,提高故障诊断的精度。
研究与教学中的应用
在大学电气、机械工程实验和信号处理课程中,它是理解声学信号和振动数据频率特性的题材。可以确认方波 FFT 中出现的吉布斯现象以及混叠的影响,并通过改变窗函数的种类体会频率分辨率与振幅精度之间的权衡。
与 CAE 分析的联系及实务定位
在对 CAE(例如 ANSYS、COMSOL)计算得到的瞬态响应波形做后处理时,FFT 也是基本工具。例如对结构分析得到的应力波形做 FFT,确定共振频率作为设计变更的依据。在实验数据与 CAE 结果的相关性验证(模型修正)中,选择能抑制频谱泄漏的窗函数也决定了分析精度。本工具是用来确认这些思路的学习工具。
常见误解与注意事项
人们容易认为“只要加窗函数就能完全防止频谱泄漏”,但实际上窗函数只是减少泄漏,并不能完全消除。尤其对于以非整数周期截取的信号,无论使用哪种窗,频率成分都会泄漏到相邻的频率仓中,准确读取振幅时需要注意。
人们容易认为“到采样频率的一半(奈奎斯特频率)为止都能正确显示”,但实际上若抗混叠滤波器不足,奈奎斯特频率附近的信号会受到混叠的影响。实际中建议采样频率留有余量,取要分析的最高频率的 2.5~5 倍左右。
人们容易认为“增加采样点数 FFT 的分辨率就能无限提高”,但实际上时间窗越长,越容易错过非平稳信号随时间的变化。频率分辨率与时间分辨率成反比,因此根据目的选择合适的窗长很重要。
使用指南
- 用“成分 1 频率 f₁”“成分 2 频率 f₂”设置两个正弦波的频率(1~200 Hz,例如 50 Hz 和 150 Hz)
- 用“成分 1 振幅 A₁”“成分 2 振幅 A₂”设置各成分的振幅(0~2,例如 1.0 和 0.5),用“噪声水平”加入噪声
- 选择采样频率(512/1024/2048 Hz),时间信号和 FFT 振幅谱会实时更新
- 切换窗函数(矩形、汉宁、汉明、布莱克曼),比较频谱泄漏的差别
具体计算示例
以采样频率 1024 Hz 分析 50 Hz(振幅 1.0)与 150 Hz(振幅 0.5)的合成波。本工具的 FFT 点数为 N=512,因此频率分辨率为 Δf=fs/N=2.0 Hz。振幅 |X[k]| 已包含窗函数补正并归一化,因此主峰显示为 50 Hz、振幅≈1.00。使用汉宁窗可以减少频谱泄漏(漏入相邻频率仓),旁瓣被抑制在约 −31 dB。奈奎斯特频率为 fs/2=512 Hz,因此到 150 Hz 的成分都能正确分析。
实务注意事项
- 旋转机械诊断中同时观察 1X(转频)和 2X 时,窗函数会改变主瓣宽度(能分辨的频率接近程度)和旁瓣高度,因此要根据目的选择
- 分析电力系统 50/60 Hz 及其谐波时,若分析区间不是周期的整数倍,频谱泄漏会使振幅读数偏小,因此要加窗函数或使区间与周期一致
- 采样频率必须高于要测量的最高频率的 2 倍(奈奎斯特定理)。低于此值时,高频成分会折返到低频出现(混叠)