嗯,
表示输入波的大小为 512 的复数原始数组,当使用 FFT 处理时,我们将用零替换虚部(根据预期用途),保留实部,然后将数组传递给采样率:8192 的 FFT赫兹。
现在我们有一个 512 个 FFT 实数值数组,每个值都是一个无理数,每个无理数都表示几个有用的值。
要获得基频,我们必须将采样率除以缓冲区大小:
8192/512 = 32;
32 是 FFT 值的分辨率,这意味着我们正在了解接近 32 的倍数的数字附近的高振幅频率。
如果我们有一波
频率:3 48 23 128
幅度:10 5 12 8 dB(参考 = 1)
在 FFT 之后我们得到:
频率:0 32 64 128
幅度:9 8 2 8
FFT是频域的意思是按照频率排列
另一边的时域是指我们听音乐的时间从零秒到N秒。
FFT只能在从频率0到频率N按Frequency排列时才能监听。
所以它按升序排列频率,因为它没有从音频中提取所有实际样本(接近无限),就像每纳秒或更短时间到 FFT 一样,幸运的是这不会发生 FFT 从音频,每(1/采样率)秒采样一次。这个样本被缓冲(在我们的例子中:512),每 512 个样本缓冲到 FFT 中,输出是 512 个 FFT 值。
由于 FFT 安排频率,它与时间样本混淆,现在根据频率安排样本。
在常规基础上显示的频率是基本频率,它是采样率除以缓冲区大小,在我们的例子中是 8192/512 = 32。
所以,频率功率每32个频率显示一次,最接近频率的功率根据功率频率与索引的接近程度显示。
使用更高的采样率可以实现高分辨率。
为了显示频率,我们打印对应于振幅的升序索引。
幅度 = 20log10(输出/参考)
每个索引旁边打印的幅度显示频率的功率并根据分辨率的精度变得更准确。
结论,FFT产生一个幅度索引,每个幅度表示其对应索引(频率)的功率。