python numpy.fft.rfft:为什么在包括或不包括NFFT时,输出却大不相同

时间:2019-07-18 21:47:16

标签: python numpy signal-processing fft

我试图了解numpy.fft.rfft中NFFT的含义。但是我感到困惑的是,为什么不包括NFFT,输出却大不相同。请参见下面的示例。

numpy.fft.rfft([0, 1, 0, 0, 4.3, 3, 599], 8)
array([ 607.3         +0.j        ,   -5.71421356+600.41421356j,
   -594.7         -4.j        ,   -2.88578644-597.58578644j,
    599.3         +0.j        ])

numpy.fft.rfft([0, 1, 0, 0, 4.3, 3, 599])
array([ 607.3         +0.j        ,  369.55215218+472.32571033j,
   -133.53446083+578.34336489j, -539.66769135+261.30917157j])

1 个答案:

答案 0 :(得分:0)

FFT是Discrete Fourier Transform (DFT)的高效实现,它是频率的离散函数。它也与Discrete-Time Fourier Transform (DTFT)有关,enter image description here本身是频率的连续函数。更具体地说,DFT完全对应于在DFT离散频率下评估的DTFT。

换句话说,当使用index计算离散傅立叶变换时,实际上是在离散的频率点上对DTFT函数进行采样。您可以使用以下方法在同一张图上绘制不同长度的变换来看到这一点:

numpy.fft.rfft

Trusted Advisor Best Practice Checks