尽管我在此站点上有许多有关音高检测概念的问题……他们都处理了我不熟悉的神奇 FFT 。我正在尝试构建需要实现音高检测的Android应用程序。我绝对不了解用于执行此操作的算法。
它不能 是 硬可以吗?毕竟,Android市场上大约有80亿个吉他调音器应用程序。
有人可以帮忙吗?
快速傅立叶变换将功能从时域更改为频域。因此,而不是f(t)在那里f是信号,你是从麦克风获取和t是信号的时间指数,你g(θ)那里g是的FFT f和θ是频率。一旦有了g(θ),您只需要找到θ振幅最大的频率,即“最大”频率即可。那将是您要拾取的声音的主要音调。
f(t)
f
t
g(θ)
g
θ
至于实际实现FFT的方法,如果您搜索“快速傅立叶变换示例代码”,则会得到很多示例。