我想创建一个使用PortAudio录制音频数据的程序(我完成了这部分),然后显示录制的音频的频率信息(现在,我想显示每个音频的平均频率)他们进来的一组样本。)
从我做过的一些研究中,我知道我需要进行FFT。所以我用谷歌搜索了一个库,用C语言,然后找到了FFTW。
然而,现在我有点失落。我应该怎么处理我记录的样本以从中提取一些频率信息?我应该使用什么样的FFT(我假设我需要一个真实的数据1D?)?
一旦我进行了FFT,如何从它给我的数据中获取频率信息?
编辑:我现在也发现了自相关算法。好点吗?简单?提前多多感谢,对不起,如果这样,我绝对没有经验。我希望它至少有点意义。
答案 0 :(得分:16)
要将音频样本转换为功率谱:
magnitude = sqrt(re^2 + im^2)
)magnitude_dB = 20*log10(magnitude)
)