【发布时间】:2011-05-28 21:59:22
【问题描述】:
我只有音高检测。输入(麦克风)数据传递给 fft 例程,然后我正在寻找一个具有最大值的音高这意味着:
Max(pow(data[i].getRe(), 2) + pow(data[i].getIm(), 2)) for 0<= i < SAmplesSize
我需要它来检测吉他弦的主频率。它适用于频率 440 赫兹(也许更高,我没有检查)到 250 赫兹。低于这个值,检测到的频率是它应该的两倍,即。对于 195 赫兹,检测到的频率约为 380 赫兹。看起来它检测到低于 250 赫兹的高次谐波。对于纯 195 赫兹的音调,它可以完美地检测到,但对于 Quitar 弦则有问题。
有什么建议会导致这种情况吗?还是应该使用更复杂的音高检测?
附言。采样率:8000hz,输入数据大小:1024
【问题讨论】:
-
你能贴出吉他在 195hz 的 FFT 吗?
-
对不起图像质量,频谱:频率 187 Hz 的频谱:img688.imageshack.us/i/195qq.jpg 频率 330 Hz 的频谱:img98.imageshack.us/i/330l.jpg
标签: fft frequency-analysis pitch-tracking