2014-02-21 85 views
0

我正在嘗試FFT並提取智能手機上的高頻功能。對智能手機上的44100HZ採樣數據執行完整的FFT後,結果太慢,但由於奈奎斯特定理,下采樣會殺死高頻信息。有沒有辦法在保持較高頻率的同時加快FFT?從FFT中僅提取高頻率

+1

原生ARM代碼中的FFT(使用Android上的NDK)應該能夠在大多數當前智能手​​機上輕鬆實現44.1kHz採樣率,僅使用一小部分CPU。 – hotpaw2

+1

您使用的是什麼分段大小?你使用重疊添加的過濾器實現?對於較短的高通濾波器,您也可以直接實現卷積。 – LutzL

+0

即使在純Java中,除非你的窗口很大,否則你應該能夠跟上。 –

回答

0

目前還不清楚您是否想要使用FFT信息,或者它只是一種實現某種濾波器的方法。

對於第一種情況,您可以對數據進行二次採樣,即運行高通濾波器,然後壓縮(下采樣)序列。是的,會出現混疊,但您仍然可以將FFT中的特定頻率映射回原始的較高頻率。

如果是過濾,在應用基於變換的過濾器獲得任何好處之前,過濾器應該是合理的。此外,如果你這樣做,請確保你閱讀了重疊疊加和重疊保存濾波,並且不要全部使用普通的「讓我們把FFT,multipliy與'理想'的響應,然後IFFT」。這通常不會給出預期的結果(除非您期望具有隨時間變化且與「理想」不同的傳遞函數)。