0
我正在編寫一款Android應用程序,用於測量一段時間內相機幀的亮度,並使用傅立葉分析計算心跳以找到波的頻率。問題是,我的頻譜分析是這樣的:亮度信號的傅里葉分析是否正確? (Android)
這是相當多的頻譜分析應該是什麼樣子(如正態分佈)的倒數。我可以準確地評估這個以找出最大量級的指數,或者這個頻譜是否顯示我的數據太嘈雜?
我正在編寫一款Android應用程序,用於測量一段時間內相機幀的亮度,並使用傅立葉分析計算心跳以找到波的頻率。問題是,我的頻譜分析是這樣的:亮度信號的傅里葉分析是否正確? (Android)
這是相當多的頻譜分析應該是什麼樣子(如正態分佈)的倒數。我可以準確地評估這個以找出最大量級的指數,或者這個頻譜是否顯示我的數據太嘈雜?
它看起來就像你有事情兩個問題在這裏:
1)FFT輸出通常將負頻率的值放在正頻率的右側,這似乎就是這種情況。因此,您需要將FFT的右半部分向左移動,並將freq=0
放在中間。
2)在評論中,你說你正在繪製幅度,但顯然不是這種情況(幅度應該大於0並且對稱)。相反,你可能只是繪製真正的一部分。取而代之的是大小,或Re*Re + Im*Im
,其中Re
和Im
分別是實部和虛部。 (取決於你的號碼的形式,如Math.sqrt(Math.pow(a.re, 2) + Math.pow(a.im, 2))
。)
你如何繪製FFT的輸出?大小?對數量級? –
FFT的輸出只是數值,x軸是每個峯值的指數。 – Piglet
我應該注意到我正在使用JTransforms Java庫在我的1D輸入上執行FFT。輸入在底部圖中顯示爲亮度值,輸出數組顯示在頂部圖中,其中x是樣本指數,y是數值。 – Piglet