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

Can frequency bin index be decimal number?

我正在使用公式

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

其中采样率为Fs,FFT中的样本数为N,则Matlab索引为k的bin的频率为f_k。但是我知道 k 是十进制数,它必须是整数,因为我稍后将它用作傅立叶变换级数的索引。我不知道该怎么办?

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

延伸阅读:How do I obtain the frequencies of each value in an FFT?.

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

无论如何,数字信号处理都是基于大量的近似。

希望对您有所帮助