使用许多紧密频率时,奇怪的FFT达到峰值

时间:2013-12-26 15:17:39

标签: python fft frequency

我正在使用这个python代码的略微修改版本来进行频率分析: FFT wrong value?

让我们说我在时域中有一组正弦波,频率非常接近,同时共享相同的幅度。这就是它们在频域中的样子,在1024个样本上使用FFT,我从中取出后半部分,给出512个分辨率的分辨率:

Blue: rectangular window. Pink: Nuttall window

这是我在同一组波上应用FFT但这次有128个样本(64个分档):

Blue: rectangular window. Pink: Nuttall window

我预计会出现高原频率响应,但看起来中心的波浪正在被取消。我看到的那些“角”是什么?这是正常的吗?

2 个答案:

答案 0 :(得分:5)

我相信你的结果是正确的。峰值位于±f 1 和±f 2 ),对应于第一个图中显示的两个信号的相应频率分量。

我假设您正在将DC组件转移回中心?你指的是“中心的波浪”?

您应该注意以下几个其他潜在问题:

  • 混叠:通过检查,您的信号中似乎有足够的样本,但请记住,如果没有足够的采样点来捕获基础频率,则可以通过FFT创建人工(或混叠)频率。具体来说,如果您的频率为f,那么您需要的数据样本间距至少为Δx= 1 /(2 * f)或更小。
  • 窗口化:您的信号被加窗(具有有限的范围),因此由于边缘影响,每个空间频率的功率也会有一些加宽,振铃或重新分布。
  • 由于我不知道您的数据的详细信息,我继续创建了一个正弦曲线,然后将数据采样到接近您的采样率。例如,下面是一个具有64个点的正弦曲线,信号频率为10个周期(计算峰值):

    enter image description here

    FFT结果是:

    enter image description here

    显示与您相同的定量功能,但没有您的数据,我很难匹配您的确切情况(间距和锥度)。

    接下来我应用了一个超高斯窗口函数(如下所示)来模拟数据的有限范围:

    enter image description here

    将窗口应用于输入信号后,我们有:

    enter image description here

    由于数据的有限范围,相应的FFT结果显示了一些额外的功率重新分配:

    enter image description here

    虽然我无法满足您的具体情况,但我相信您的结果会按预期显示,并且您的数据的某些定性功能已经确定。希望这会有所帮助。

    答案 1 :(得分:1)

    频域中间隔紧密的正弦波有时会在时域中几乎抵消。由于您的第二个FFT比第一个FFT短8倍,因此您可能只需要这么短的取消区域。尝试使用较短时间窗口的不同时间位置来查看不同的(或正弦曲线的不同阶段)。