![](/img/trans.png)
[英]Using the heapq function 'nlargest' to find the peaks of an FFT and their corresponding frequencies in python
[英]Strange FFT peaks when working with many tight frequencies
我正在使用這個python代碼的略微修改版本進行頻率分析: FFT錯誤值?
假設我在時域中有一組正弦波,頻率非常接近,同時共享相同的幅度。 這是它們在頻域中的樣子,在1024個樣本上使用FFT,我從中取出后半部分,給出512個分辨率的分辨率:
這是我在同一組波上應用FFT但這次有128個樣本(64個分檔):
我期待一個高原頻率響應,但看起來中心的波浪被取消了。 我看到的那些“角”是什么? 這是正常的嗎?
我相信你的結果是正確的。 峰值位於±f 1和±f 2 ),對應於第一個圖中顯示的兩個信號的相應頻率分量。
我假設您正在將DC組件轉移回中心? 你指的是“中心的波浪”?
您應該注意以下幾個其他潛在問題:
由於我不知道您的數據的詳細信息,我繼續創建了一個正弦曲線,然后將數據采樣到接近您的采樣率。 例如,下面是一個具有64個點的正弦曲線,信號頻率為10個周期(計算峰值):
那么FFT結果是:
它顯示與您相同的定量特征,但沒有您的數據,我很難匹配您的確切情況(間距和錐度)。
接下來,我應用了一個超高斯窗函數(如下所示)來模擬數據的有限范圍:
將窗口應用於輸入信號后,我們有:
由於數據的有限范圍,相應的FFT結果顯示了一些額外的功率重新分配:
雖然我無法滿足您的具體情況,但我相信您的結果會按預期顯示,並且您的數據的某些定性功能已經確定。 希望這可以幫助。
在頻域中緊密間隔的正弦波有時幾乎在時域中抵消。 由於您的第二個FFT比第一個FFT短8倍,因此您可能只需要這么短的取消區域。 嘗試使用較短時間窗口的不同時間位置來查看不同的(或正弦曲線的不同階段)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.