如何在定义的频段中获得所有fft箱的数量?

时间:2016-12-20 10:43:28

标签: matlab audio fft bins

我使用matlab软件。对我的问题。 我有一个音频信号,我正在申请STFT。我看一段 信号(46 ms, specifially chosen)中出现y(audio signal)并在其上使用FFT。然后我进入下一段,直到我的音频信号结束。

我的WAV文件长10.8526秒。如果我有一个采样频率 44100Hz,这意味着我的y10.8526*fs = 478599.66 在工作区中显示为478 6000 x2 double

fft的长度为2048。我的信号在较低频段[0 300]mfb [301 5000]hfb [5001 22050(fs/2)]下有区别。

乐队只是一个例子而不是实际的matlab代码。 Basicall我想要的(或者我想要做的)是在定义的频段中获取我的箱子的值并对其进行算术平均。

我选择了46毫秒,因为我希望它只要fft长度,或者几乎和fft一样长。 (It is not exact).Afterwards,我想尝试绘制它,但现在这并不重要。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

在大小为n的向量中,时域中信号的傅里叶变换将返回另一个大小为n的相同信号但在频域中的向量。

频域将从0(直流偏移)到您的采样频率。但是你只能用一半。下半部分具有相同的值,但是镜像了。

您可以通过以下方式获取每个有用垃圾箱的中心频率:

f = Fs*(0:(n/2))/n;