【语音】笔记
1 傅里叶变换
单帧信号x1 -> 基信号1(频率f1) -> 映射到同频率正余弦函数 -> 得到复数向量a[1] + b[1]j -> 计算绝对值得到|X[1]| 基信号2(频率f2) -> 映射到同频率正余弦函数 -> 得到复数向量a[2] + b[2]j -> 计算绝对值得到|X[2]| ... 基信号i(频率fi) -> 映射到同频率正余弦函数 -> 得到复数向量a[i] + b[i]j -> 计算绝对值得到|X[i]| 单帧信号x2 -> 基信号(频率f1) -> 映射到同频率正余弦函数 基信号(频率f2) -> 映射到同频率正余弦函数 ... 基信号(频率fi) -> 映射到同频率正余弦函数 ...其中,复数的实部a[i]表示对于该基信号分量在余弦波上的投影强度,虚部b[i]对应于在正弦波上的投影强度。对复数计算绝对值得到该基信号的幅度|X[i]| = 根号下a[i]²+b[i]²。
这些|X[i]|结合起来形成幅度谱|X|,可以表示各个基信号分量占单帧信号的幅值强度。
1 离散傅里叶变换(DFT)
1.1 是什么
将离散的数字信号(比如录音采样后的数字序列)从“时间领域”转换到“频率领域”。
- 输入:一串随时间变化的数字(比如每秒采样44100次的音频数据)。
- 输出:一串代表不同频率强度的数字(比如低音有多少、中音有多少、高音有多少)。
1.2 怎么工作
用各种不同频率的“正弦波”去匹配你的信号。
- 它尝试用低频正弦波去拟合,看匹配程度;
- 再试中频、高频……
- 最后告诉你:“你的信号里,低频成分占30%,中频占50%,高频占20%。”
2 快速傅里叶变换(FFT)
2.1 是什么
计算结果与DFT一样,但效率高。
2.2 怎么工作
假设你要计算 8 个点的 DFT:
- DFT 做法:老老实实算 8×8 = 64 次运算。
- FFT 做法:
- 把 8 个点分成两组:偶数位置的点 和 奇数位置的点。
- 分别计算这两组 4 个点的 DFT。
- 再把结果巧妙合并。
- 继续递归拆分……直到变成最简单的 2 点 DFT。
这样,计算量从N²降到了N log₂N。
