我有一个假设的问题来理解这个概念..
假设我捕获了一个采样率为 8000hz 的单声道语音剪辑,即数据为 4096 字节。 通过大小为 256 的 FFT 馈送前 512 个字节(16 位编码),将返回 128 个值,我将其转换为幅度。 所以我的输出频率是
FFT BIN #1
0: 0*8000/256
1: 1*8000/256
.
.
127: 127*8000/256
到目前为止还好吗?所以现在我还剩下 3584 字节的未处理数据。所以我对 512 字节的数据执行另一个 256 大小的 fft。并获得相同数量的结果.. 因此,为此我再次有以下频率:
FFT BIN #2:
Example1:
0: 0*8000/256
1: 1*8000/256
.
.
127: 127*8000/256
或
FFT BIN #2
Example2:
128: 129*8000/256
139: 130*8000/256
.
.
255: 255*8000/256
因为我想绘制这个幅度/频率图。但我不明白所有这些 fft bin 是否应该像 example1 一样在相同频率上重叠,或者像第二个示例一样展开。
或者我正在尝试做一些完全多余的事情?因为我想要完成的是找到每个 30-50ms 时间帧的峰值放大器值,用于比较其他声音文件..
如果有人能帮我解决这个问题,我将非常感激。
最佳答案
您的 FFT 结果箱代表每个 FFT 中的同一组频率,如示例 #1 所示,但时间片段不同。
每个 FFT 将允许您在大约 12 mS 的时间窗口内绘制幅度与频率的关系图。
您还可以对 FFT 幅度进行矢量求和,以获得较长时间范围内的 Welch 方法 PSD(功率谱密度)。
关于plot - 如何确定 FFT 结果索引 Freq 并绘制幅度/频率图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558853/