2010-02-11 4 views

ответ

4

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

0

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

2

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

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

+0

Благодарим за помощь. – airuslee

+0

Привет! Можете ли вы пояснить, что вы подразумеваете под этим: «тогда это можно было бы тривиально квантовать до ближайшего музыкального полушага, например,« E flat ». Разве изменение частоты-> тангажа не будет больше, если результирующая пиковая частота ближе всего к базовой частоте основного тона? – user488792

+0

Я думаю, что точность FFT не будет достаточной для удобной настройки. Pitch detection * возможно *, но даже для этого потребуется довольно частота дискретизации или длина буфера (с указанным недостатком). Однако анализ секретности (да, это правописание) может помочь. Вы в основном измеряете «периодичность» между пиками БПФ. См. Ответ Paur R. – Gauthier

0

DansTuner - это мой проект с открытым исходным кодом для решения этой проблемы. Я на самом деле trumpet player. Он имеет код обнаружения тона, снятый с Audacity.

+0

Ваш репозиторий кода не работает. Не могли бы вы отправить сообщение в GitHub? –

+0

@SMeaden Я установил ссылку на странице проекта в исходный код, который находится в репозитории Subversion: https://sourceforge.net/p/danstuner/code/HEAD/tree/.Возможно, этого достаточно. – dfrankow