三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

【语音】笔记

【语音】笔记

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 做法
    1. 把 8 个点分成两组:偶数位置的点 和 奇数位置的点。
    2. 分别计算这两组 4 个点的 DFT。
    3. 再把结果巧妙合并。
    4. 继续递归拆分……直到变成最简单的 2 点 DFT。

这样,计算量从降到了N log₂N

← 返回列表