Я пытаюсь исследовать и выяснить, как лучше всего решить эту проблему. Он объединяет обработку музыки, обработку изображений и обработку сигналов, и поэтому существует множество способов взглянуть на это. Я хотел узнать, как лучше всего к нему подойти, поскольку то, что может показаться сложным в чисто области sig-proc, может быть простым (и уже решенным) людьми, которые занимаются обработкой изображений или музыки. Во всяком случае, проблема заключается в следующем:
Если вы простите мою ручную зарисовку проблемы, мы увидим следующее:
Из приведенного выше рисунка у меня есть 3 различных типа сигналов. Первый - это импульс, который как бы «повышается» по частоте от до , а затем повторяется. Он имеет определенную длительность импульса и определенное время повторения импульса.f 4
Второй существует только в , но имеет более короткую длительность импульса и более высокую частоту повторения импульсов.
Наконец, третий - просто тон на .
Проблема в том, каким образом я подхожу к этой проблеме, так что я могу написать классификатор, который может различать сигнал-1, сигнал-2 и сигнал-3. То есть, если вы подадите ему один из сигналов, он сможет сказать вам, что этот сигнал такой-то. Какой лучший классификатор даст мне диагональную матрицу путаницы?
Некоторый дополнительный контекст и то, о чем я думал до сих пор:
Как я уже сказал, это охватывает несколько полей. Я хотел узнать, какие методологии уже могут существовать, прежде чем сесть и начать с этим воевать. Я не хочу случайно изобретать велосипед. Вот некоторые мысли, которые я видел с разных точек зрения.
Точка обработки сигнала: Одна вещь, на которую я обратил внимание , - это проведение кепстрального анализа , а затем, возможно, использование полосы пропускания Габора кепстра в выделении сигнала-3 от других 2, а затем измерение самого высокого пика кепстра в распознавании сигнала. 1 из сигнала-2. Это мое текущее рабочее решение для обработки сигналов.
Точка зрения на обработку изображений: здесь я думаю, что поскольку я МОГУ на самом деле создавать изображения в отношении спектрограмм, возможно, я смогу использовать что-то из этой области? Я не очень хорошо знаком с этой частью, но как насчет того, чтобы выполнить «обнаружение линий» с использованием преобразования Хафа , а затем каким-то образом «подсчитать» строки (что если они не являются строками и каплями?) И пойти дальше? Конечно, в любой момент времени, когда я беру спектрограмму, все импульсы, которые вы видите, могут сдвигаться вдоль оси времени, так будет ли это иметь значение? Точно сказать не могу...
Точка зрения обработки музыки: Подмножество обработки сигналов, чтобы быть уверенным, но мне приходит в голову, что сигнал-1 имеет определенное, возможно, повторяющееся (музыкальное?) Качество, которое люди в музыкальном процессе все время видят и уже решили в может быть, дискриминационные инструменты? Не уверен, но мысль пришла мне в голову. Возможно, эта точка зрения - лучший способ взглянуть на это, взяв кусок временной области и высмеивая эти ступени? Опять же, это не моя область, но я сильно подозреваю, что это было то, что было замечено раньше ... можем ли мы рассматривать все 3 сигнала как различные типы музыкальных инструментов?
Я также должен добавить, что у меня есть приличный объем обучающих данных, так что, возможно, использование некоторых из этих методов может просто позволить мне извлечь некоторые особенности, с которыми я затем смогу использовать K-Nearest Neighbor , но это всего лишь мысль.
Во всяком случае, именно здесь я стою сейчас, любая помощь приветствуется.
Благодарность!
РЕДАКТИРОВАТЬ НА ОСНОВЕ КОММЕНТАРИЙ:
Да, , , , все известны заранее. (Некоторое отклонение, но очень небольшое. Например, допустим, мы знаем, что = 400 кГц, но оно может прийти на частоте 401,32 кГц. Однако расстояние до велико, поэтому для сравнения может составлять 500 кГц.) Сигнал-1 ВСЕГДА наступит на эти 4 известные частоты. Сигнал-2 ВСЕГДА будет иметь 1 частоту.f 3 f 4 f 1 f 2 f 2
Частота повторения импульсов и длительности импульсов всех трех классов сигналов также известны заранее. (Опять некоторая разница, но очень маленькая). Некоторые предостережения, хотя, частота повторения импульсов и длительности импульсов сигналов 1 и 2 всегда известны, но они являются диапазоном. К счастью, эти диапазоны не перекрываются вообще.
Вход представляет собой непрерывный временной ряд, поступающий в реальном времени, но мы можем предположить, что сигналы 1, 2 и 3 являются взаимоисключающими, поскольку в любой момент времени существует только один из них. У нас также есть большая гибкость в отношении того, сколько времени вы тратите на обработку в любой момент времени.
Данные могут быть шумными, да, и могут быть ложные тона и т. Д. В диапазонах, не известных нам , , , . Это вполне возможно. Тем не менее, мы можем предположить, что SNR среднего значения, чтобы «начать» проблему.f 2 f 3 f 4
Ответы:
Шаг 1
Шаг 2
Для каждого STFT-кадра вычислите доминирующую основную частоту, используя что-то вроде YIN, вместе с индикатором «достоверности основного тона», таким как глубина «падения» DMF, вычисляемого с помощью YIN.
Шаг 3
Извлеките следующие функции:
Вычислите эти 3 функции на ваших данных обучения и обучите наивный байесовский классификатор (просто набор гауссовых распределений). В зависимости от того, насколько хороши ваши данные, вы можете использовать классификаторы и использовать определенные вручную пороговые значения для функций, хотя я не рекомендую этого.
Шаг 4
Если ваши данные и классификатор хороши, вы увидите что-то вроде этого:
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3
Это довольно хорошо определяет время начала и окончания, а также тип каждого сигнала.
Если ваши данные зашумлены, должны быть ложные неправильно классифицированные кадры:
1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2, 3, 2, 2, 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, 3, 2, 3, 3, 3
Если вы видите много дерьма, как во втором случае, используйте фильтр режима для данных по окрестностям 3 или 5 обнаружений; или используйте HMM.
Забрать домой сообщение
На чем вы хотите основывать свое обнаружение, это не спектральная характеристика, а совокупная временная статистика спектральных характеристик по окнам, которые имеют тот же масштаб, что и длительности вашего сигнала. Эта проблема действительно требует обработки в двух временных масштабах: кадр STFT, для которого вы вычисляете очень локальные свойства сигнала (амплитуда, доминирующий шаг, интенсивность основного тона) и большие окна, в которых вы смотрите на временную изменчивость этих свойств сигнала.
источник
Альтернативным подходом могут быть четыре гетеродинных детектора: умножить входной сигнал с помощью локальных генераторов 4 частот и отфильтровать получаемые выходные сигналы нижних частот. Каждый вывод представляет вертикальную линию на вашей картинке. Вы получаете выход на каждой из 4 частот как функцию времени. С помощью фильтра нижних частот вы можете указать, какое отклонение частоты вы хотите учесть, а также то, как быстро вы хотите, чтобы выходы менялись, то есть насколько резкими были края.
Это будет хорошо работать, даже если сигнал довольно шумный.
источник