我有一点一个假设性的问题来理解这个概念..如何确定FFT结果指标频率并画出幅/频率图
比方说,我捕捉到一个单声道声音剪辑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应该像examaple1那样在相同的频率上重叠,或者像第二个例子那样展开。
或者我想做的事情是完全多余的?因为我想要完成的是找到每30-50ms时间帧的峰值放大器值用于比较其他声音文件。
如果任何人都可以为我清除此问题,我将非常感激。
最好的问候,保罗 Ostregich
原始信号/数据应用零填充以允许对指定基数进行转换。如果我理解你的问题,并且你正在使用一个可识别的库进行转换,你在做什么看起来没问题。 – MoonKnight 2012-07-19 10:33:22
@Killercam我的问题有三种可能性。我可以使用Example1或Example2绘制图表,或者我不能绘制图表。也许我正在理解你的答案错误,但基本上你的说法对选择问题“是” – Sal 2012-07-19 11:02:52
是的,我说你可以绘制整个值范围的图形,因为FFT将处理任何'零'您在垃圾箱中的值没有填充数据。但是,对于与您的数据集(256)一样小的数据集,您需要对边缘效应感到厌倦,并且可能需要_window_ /包装数据以避免FFT拾取虚假周期。 – MoonKnight 2012-07-19 11:18:31