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