如何确定FFT得到的指数Freq并绘制幅度/频率图

时间:2012-07-19 10:27:27

标签: 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箱是否应该像examaple1一样重叠在相同的频率上,或者像第二个例子一样展开。

还是我想做一些完全多余的事情?因为我想要完成的是找到每30-50ms时间帧的峰值放大器值用于比较其他声音文件..

如果有人能为我解决这个问题,我将非常感激。

2 个答案:

答案 0 :(得分:2)

您的FFT结果箱代表每个FFT中的同一组频率,如您的示例#1,但是对于不同的时间段。

每个FFT允许您在大约12 mS的时间范围内绘制幅度与频率的关系。

您还可以将FFT幅度相加到一起,以获得更长时间帧的Welch方法PSD(功率谱密度)。

答案 1 :(得分:1)

如果要查找每30-50ms时间帧的峰值放大器值,您只需在每个时间帧中绘制信号的放大器频谱。

另外,如果你为每帧采用256个样本的FFT,那么你应该得到129个而不是128个频率分量。第一个是直流分量,最后一个是奈奎斯特频率分量。