一句话定义:小波变换(Wavelet Transform)是一种把信号拆解成一系列“小波”叠加的分析方法,它用大小可变的窗口,同时告诉你信号里“有哪些频率成分”和“这些成分在什么时刻出现”。
先看它要解决什么问题。傅里叶变换(Fourier Transform)能把信号拆成不同频率的正弦波,但它只看整体:一首曲子里有哪些音高它说得清清楚楚,却没法告诉你“小提琴是第 12 秒才进来的”。时间信息在变换中被抹平了。
于是有了短时傅里叶变换(STFT):开一个窗口,一帧一帧地看,每一帧内部再做傅里叶。问题是窗口一旦定死,时间和频率的分辨率就互相锁死了——窗口窄,高频的瞬间变化看得清,低频的缓慢趋势就看不清;窗口宽则反过来。想看瞬时爆音和想看整体基调,很难用同一把尺子。
小波的做法是让尺子自己伸缩。分析高频时用短窗口,时间上卡得很细;分析低频时用长窗口,频率上量得很准。所有尺度同时开工,每一层只负责自己那一档:高频层回答“哪里突变”,低频层回答“大趋势长什么样”。
打个比方,这就像手机上的地图。你不是只加载了一张图,而是世界地图、省级图、街道图同时存在,尺度不同、覆盖范围不同;哪一层的细节丢掉了,另一层立刻补上。小波对图像做的就是这种“多分辨率分析”(multiresolution analysis)。
具体实现上,小波是“一小段会衰减的波”——一次短促的振荡,不像正弦波那样永远振下去。一个母小波(mother wavelet)经过缩放(scale)和平移(translation),生成一整套基函数,信号就是这些基函数的加权叠加。
三者的区别可以这样对照:
| 维度 | 傅里叶变换 | 短时傅里叶变换 | 小波变换 |
|---|---|---|---|
| 窗口大小 | 无(全局) | 固定 | 随频率伸缩 |
| 时间分辨率 | 无 | 各频段相同 | 高频高、低频低 |
| 频率分辨率 | 全局最优 | 各频段相同 | 低频高、高频低 |
| 擅长 | 平稳信号 | 准平稳信号 | 非平稳信号、突变与边缘 |
对从业者来说,它的价值在于“突变”和“边缘”这两件事。图像压缩标准里有一支走的正是小波路线,医学影像、指纹图这类看重局部细节的场景也在用;音频和语音的去噪、压缩同样常见。到了时序数据上,传感器或交易流里的异常往往只持续几个点,全局频谱会被稀释掉,多尺度分解反而容易把这种局部尖峰拎出来。在深度学习里也能看到同源思路:池化、多尺度特征金字塔,本质上都在做“用不同粒度看同一份数据”,把小波系数当特征喂给模型也是常见做法。
什么时候该用它?如果“某个瞬间发生了什么”和“整体有哪些成分”都重要,小波是顺手的工具;如果只关心整体成分,傅里叶通常就够了。具体工具库、参数和实现细节,以官方文档为准。
