[audio] Как вы анализируете основную частоту образца PCM или WAV?



Answers

Существуют и другие алгоритмы, основанные на времени, а не основанные на частоте. Автокорреляция - относительно простой алгоритм определения высоты тона. Ссылка: http://cnx.org/content/m11714/latest/

Я написал c # реализаций автокорреляции и других алгоритмов, которые можно прочитать. Проверьте http://code.google.com/p/yaalp/ .

http://code.google.com/p/yaalp/source/browse/#svn/trunk/csaudio/WaveAudio/WaveAudio Выводит список файлов, а PitchDetection.cs - тот, который вы хотите.

(Проект GPL, так что понимайте термины, если вы используете код).

Question

У меня есть образец, хранящийся в буфере от DirectX. Это образец заметки, которую играют и захватывают из инструмента. Как я могу анализировать частоту выборки (например, гитарный тюнер)? Я считаю, что FFT участвуют, но у меня нет указаний на HOWTO.




Гитарные тюнеры не используют FFT или DFT. Обычно они просто считают нулевые переходы. Вы не можете получить основную частоту, потому что у некоторых осциллограмм больше пересечений нуля, чем у других, но вы обычно можете получить кратность основной частоты. Этого достаточно, чтобы получить заметку, хотя вы можете отключить одну или несколько октав.

Фильтр нижних частот перед подсчетом пересечений нуля обычно может избавиться от избыточных пересечений нуля. Для настройки фильтра нижних частот требуется некоторое знание диапазона частоты, который вы хотите обнаружить, хотя




Извлечение фундаментальных частот в звуковом сигнале PCM является трудной задачей, и об этом будет много говорить ...

Во всяком случае, обычно метод, основанный на времени, не подходит для полифонических сигналов, потому что сложная волна, задаваемая суммой различных гармонических составляющих из-за множества основных частот, имеет скорость пересечения нуля, которая зависит только от младшей частотной составляющей ... Также в частотная область БПФ не является наиболее подходящим методом, так как частотный интервал между нотами следует по экспоненциальному масштабу, а не по линейному. Это означает, что разрешение постоянной частоты, используемое в методе БПФ, может быть недостаточным для разрешения заметок более низкой частоты, если размер окна анализа во временной области недостаточно велик.

Более подходящим методом будет преобразование с постоянным Q, которое является DFT, применяемым после процесса фильтрации нижних частот и прореживания на 2 (т. Е. На половину каждого этапа частота дискретизации) сигнала, чтобы получать разные поддиапазоны с разной частотой разрешающая способность. Таким образом оптимизируется расчет DFT. Проблема в том, что также временное разрешение является переменной и увеличивается для нижних поддиапазонов ...

Наконец, если мы пытаемся оценить основную частоту одной ноты, методы FFT / DFT в порядке. Вещи меняются для полифонического контекста, в котором частичные части разных звуков перекрываются и суммируют / отменяют их амплитуду в зависимости от их разности фаз, и поэтому один спектральный пик может принадлежать различным гармоническим содержимым (принадлежащим разным нотам). Корреляция в этом случае не дает хороших результатов ...




Links