Есть ли кроме FFT способы реализации Guitar Tuner?

Я хочу сделать точный гитарный тюнер, это обычно делают многие с помощью БПФ и получения пика. Но это низкий уровень применения по нескольким причинам:

  • Дискретная точность, дает недостаточное разрешение для настройки бас-гитары.
  • Большое время вычислений и сложность при попытке увеличить размер буфера (и / или частоту дискретизации). Вводит видимую задержку (лаг).
  • Большая часть частотного диапазона, где концентрируется вся точность БПФ, не используется. Все, что выше 1-2 кГц, не подходит для настройки музыкальных инструментов.

Должен быть более простой способ для сигналов, которые имеют одночастотную синусоидальную форму. Учитывая достаточно маленький буфер (скажем, 256 выборок с частотой дискретизации 96 кГц) - как вы можете измерить базовую (низкую) частоту?

Простыми словами: как найти частоту F, так что разница "синусоидального сигнала частотыF"и"фактически записанный сигнал"даст минимальную ошибку, чем для любой частоты, кроме F? (Таким образом, мы можем определенно заключить, что синусоида частоты F наилучшее приближение записанного звукового буфера).

PS. Все что угодно, но не используя БПФ!

1 ответ

  • полосовой фильтр вокруг ожидаемого фундаментального
  • оконное разделение на рамки анализа
  • выполнить обнаружение пересечения нуля с гистерезисом в каждом кадре для оценки частоты
  • используйте фильтр оценок частоты по кадрам, чтобы стабилизировать его и отклонить выбросы

Частота дискретизации может быть 8 кГц.

Другие вопросы по тегам