Я работаю над приложением гитарного тюнера. Я понимаю, что БПФ является плохим выбором для такого рода приложений. Однако по мере приближения крайних сроков, и в моем первоначальном представлении спецификации указано использование этого алгоритма. К сожалению, я застрял в этом.Приложение гитарного тюнера FFT - некорректная частота
Благодаря ответам на предыдущие вопросы и использование этого блога: http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html
У меня есть приложение, которое принимает аудио, вычисляет частоту и обоих графиков и сравнивает результат с известной ноты колеблется в 5 октав.
Последняя проблема заключается в том, что вычисленная частота все еще изменяется от частоты чтения. Я использовал генератор частоты, предоставляемый онлайн, и обнаружил, что он получит частоту примечания выше или ниже этого.
например, C-считывание будет иметь резкость B или C в разных октавах. Расстояние от телефона от источника шума также влияет на показания.
Есть ли известный пример этого возникновения и исправления, или это из-за алгоритма FFT, и мое приложение не может работать правильно?
Мой код можно найти на предыдущей: Displaying a double (frequency) that is updated constantly while recording with Android
фильтр нижних частот был добавлен для удаления фонового шума окружающей среды, а также кольцевой буфер был добавлен, чтобы получить среднее значение нескольких частот данных.
Вы должны сделать некоторые отладки первой. Например, посмотрели ли вы на график вывода вашего БПФ? Является пиком, где вы ожидаете? –
График отображается правильно. в том, что частота, которую он вычисляет, соответствует точке на графике. Тем не менее, это не та самая частота, которую читают. –
Что вы подразумеваете под «частотой чтения»? Вы имеете в виду частоту источника звука? Если да, то каким образом они отличаются? –