我在理解FFT时遇到了一些问题。频谱中的频率分辨率是按

$ \ frac {\ textrm {采样率}} {\ textrm {FFT点数}}}还是$ \ frac {\ textrm {采样率}}计算得出的} {\ textrm {0.5 * FFT点数}} $?

问这个是因为频谱对于实值输入是对称的。因此,假设我有$ f_s = 1000 $ Hz和$ N $ = 1024,其中$ N $是FFT点的数量。现在,频率分辨率是$ \ frac {1000 \ textrm {Hz}} {1024} = 0.9766 $ Hz还是$ \ frac {1000 \ textrm {Hz}} {0.5 * 1024} = 1.9531 $ Hz?

#1 楼

假设您有一个信号$ x [n] $,其中$ n \ in为{0,1,... N-1} $。相同大小的DFT定义为:

$$
X [k] = \ sum_ {n = 0} ^ {N-1} x [n] e ^ {-j \ frac {\ Large {2 \ \ pink}} {N}}
$$$

频率分辨率将是每个DFT bin代表多少Hz。如您所注意到的,这是由$ \ frac {f_s} {N} $给出的。

如果另一方面,您将信号零填充,则$ N_ {zp} $大于$ N $,则可以用$ \ frac {f_s} {N_ {zp}} $$给出一个更合适的频率粒度术语,因为频谱是对称的用于实值输入。


无关紧要。频率分辨率/粒度由以上给出。
,说我有fs = 1000 Hz且N = 1024,其中N是FFT点的数量。现在,频率分辨率是1000 Hz1024 = 0.9766 Hz还是1000
Hz0.5 * 1024 = 1.9531 Hz?


如果采样频率$ f_s = 1000 $ Hz,并且您正在执行$ N = 1024 $(相同大小)的FFT,则您的频率分辨率为$ \ frac {1000} {1024} $,等于0.9766 Hz / bin。如果$ N_ {zp} = 1024 $(零填充后的FFT长度),则您的频率粒度为0.9766 Hz / bin。

评论


$ \ begingroup $
因此,换句话说:我可以通过利用实数FFT的对称性,将N的信号零个填充另一个N个零,并免费获得“两倍好”的频率分辨率?
$ \ endgroup $
– N4ppeL
20 Mar 6 '20 at 10:16

#2 楼

术语“分辨率”具有多种含义。在光学中,只有在您看到两条线之间有缝隙时,两条线才会被解析。在图形中,分辨率可能与每英寸的绘图点(或其他线性度量)有关。

为了看到例如FFT结果中两个频谱峰值之间的3 dB下降,它们将具有相隔超过1个FFT结果。需要大约2个仓位,或者更多一些取决于所使用的窗口函数,以清楚地分离2个相邻的等幅频率峰值,它们之间有明显的间隙。例如,通过这种方法,分辨率约为2 Hz。通过适当的插值(多项式,或者更好的是Sinc),通常可以得到比1 FFT结果仓分隔更好的分辨率。在您的示例中,可能低于0.5 Hz,但只有适当的高S / N且与任何其他峰值相分离。