2017-03-06 50 views
0

我能夠通過使用GetSpectrumData函數查找最高峯值箱,從Unity中的麥克風計算實時音頻輸入的基頻。 但它對較低頻率失敗。 我認爲如果演奏低頻音符,我會得到諧波的頻率。 如何使用諧波數據計算基頻?如何使用諧波數據計算麥克風輸入的基本頻率

+0

您可以使用適當的音高檢測算法,而不是試圖重新發明車輪,或者如果您只是想要「快速和骯髒」的東西,那麼您可以測量連續諧波之間的距離,因爲這通常是相同的作爲基本頻率。 –

+0

如果輸入是單聲道而不是非常嘈雜,你可以使用[自相關](http://dsp.stackexchange.com/questions/386/autocorrelation-in-audio-analysis)。 – Linuxios

+0

@Linuxios我已經嘗試過自相關,它工作正常,(https://pitchtracker.codeplex.com/)。但我也想要前7次諧波的幅度。這可能使用自相關。如果是的話,你能引導我走在正確的道路上。 –

回答

0

您可以使用Harmonic Product Spectrum算法進行泛音豐富的單音音調檢測和估計。

Cepstrums或Cepstral分析是另一種可能性。

+0

如何使用HPS算法? –

+0

這是一個單獨的問題。爲什麼不問它? (而不是評論)。 – hotpaw2

+0

http://stackoverflow.com/questions/42694778/how-can-i-use-harmonic-product-spectrum-algorithm-for-overtone-rich-monophonic-p –