plot - 如何确定 FFT 结果索引 Freq 并绘制幅度/频率图

标签 plot fft frequency amplitude

我有一个假设的问题来理解这个概念..

假设我捕获了一个采样率为 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/

相关文章:

image-processing - 理解

r - 如何列出R中所有唯一的数据点对的列表?

python - 基于线的热图或二维线直方图

3d - 在 gnuplot 中在 pm3d 表面绘制点

algorithm - 信号关系和转换 : Transforming one Signal into another?

Python - 我的频率函数效率低下

javascript - 字符频率 - 按频率排序后按字母顺序对项目进行排序

javascript - 具有动态轴缩放的固定中心

r - 如何在 R 中绘制具有 3 个因子的响应变量?

C++ - 使用 AMD 源库的链接错误