FFT频谱分析仿真器 返回
频谱分析器

FFT频谱分析仿真器

合成最多5个正弦波分量,实时分析FFT频谱。直观理解窗函数效果、频谱泄漏、THD和频率分辨率。

信号分量设置
噪声 SNR
dB
采样频率 f_s
Hz
FFT点数 N
窗函数
计算结果
主频 [Hz]
RMSAmplitude
THD [%]
Δf = f_s/N [Hz]
时域 — 合成信号
频域 — 频谱 [dB]
理论与主要公式

DFT定义:

$$X[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N}$$

频率分辨率:$\Delta f = f_s / N$

窗函数可降低频谱泄漏

什么是FFT频谱分析

🙋
FFT频谱分析是什么?听起来好复杂啊。
🎓
简单来说,它就像给声音或振动信号拍一张“成分照片”。比如,一台发动机在运转,它的声音很复杂。FFT分析能把这混合的声音分解开,告诉你里面有多少个不同频率的“音调”,以及每个音调有多响。在实际工程中,工程师用它来诊断机器故障,比如轴承坏了会产生一个特定的高频声音。你试试在模拟器里拖动“振幅”滑块,就能看到对应的频谱峰值在变化,非常直观。
🙋
诶,真的吗?那旁边那个“窗函数”选项是干嘛的?选“矩形”和“汉宁”看起来频谱图不太一样。
🎓
问得好!这涉及到“频谱泄漏”问题。想象一下,你用相机拍一个摆动的钟摆,如果快门开合的时间(窗口)不合适,拍出来的照片(频谱)就会模糊,能量“泄漏”到旁边的频率上。矩形窗就像突然开、突然关的快门,泄漏最严重。汉宁窗则是慢慢开、慢慢关,能大大减少模糊。比如在汽车振动测试中,为了精确分析某个频率的振幅,工程师几乎都用汉宁窗。你可以在模拟器里改变窗函数,观察一个频率不在整数倍分辨率上的信号,看看频谱是如何“散开”的。
🙋
原来是这样!那“THD”和“信噪比”这两个参数又代表什么呢?对分析结果影响大吗?
🎓
THD(总谐波失真)是衡量信号“纯净度”的指标。比如一个理想的50Hz交流电,频谱上应该只有一个50Hz的峰。但如果电源质量不好,就会产生100Hz、150Hz等谐波,THD值就会变高。而“信噪比”模拟了现实世界无处不在的干扰噪声。工程现场常见的是,传感器信号里总混着电子噪声或环境噪声。你试着把模拟器的“信噪比”调低,就会看到频谱背景上出现很多杂乱的小毛刺,这可能会掩盖掉真实的小信号峰值,给故障诊断带来困难。

物理模型与关键公式

FFT的核心是离散傅里叶变换(DFT),它将离散的时间序列信号 $x[n]$ 转换到频域,得到复数频谱 $X[k]$。

$$X[k]=\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/N}$$

其中,$n$ 是采样点序号,$k$ 是频率索引(对应第 $k$ 个频率分量),$N$ 是总的采样点数(FFT点数)。这个公式计算了信号中包含的每个频率分量的幅度和相位。

频率分辨率决定了频谱能区分开两个多近的频率,是FFT分析中最重要的参数之一。

$$\Delta f = \frac{f_s}{N}$$

$\Delta f$ 是频率分辨率(Hz),$f_s$ 是采样频率(Hz),$N$ 是FFT点数。例如,$f_s=1000\text{Hz}$,$N=1024$,则 $\Delta f \approx 0.98\text{Hz}$。这意味着频率间隔小于0.98Hz的两个信号,在频谱上可能无法被区分。

现实世界中的应用

旋转机械故障诊断:风机、水泵、电机等设备,轴承损坏、转子不平衡或齿轮磨损都会产生特征频率的振动。工程师通过FFT分析振动频谱,可以精准定位故障类型和严重程度,实现预测性维护。

噪声源识别与NVH优化:在汽车和航空航天领域,FFT用于分析噪声频谱,找出恼人噪声的来源频率(如胎噪、风噪、发动机轰鸣声),从而指导隔音、吸音材料的设计与布置,提升乘坐舒适性。

电力电子与电能质量分析:分析电网或开关电源的输出波形,通过THD指标评估其谐波污染程度。高THD会降低设备效率、引起过热,FFT分析是制定滤波方案、改善电能质量的基础。

结构模态测试:在桥梁、建筑或飞机机翼上施加激励(如力锤敲击),通过多个传感器采集振动响应并进行FFT分析,可以提取结构的固有频率、阻尼比和振型,这是CAE模态仿真结果验证的关键步骤。

常见误解与注意事项

刚开始接触FFT分析时,包括我在内的很多人都容易陷入一些误区。首先是“采样频率越高分辨率就越高”这个误解。实际上频率分辨率 $\Delta f$ 等于 $f_s / N$,所以单纯提高 $f_s$ 反而会降低分辨率($\Delta f$ 会变大)。例如当 $f_s=1$kHz、$N=1024$ 时 $\Delta f \approx 0.98$Hz,但若将 $f_s$ 提升至2kHz,则 $\Delta f \approx 1.95$Hz。要想提高分辨率,必须增大 $N$ 或降低 $f_s$。但需注意:$f_s$ 无法捕捉高于奈奎斯特频率($f_s/2$)的信号成分,因此必须确保采样频率至少是测量对象最高频率的两倍。这种平衡正是工程实践的关键所在。

第二点是过度相信“加窗函数就能解决所有问题”。汉宁窗确实很方便,但会导致振幅显示偏小,需要乘以校正系数(例如对于有效值约为1.63)来估计真实振幅。此外,加窗也会降低时间分辨率。比如在捕捉瞬态冲击现象时,矩形窗反而能更准确地把握时间点。专业技巧在于根据现象特性选择窗函数,而非“万事皆用汉宁窗”。

最后是关于“FFT点数N必须是2的幂次”的刻板印象。虽然2的幂次计算效率最高,但现在的软件库和硬件对任意点数都能快速处理。更重要的是根据所需频率分辨率 $\Delta f$ 和现有数据长度来反推确定 $N$。即使只有8000个数据点,若想实现1Hz分辨率,只需设定 $f_s=8000$Hz即可。建议用本模拟器尝试将 $N$ 改为512或1000等非2的幂次,观察结果如何变化。