#請益 android java FFT(快速傅立葉轉換)

目前自己在測試做出,收聲音然後能轉化成頻率(HZ)的程式, 小的想請問,目前Audiodata 都能正確讀到值 ,
megapx
這是我用執行緒讓他不斷錄音、讀取audiodata, 再不斷的做FFT(快速傅立葉)運算, 目前在實際上能抓到相近頻率(EX.1318Hz會顯示出1313Hz) 但有時會亂跳,有時會突然跳到2627Hz或6百多、4百多.... 我自己思考覺得問題在於我在對FFT完的陣列處理有問題, 應該是沒濾掉其他的的弦波而導致的, 因為我查網路上說,每個弦波都是由許多波型疊加而成, 而快速傅立葉轉換(FFT)就是專門在處理訊號轉頻率的, 因為本人沒學過FFT,是自己去找關於FFT的資料,
megapx
在圖2下面程式(找出最大幅度),那是我對於FFT完的陣列處理, 想請各位大大指點,小的是不是哪裡做錯了,因為困擾了很久,才決定上來發問, 部分程式參考:
我用的FFT library:
我用的complex library:
任何回應,都將感激不盡 如有任何違規,還請各為提醒
愛心
3
22
全部留言