2017-03-06 95 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 –