Простите, если я могу проявить невежество, но я хотел бы задать несколько вопросов, касающихся использования алгоритмов фильтра для обнаружения начала заметки.
Является ли «Функция обнаружения» такой же, как использование фильтров в аудиосигнале? Или вообще, в чем разница между функцией обнаружения, фильтрацией (предварительной обработкой сигнала) и выбором пиков?
Я постоянно слышал о фильтре нижних частот (или верхних частот), но я в замешательстве. Я читал, что он работает на устранение определенных частот, которые ниже (или выше) определенного порога. Тем не менее, я использую Time-Domain для расчета ноты (то есть, используя изменение амплитуды / энергии сигнала). Поэтому я не уверен, как применить низкочастотную фильтрацию к временной области. Любые другие хорошие фильтры для обнаружения начала заметки?
В чем разница между спектральной и фазовой энергией? (У меня есть идея, что спектральный относится к спектограмме или частотам, но я не знаю, что такое Фаза)
У меня проблемы с работой с динамическим порогом. Есть предложения по хорошему алгоритму? Например, у меня есть следующий сигнал:
Как показано на рисунке выше, есть заметки, которые я пропустил. Краткое описание моего алгоритма. Я рассчитываю и записываю изменения энергии / амплитуды, которые происходят в аудиосигнале. Затем я получаю максимальное «изменение энергии» и, основываясь на чувствительности, беру процент от него и устанавливаю его в качестве порога. Так что именно здесь возникает проблема обращения с различными степенями амплитуды / энергии. Если я устанавливаю слишком низкую чувствительность, у меня возникают «призрачные» включения, и если я устанавливаю слишком высокую чувствительность, я пропускаю некоторые начала. Любые предложения по улучшению алгоритма (или предложить новый алгоритм), который я использую?
Я уверен, что трудно иметь 100% точность, но мне нужно иметь лучший алгоритм для обнаружения начала заметки по сравнению с тем, что у меня есть сейчас. Я был бы признателен за любую помощь, которую я могу получить. Большое спасибо!