Вопросы о фильтрах для обнаружения начала заметки? - PullRequest
1 голос
/ 18 июня 2011

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

  1. Является ли «Функция обнаружения» такой же, как использование фильтров в аудиосигнале? Или вообще, в чем разница между функцией обнаружения, фильтрацией (предварительной обработкой сигнала) и выбором пиков?

  2. Я постоянно слышал о фильтре нижних частот (или верхних частот), но я в замешательстве. Я читал, что он работает на устранение определенных частот, которые ниже (или выше) определенного порога. Тем не менее, я использую Time-Domain для расчета ноты (то есть, используя изменение амплитуды / энергии сигнала). Поэтому я не уверен, как применить низкочастотную фильтрацию к временной области. Любые другие хорошие фильтры для обнаружения начала заметки?

  3. В чем разница между спектральной и фазовой энергией? (У меня есть идея, что спектральный относится к спектограмме или частотам, но я не знаю, что такое Фаза)

  4. У меня проблемы с работой с динамическим порогом. Есть предложения по хорошему алгоритму? Например, у меня есть следующий сигнал:

enter image description here

Как показано на рисунке выше, есть заметки, которые я пропустил. Краткое описание моего алгоритма. Я рассчитываю и записываю изменения энергии / амплитуды, которые происходят в аудиосигнале. Затем я получаю максимальное «изменение энергии» и, основываясь на чувствительности, беру процент от него и устанавливаю его в качестве порога. Так что именно здесь возникает проблема обращения с различными степенями амплитуды / энергии. Если я устанавливаю слишком низкую чувствительность, у меня возникают «призрачные» включения, и если я устанавливаю слишком высокую чувствительность, я пропускаю некоторые начала. Любые предложения по улучшению алгоритма (или предложить новый алгоритм), который я использую?

Я уверен, что трудно иметь 100% точность, но мне нужно иметь лучший алгоритм для обнаружения начала заметки по сравнению с тем, что у меня есть сейчас. Я был бы признателен за любую помощь, которую я могу получить. Большое спасибо!

1 Ответ

0 голосов
/ 23 августа 2011

Одним из способов является обнаружение внезапного увеличения огибающей амплитуды.Один из способов расчета огибающей амплитуды состоит в том, чтобы выпрямить входной сигнал (то есть принять абсолютное значение), а затем отфильтровать его по нижним частотам.Посмотрите примеры кода в http://www.musicdsp.org для примеров фильтров домена времени и подписчиков конвертов.

...