Обнаружение [закрытой] основной частоты

18
задан finnw 11 May 2011 в 17:49
поделиться

7 ответов

Это точно, что я делаю здесь как в моем прошлом году проект :) кроме одной вещи, что мой проект об отслеживании подачи человеческого певческого голоса (и у меня нет робота для проигрывания мелодии)

самый быстрый способ, которым я могу думать, должен использовать библиотека BASS . Это содержит готовую к использованию функцию, которая может дать Вам данные FFT из регистрирующего устройства по умолчанию. Смотрите на "livespec" пример кода, который идет с БАСОМ.

Между прочим, необработанные данные FFT будут недостаточно для определения основной частоты. Вам нужен алгоритм такой как [1 117] Гармонический Спектр продукта для получения F0.

Другое соображение является источником аудиосигналов. Если Вы собираетесь сделать FFT и применить Гармонический Спектр продукта на него. Необходимо будет удостовериться, что вход имеет только один источник аудиосигналов. Если это будет содержать многочисленные источники такой как в современных песнях то будет ко многим частотам для рассмотрения.

Гармоническая Теория

Спектра продукта, Если входной сигнал является музыкальной нотой, то ее спектр должен состоять из серии пиков, соответствуя основной частоте с гармоническими составляющими в целочисленных кратных числах основной частоты. Следовательно, когда мы сжимаем спектр, неоднократно (субдискретизирующий), и сравниваем его с исходным спектром, мы видим, что самые сильные гармонические пики выстраиваются в линию. Первый пик в исходном спектре совпадает со вторым пиком в спектре, сжатом фактором два, который совпадает с третьим пиком в спектре, сжатом фактором три. Следовательно, когда различные спектры умножаются вместе, результат сформирует ясный пик в основной частоте.

Метод

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

HPS включает два шага: субдискретизация и умножение. Для субдискретизации мы сжали спектр дважды в каждом окне путем передискретизации: в первый раз мы сжимаем исходный спектр два и во второй раз, три. После того как это завершается, мы умножаем эти три спектра вместе и находим частоту, которая соответствует пику (максимальное значение). Эта конкретная частота представляет основную частоту того конкретного окна.

Ограничения метода HPS

Некоторые хорошие функции этого метода включают: это является в вычислительном отношении недорогим, довольно стойким к аддитивному и мультипликативному шуму и корректируемым к другому виду исходных данных. Например, мы могли изменить количество сжатых спектров для использования, и мы могли заменить спектральное умножение спектральным дополнением. Однако, так как человеческое восприятие подачи является в основном логарифмическим, это означает, что низкие передачи могут быть прослежены менее точно, чем высокие передачи.

Другая серьезная нехватка метода HPS состоит в том, что это, его разрешение только так же хорошо как длина FFT, раньше вычисляло спектр. Если мы выполняем короткий и быстрый FFT, мы ограничены в количестве дискретных частот, которые мы можем рассмотреть. Чтобы получить более высокое разрешение в нашем выводе (и поэтому видеть меньше зернистости в нашем выводе подачи), мы должны взять более длинный FFT, который требует большего количества времени.

от: http://cnx.org/content/m11714/latest/

14
ответ дан 30 November 2019 в 08:22
поделиться

Просто комментарий: фундаментальная гармоника может также отсутствовать в (гармоническом) звуке, это не изменяет воспринятую подачу. Как предельный случай, если Вы берете прямоугольную волну (говорят, примечание C#) и полностью подавляют основную гармонику, воспринятым примечанием является все еще C#, в той же октаве . В некотором смысле, наш мозг может компенсировать отсутствие некоторых гармоник, даже первое, когда это предполагает примечание. Следовательно, для обнаружения подачи с методами частотной области необходимо принять во внимание весь гармоники (локальные максимумы в величине преобразования Фурье) и извлечь своего рода "наибольший общий делитель" их частот. Обнаружение подачи не является тривиальной проблемой вообще...

DAFX имеет приблизительно 30 страниц, выделенных для подачи обнаружения с кодом Matlab и примерами.

5
ответ дан 30 November 2019 в 08:22
поделиться

Автокорреляция - http://en.wikipedia.org/wiki/Autocorrelation

пересечение Нуля - http://en.wikipedia.org/wiki/Zero_crossing (этот метод используется в дешевых тюнерах гитары)

2
ответ дан 30 November 2019 в 08:22
поделиться

Просто мысль - но необходимо ли обработать поток цифрового аудио, как введено?

В противном случае рассматривают использование символьного представления музыки (такой как MIDI). Передачи примечаний будут тогда указаны явно, и можно синтезировать звуки (и перемещения) соответствие подаче, ритму и многим другим музыкальным параметрам чрезвычайно легко.

, Если необходимо проанализировать поток цифрового аудио (mp3, wav, живой вход, и т.д.) принимают во внимание, что, в то время как обнаружение подачи простых монофонических звуков вполне совершенствуется, полифоническое обнаружение подачи является нерешенной проблемой. В этом случае можно найти мой ответ на этот вопрос полезный.

1
ответ дан 30 November 2019 в 08:22
поделиться

Вы пробовали статья Википедии об обнаружении подачи ? Это содержит несколько ссылок, которые могут быть интересны Вам.

, Кроме того, вот список приложений DSP и библиотек , где можно ввести по абсолютному адресу вокруг. Список только упоминает пакеты программного обеспечения Linux, но многие из них являются межплатформенными, и существует много исходного кода, на который можно посмотреть.

Просто к вашему сведению, обнаруживая подачу примечаний в монофонической записи в досягаемости самых опытных DSP людей. Обнаружение передач всех примечаний, включая хорды и материал, намного более трудно.

1
ответ дан 30 November 2019 в 08:22
поделиться

Вам в основном нужен анализатор спектра. Вы смогли к FFT на записи аналогового входа, но много зависит от разрешения записи.

0
ответ дан 30 November 2019 в 08:22
поделиться

что сразу прибывает по моему мнению:

  • отфильтровывают очень низкие частоты (барабаны, басовая партия),
  • отфильтровывают высокие частоты (гармоники)
  • , FFT,
  • ищут пики в выводе FFT для мелодии

, я не уверен, если это будет работать на очень полифонические звуки - возможно, гуглящий для "FFT, анализа, то мелодия и т.д." возвратит больше информации о возможных проблемах.

отношения

0
ответ дан 30 November 2019 в 08:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: