2010-12-21 95 views
3

我簡單地檢測了音高。輸入(麥克風)的數據傳遞給FFT程序,然後我在尋找具有最大值的間距這意味着:用於吉他琴絃的FFT音高檢測

Max(pow(data[i].getRe(), 2) + pow(data[i].getIm(), 2)) for 0<= i < SAmplesSize 

我需要它檢測吉他弦的主要頻率。它適用於頻率440赫茲(也許更高,我沒有檢查)250赫茲downto。在此值以下,檢測到的頻率是它應該是的兩倍,即。對於195赫茲的檢測頻率約爲380赫茲。它看起來像檢測250赫茲以下的高次諧波。對於純粹的195赫茲音色,它可以完美地檢測到,但是對於吉他琴絃來說有些問題是錯誤的

任何建議可能導致什麼?或者我應該使用更復雜的基音檢測?

Ps。採樣率:8000hz,輸入數據大小:1024

+0

你可以在195hz發佈吉他的FFT嗎? – 2010-12-21 16:07:53

+0

對不起,圖像質量,頻譜: 頻譜頻率187赫茲: http://img688.imageshack.us/i/195qq.jpg/ 爲頻率330赫茲譜: HTTP://img98.imageshack。 us/i/330l.jpg – 2010-12-22 21:15:46

回答

1

我不知道吉他具體,但missing fundamentals似乎是相當普遍的聲學。在FFT之後的維基百科頁面上提到了二次處理步驟,可能其中之一會有幫助。

另外,看到這兩個SO問題,那裏有很多很好的信息:(1),(2)