如何在有限的频率范围内进行 FFT?

信息处理 matlab fft
2022-01-26 21:01:49

使用fftMatlab中的函数进行傅里叶变换时,可以指定FFT点的个数,nfft,命令写成fft(x,nfft)在这种情况下,频率向量是多少?

傅里叶变换如何用相同nfft但在更窄的频率范围内计算?如何计算频率向量?

1个回答

如果您的采样频率为,并且您使用个样本计算 FFT,则 FFT 计算个频率的信号频谱,包括在内。在 Matlab 符号中,这将被写为:fsNNfs/2fs/2fs/N

freq_vector = (-N/2:N/2-1)./(f_s/N);

(请注意,您必须移动 FFT 操作返回的频谱以对应于该向量;在 Matlab 中,您将使用fftshift。)

我不知道任何可以让您限制频率范围的 FFT 算法。我建议使用Goertzel 算法来查找您感兴趣的特定频率的频谱。您也可以在执行 FFT 之前使用带通滤波器来消除不需要的频率。