在信号分析领域,我们经常面对这样的问题:
信号中有哪些频率成分?这些频率在什么时候出现?是否发生了突变?
围绕这个问题,形成了三种非常经典、也是工程中最常用的分析工具:
- 傅里叶变换(Fourier Transform, FT)
- 短时傅里叶变换(Short-Time Fourier Transform, STFT)
- 小波变换(Wavelet Transform, WT)
一、傅里叶变换(FT)
1. 核心思想
傅里叶变换回答的问题是:
一个信号,可以分解成哪些频率的正弦波?
数学形式为:
X(f)=∫−∞∞x(t),e−j2πft,dt X(f) = \int_{-\infty}^{\infty} x(t), e^{-j2\pi f t}, dtX(f)=∫−∞∞x(t),e−j2πft,dt
2. 使用的基函数
- 无限长的正弦 / 余弦波
- 或复指数形式:ej2πft e^{j2\pi f t}ej2πft
👉 特点: - 在整个时间轴上全局存在
- 不具备时间局部性
3. 能看到什么?
- 频谱(Frequency Spectrum)
- 每个频率的“总能量”
但你永远不知道这些频率是在什么时候出现的。
4. Python Demo:频谱图
importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.fftimportfft,fftfreq fs=1000t=np.arange(0,2,1/fs)signal=np.sin(2*np.pi*5*t)+np.sin(2*np.pi*50*t)*(t>1)N=len(signal)yf=fft(signal)xf=fftfreq(N,1/fs)plt.figure(figsize=(10,4))plt.plot(xf[:N//2],np.abs(yf[:N//2]))plt.title("傅里叶频谱")plt.xlabel("频率 (Hz)")plt.ylabel("幅值")plt.grid()plt.show()5. 优缺点
优点
- 数学完备、计算高效
- 适合平稳信号
缺点
- 完全丢失时间信息
- 对突变、瞬态信号无能为力
二、短时傅里叶变换(STFT)
1. 为什么需要 STFT?
傅里叶的问题在于:
时间信息被整体“积分”掉了
解决办法很直观:
把信号分成一小段一小段,每一段分别做傅里叶变换。
2. 数学形式
STFT(t,f)=∫x(τ),w(τ−t),e−j2πfτdτ STFT(t,f) = \int x(\tau), w(\tau - t), e^{-j2\pi f \tau} d\tauSTFT(t,f)=∫x(τ),w(τ−t),e−j2πfτdτ
其中:
- w(⋅)w(\cdot)w(⋅)是固定长度窗口函数
3. 使用的基函数
- 加窗正弦波w(t−τ)⋅ej2πft w(t-\tau) \cdot e^{j2\pi f t}w(t−τ)⋅ej2πft
👉 本质:
“有限时间长度的傅里叶基函数”
4. 能看到什么?
- 时频图(Spectrogram)
- 频率随时间变化
5. Python Demo:STFT 时频图
fromscipy.signalimportstft f,tt,Zxx=stft(signal,fs=fs,nperseg=128)plt.figure(figsize=(10,4))plt.pcolormesh(tt,f,np.abs(Zxx),shading='gouraud')plt.title("STFT 时频图")plt.xlabel("时间 (秒)")plt.ylabel("频率 (Hz)")plt.colorbar(label="幅值")plt.ylim(0,150)plt.show()6. 关键问题:固定分辨率
STFT 有一个不可避免的物理极限:
窗口一旦固定,时间分辨率和频率分辨率无法同时提高
- 窗口短 → 时间准,频率模糊
- 窗口长 → 频率准,时间模糊
7. 优缺点
优点
- 能看时间变化
- 工程实现简单
缺点
- 固定分辨率
- 对低频慢变 / 高频突变同时存在的信号表现一般
三、小波变换(Wavelet Transform)
1. 小波的根本思想
小波解决的问题是 STFT 的“致命缺陷”:
不同频率,应该用不同时间尺度来观察
2. 数学形式(连续小波)
W(a,b)=∫x(t),1∣a∣,ψ!(t−ba),dt W(a,b) = \int x(t), \frac{1}{\sqrt{|a|}}, \psi!\left(\frac{t-b}{a}\right), dtW(a,b)=∫x(t),∣a∣1,ψ!(at−b),dt
- aaa:尺度(scale≈频率)
- bbb:时间平移
- ψ(t)\psi(t)ψ(t):母小波
3. 使用的基函数
- 可伸缩、可平移的小波函数ψa,b(t)=1∣a∣ψ!(t−ba) \psi_{a,b}(t) = \frac{1}{\sqrt{|a|}} \psi!\left(\frac{t-b}{a}\right)ψa,b(t)=∣a∣1ψ!(at−b)
👉 特点: - 高频 → 短窗口(时间分辨率高)
- 低频 → 长窗口(频率分辨率高)
4. 常见小波函数
- Haar
- Daubechies(db4、db8)
- Symlet
- Coiflet
- Morlet(连续小波)
5. Python Demo:连续小波时频图
importpywt scales=np.arange(1,128)coeffs,freqs=pywt.cwt(signal,scales,'morl',sampling_period=1/fs)plt.figure(figsize=(10,4))plt.imshow(np.abs(coeffs),extent=[0,2,freqs[-1],freqs[0]],aspect='auto',cmap='jet')plt.title("小波时频图")plt.xlabel("时间 (秒)")plt.ylabel("频率 (Hz)")plt.colorbar(label="幅值")plt.show()6. 优缺点
优点
- 多分辨率分析
- 非平稳、突变信号表现极佳
- 边缘、瞬态不被抹平
缺点
- 小波基选择有经验性
- 理论和实现复杂度高于 STFT
四、三种方法的系统对比
4.1 本质差异不是“变换形式”,而是“分辨率分配策略”
| 方法 | 本质策略 |
|---|---|
| 傅里叶变换 | 把全部时间信息换成频率精度 |
| STFT | 在时间轴上等分窗口,每段单独做傅里叶 |
| 小波变换 | 频率越高,时间窗口越短;频率越低,时间窗口越长 |
这背后实际上对应三种“信息分配哲学”:
- FT:假设信号是“统计稳定的”
- STFT:假设信号“局部近似平稳”
- WT:承认信号本质是多尺度非平稳的
4.2 时间–频率不确定性原理的体现方式不同
所有时频分析方法都受限于:
Δt⋅Δf≥C \Delta t \cdot \Delta f \ge CΔt⋅Δf≥C
区别在于谁来承担这个代价:
| 方法 | 时间分辨率 | 频率分辨率 | 代价承担方式 |
|---|---|---|---|
| FT | 无 | 极高 | 时间信息完全丢失 |
| STFT | 固定 | 固定 | 所有频段一刀切 |
| 小波 | 自适应 | 自适应 | 低频给频率,高频给时间 |
👉关键结论:
小波不是“突破不确定性原理”,而是更聪明地分配分辨率预算。
4.3 对非平稳性的适应能力
| 信号特征 | FT | STFT | WT |
|---|---|---|---|
| 平稳正弦 | ★★★ | ★★★ | ★★ |
| 突变 | ★ | ★★ | ★★★★ |
| 调频 | ★ | ★★ | ★★★★ |
| 冲击 | × | ★ | ★★★★ |
| 多尺度叠加 | × | ★ | ★★★★ |
这也是为什么在振动分析、故障诊断、生物信号领域,小波逐渐成为“标配工具”。
五、典型工程应用场景
这一部分不再按“方法”划分,而是按工程问题类型划分,更贴近真实使用场景。
5.1 降噪问题
5.1.1 傅里叶滤波的适用条件
- 噪声频段与信号频段明显分离
- 噪声统计特性稳定(如白噪声)
问题:
- 突变、边缘会被“磨平”
- 非平稳噪声效果很差
5.1.2 小波阈值去噪
小波去噪利用两个事实:
- 信号在小波域是稀疏的
- 噪声在各尺度是分散的
典型流程:
信号 → 小波分解 → 高频系数阈值 → 重构工程优势:
- 保留突变
- 保留相位结构
- 去噪不引入明显延迟
📌 常见应用:
- ECG / EEG
- 传感器噪声
- 工业振动信号
5.2 振动与故障检测
这是 FT/STFT/WT分化最明显的场景。
5.2.1 傅里叶能做什么?
- 整体频谱能量分布
- 共振频率、主频
👉 适合:
- 稳态旋转机械
- 长时间统计分析
5.2.2 STFT 的价值
- 频率漂移
- 工况切换过程
👉 典型应用:
- 启停过程
- 转速变化过程
5.2.3 小波的“杀手级能力”
- 冲击
- 轴承剥落
- 齿轮断齿
- 裂纹早期征兆
因为这些信号:
- 短时
- 高频
- 能量低
恰好是 STFT 最不擅长、但小波最擅长的类型。
5.3 非平稳复杂信号
| 场景 | 推荐方法 |
|---|---|
| 单一调频 | STFT / Chirplet |
| 多调频叠加 | 小波 |
| 瞬态 + 背景振荡 | 小波 / HHT |
| 突发事件检测 | 小波 |
六、总结
6.1 快速选型口诀
频率固定看 FT
变化不快用 STFT
变化复杂上小波
6.2 实战推荐组合
组合 1:工业振动
STFT 定位异常时间段 → 小波精细分析 → 特征提取 + ML组合 2:信号预处理
小波去噪 → 傅里叶特征 → 模型训练组合 3:在线监测
STFT 实时监控 → 小波离线复核6.3 为什么工程上不会“只用一种方法”
原因很现实:
- FT:快、稳定、可解释
- STFT:折中、易部署
- 小波:强、但复杂
真正成熟的系统,几乎都是多方法协同。