傅里叶变换可视化工具 返回
信号处理

傅里叶变换可视化工具

使用滑块调节信号类型、窗函数和周波数,实时显示时间域、幅度谱和位相谱。直观理解FFT本质。

信号设置

谐波幅度(基波 = 1次)

FFT设置

预设

计算结果
主频率
SNR (dB)
频谱重心
THD (%)
FFT 幅度谱
FFT 位相谱
理论和主要公式

$$X(f) = \int_{-\infty}^{\infty} x(t) e^{-j2\pi ft} dt$$

傅里叶变换:将时间信号 $x(t)$ 变换为频率谱 $X(f)$。

$$x(t) = \int_{-\infty}^{\infty} X(f) e^{j2\pi ft} df$$

逆傅里叶变换:从频谱 $X(f)$ 恢复时间波形 $x(t)$。

$$|X(f)|^2 \leftrightarrow R_{xx}(\tau)$$

Parseval定理:时间域能量(积分)等于频率域能量。功率谱密度与自相关函数的对偶关系。

傅里叶变换可视化工具简介

🙋
这个工具中可以选择"窗函数",但首先什么是窗函数?给信号加窗是什么意思?
🎓
简单来说,窗函数是在截取有限长度信号时,为了平滑处理截断边界的一种"修边"方法。比如上面的"信号类型"选择正弦波,窗函数选"矩形(无)",你就能看到图形在两端有急剧的切割。这种切割边界会在FFT结果中产生多余的频率成分,称为"频谱泄漏"。
🙋
原来如此!那么选择"Hann窗"就能减少这种泄漏吗?但这一定有什么缺点吧?
🎓
完全正确!使用Hann窗能平滑地将信号端部降至接近零,大大减少泄漏。看右边的频谱显示比较一下。但是,窗函数的形状变宽会导致频率峰值有点模糊(分辨率下降)。这是一个权衡。实际工作中,工程师根据要测量的信号类型来选择Hann、Hamming或Blackman窗。
🙋
明白了!下面显示的"THD"是什么意思?
🎓
THD(总谐波失真率)是信号偏离"纯正弦波"的程度指标。试试把"信号类型"改成矩形波或锯齿波。你会看到频谱上出现许多高调波(整数倍频率的成分)对吧?THD就是把这些高调波的强度全部加起来,相对于基波的比例(%)来表示。这个数值在音频设备性能评估中经常使用。

物理模型与主要公式

本工具的核心是离散傅里叶变换(DFT),它将离散时间信号 $x[n]$ 变换为离散频率成分 $X[k]$。在计算机上实现时,使用了高速计算DFT的FFT(快速傅里叶变换)算法。

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

$x[n]$: 时间域离散信号(n=0,1,...,N-1)
$X[k]$: 频率域复数频谱(k=0,1,...,N-1)
$N$: 采样点数(本工具中为512)
$e^{-i 2\pi k n / N}$: 复指数信号(由欧拉公式 $\cos - i\sin$ 组成)

窗函数 $w[n]$ 与有限长截取信号 $x[n]$ 相乘,以缓和信号两端的不连续性,从而抑制频谱泄漏。

$$x_{windowed}[n] = x[n] \cdot w[n]$$

$w[n]$: 窗函数(例如Hann窗 $0.5 - 0.5\cos(2\pi n / (N-1))$)
$x_{windowed}[n]$: 应用窗函数后的信号
窗函数的应用相当于在频域中对原信号频谱与窗的频谱进行"卷积",这导致频率分辨率的下降,这是一个不可避免的权衡。

常见问题

当信号类型为"矩形波"或"锯齿波"等包含多个频率成分的信号时,基频滑块改变的是整个波形的周期。如果想观察单一正弦波,请将信号类型切换为"正弦波"。
窗函数会平滑地将信号两端降至接近零,因此整个信号的总能量减少。这导致幅度谱的峰值也随之降低。这是为了抑制"频谱泄漏"而必须付出的代价。
位相谱显示每个频率成分的时间偏移。单一正弦波会呈现线性变化,复合波则会出现不连续跳跃(±π)。建议先从正弦波理解位相的含义,再逐步学习复杂信号。
本工具为保证实时显示的性能,将采样点数固定为512。一般来说,采样点数越多,频率分辨率越高,但计算负担也越重。如需更高精度的分析,请使用专门的信号处理软件。

实际应用

音响与音频工程:分析乐器或人声的频率特性(倍音结构),测量扬声器和放大器的失真(THD),识别噪声成分(SNR)。FFT在音频领域的日常应用中不可或缺。

振动与故障诊断:对旋转机械(电动机、轴承、汽轮机)的振动信号进行FFT分析,检测特定转速对应的异常峰值,实现故障的早期预警。广泛应用于工厂预防性维护。

通信工程:OFDM等数字通信系统中,FFT/IFFT(逆FFT)是调制和解调的核心技术。同时也用于接收信号中特定频段噪声和干扰的分析。

医学图像处理:MRI(磁共振成像)中,获得的信号(k空间数据)需要通过二维FFT转换成图像。心电图(ECG)和脑电图(EEG)的频谱分析(如α波提取)也依赖FFT。

常见误区与注意事项

在开始使用FFT时,有几个容易陷入的陷阱。第一个是"采样频率与显示频率范围的关系"。例如采样频率为44.1kHz时,FFT理论上能看到的最高频率是其一半,即22.05kHz(奈奎斯特频率)。超过这个频率的成分会发生"折叠"(混叠)现象,被误读为低频,完全破坏分析结果。实际工作中必须在测量前用反混叠滤波器去除高频成分。

第二个是"频谱纵轴(幅度)的值不是绝对的"。本工具显示的"幅度谱"是复频谱 $X[k]$ 的绝对值 $|X[k]|$。这个值包含了窗函数的影响和FFT点数N作为归一化系数。例如即便是幅度为1的正弦波,显示的频谱峰值也不会简单地等于1。要获得真实的幅度值,需要考虑所用窗函数的补偿系数(如Hann窗需乘以约2倍)。

第三个是"分辨率与测量时间的权衡"。频率分辨率 $\Delta f$ 由采样频率 $f_s$ 除以FFT点数 $N$ 决定($\Delta f = f_s / N$)。要观察更细微的频率差异(降低$\Delta f$),需要增加$N$,这意味着需要更长的数据时间。比如测量转速变化的机械振动时,过长的数据会导致频率"模糊化"。理解这个矛盾关系是现场有效数据采集的关键。

使用指南

  1. 在ampValNum(幅度)中输入0~100的值,在freqValNum(频率)中设定1~1000Hz的信号频率
  2. 在fsValNum(采样频率)中指定2000~48000Hz的范围,确保设置为信号最高频率的2倍以上以防止混叠
  3. 调整noiseValNum(噪声水平)在0~50范围内,模拟加入高斯白噪声来复现实测数据的条件
  4. 执行FFT计算按钮后,时间域波形和频率谱、位相谱将实时更新

具体计算示例

以机械设备振动诊断为例,分析检测到的复合信号。假设包含基频50Hz(工频)、3次谐波150Hz、5次谐波250Hz三个成分,采样频率fs=2000Hz,采集0.1秒数据,则FFT在0~1000Hz范围内的频率分辨率为2Hz。从幅度谱可识别基波60V、3倍波15V、5倍波8V,计算得总谐波失真率THD=25.7%。加入噪声水平10时,信噪比下降,可直观判断滤波的必要性。

实际工作注意事项

  1. 采样频率低于目标频率2倍时会发生混叠,如150Hz信号误认为是1850Hz
  2. 机械轴承故障诊断中,BPFO(球与外圈通过频率)和BPFI(球与内圈通过频率)等特征频率通常在3~10kHz,建议fs≥20kHz
  3. 加速度传感器信号积分得到速度时,需应用直流除去(高通滤波)修正位相谱失真