我正在使用这个python代码的略微修改版本来进行频率分析: FFT wrong value?
让我们说我在时域中有一组正弦波,频率非常接近,同时共享相同的幅度。这就是它们在频域中的样子,在1024个样本上使用FFT,我从中取出后半部分,给出512个分辨率的分辨率:
这是我在同一组波上应用FFT但这次有128个样本(64个分档):
我预计会出现高原频率响应,但看起来中心的波浪正在被取消。我看到的那些“角”是什么?这是正常的吗?
答案 0 :(得分:5)
我相信你的结果是正确的。峰值位于±f 1 和±f 2 ),对应于第一个图中显示的两个信号的相应频率分量。
我假设您正在将DC组件转移回中心?你指的是“中心的波浪”?
您应该注意以下几个其他潜在问题:
由于我不知道您的数据的详细信息,我继续创建了一个正弦曲线,然后将数据采样到接近您的采样率。例如,下面是一个具有64个点的正弦曲线,信号频率为10个周期(计算峰值):
FFT结果是:
显示与您相同的定量功能,但没有您的数据,我很难匹配您的确切情况(间距和锥度)。
接下来我应用了一个超高斯窗口函数(如下所示)来模拟数据的有限范围:
将窗口应用于输入信号后,我们有:
由于数据的有限范围,相应的FFT结果显示了一些额外的功率重新分配:
虽然我无法满足您的具体情况,但我相信您的结果会按预期显示,并且您的数据的某些定性功能已经确定。希望这会有所帮助。
答案 1 :(得分:1)
频域中间隔紧密的正弦波有时会在时域中几乎抵消。由于您的第二个FFT比第一个FFT短8倍,因此您可能只需要这么短的取消区域。尝试使用较短时间窗口的不同时间位置来查看不同的(或正弦曲线的不同阶段)。