Есть ли кроме FFT способы реализации Guitar Tuner?
Я хочу сделать точный гитарный тюнер, это обычно делают многие с помощью БПФ и получения пика. Но это низкий уровень применения по нескольким причинам:
- Дискретная точность, дает недостаточное разрешение для настройки бас-гитары.
- Большое время вычислений и сложность при попытке увеличить размер буфера (и / или частоту дискретизации). Вводит видимую задержку (лаг).
- Большая часть частотного диапазона, где концентрируется вся точность БПФ, не используется. Все, что выше 1-2 кГц, не подходит для настройки музыкальных инструментов.
Должен быть более простой способ для сигналов, которые имеют одночастотную синусоидальную форму. Учитывая достаточно маленький буфер (скажем, 256 выборок с частотой дискретизации 96 кГц) - как вы можете измерить базовую (низкую) частоту?
Простыми словами: как найти частоту F
, так что разница "синусоидального сигнала частотыF
"и"фактически записанный сигнал"даст минимальную ошибку, чем для любой частоты, кроме F
? (Таким образом, мы можем определенно заключить, что синусоида частоты F
наилучшее приближение записанного звукового буфера).
PS. Все что угодно, но не используя БПФ!
1 ответ
- полосовой фильтр вокруг ожидаемого фундаментального
- оконное разделение на рамки анализа
- выполнить обнаружение пересечения нуля с гистерезисом в каждом кадре для оценки частоты
- используйте фильтр оценок частоты по кадрам, чтобы стабилизировать его и отклонить выбросы
Частота дискретизации может быть 8 кГц.