频率仓索引可以是十进制数吗?

时间:2017-01-10 10:46:37

标签: matlab signal-processing fft

我正在使用公式

计算频率仓索引k
k = f_k * N / Fs + 1,

如果采样率为Fs,则FFT中的采样数为N,则具有Matlab索引k的bin的频率为f_k。但我得到k是十进制数,它需要是整数,因为我后来使用它像傅立叶变换序列的索引。我不知道该怎么办?

2 个答案:

答案 0 :(得分:2)

每个bin表示频率的范围(每个bin的宽度为Fs / N)。对应于您感兴趣的频率的bin是round(f_k * N / Fs)+ 1,如果你使用MATLAB的基于1的索引),即这是你的大部分信号能量出现的地方,尽管会有一些由于spectral leakage,相邻分档中的能量也是如此(你当然应该使用window function来最小化这个能量。)

进一步阅读:How do I obtain the frequencies of each value in an FFT?

答案 1 :(得分:0)

您需要做的就是使用round将k转换为整数。 您将不得不重新计算其他变量,以便调整为k的整数值。我不明白这怎么会打扰你太多。

无论如何,数字信号处理都基于很多近似值。

希望有所帮助