Обнаружение высоты звука с использованием БПФ для трубы - PullRequest
3 голосов
/ 11 февраля 2010

Как получить частоту, используя БПФ? Какие правильные процедуры и коды?

Ответы [ 5 ]

4 голосов
/ 11 февраля 2010

Обнаружение основного тона обычно включает измерение интервала между гармониками в спектре мощности. Спектр мощности получается из БПФ путем взятия величины первых N / 2 бинов (sqrt (re ^ 2 + im ^ 2)). Однако существуют более сложные методы обнаружения основного тона, такие как кепстральный анализ , где мы берем БПФ для логарифма спектра мощности, чтобы определить периодичность в спектральных пиках.

2 голосов
/ 18 февраля 2010

Постоянная нота музыкального инструмента - это периодический сигнал, и наш друг Фурье (второе «F» в «FFT») говорит нам, что любой периодический сигнал может быть построен путем добавления набора синусоидальных волн (обычно с различными амплитуды, частоты и фазы). фундаментальный является самой низкой частотной составляющей и соответствует высоте тона; остальные компоненты обертоны и кратны основной частоте. Относительная смесь основных и обертонов определяет тембр , или характер инструмента. Кларнет и труба, играющие в унисон, звучат «в гармонии», потому что они имеют одну и ту же основную частоту, однако их можно идентифицировать индивидуально из-за их различного тембра (смесь обертонов).

Для вашей проблемы вы можете сэмплировать трубу по временному окну, рассчитать БПФ (которое разбивает последовательность семплов на составляющие его цифровые частоты), а затем утверждать, что высотой звука является частота бина с наибольшей величиной. , Если вы хотите, это может быть тривиально квантовано до ближайшего музыкального полшага, например, E flat. (Поищите БПФ в Википедии, если вы не понимаете взаимосвязи между частотой дискретизации и результирующими частотными бинами, или если вы не понимаете вреда слишком низкой частоты дискретизации.) Это, вероятно, удовлетворит ваши потребности, потому что основной компонент обычно имеет большую энергию, чем любой другой компонент. Чем длиннее окно, тем выше точность основного тона, потому что центры бинов станут более близко расположенными по частоте. Однако, если окно настолько длинное, что труба заметно меняет свою высоту во время действия окна, то эффективность метода значительно снизится.

0 голосов
/ 03 июня 2011

я добавил этот org.apache.commons.math.transform.FastFourierTransforme пакет к проекту, и он отлично работает

0 голосов
/ 11 июня 2010

DansTuner - мой проект с открытым исходным кодом для решения этой проблемы. Я на самом деле трубач . У него есть код обнаружения высоты тона, снятый с Audacity .

0 голосов
/ 11 февраля 2010

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

...