Разработка векторного элемента для различения различных звуковых сигналов


10

Рассмотрим 4 следующих сигнала формы волны:

signal1 = [4.1880   11.5270   55.8612  110.6730  146.2967  145.4113  104.1815   60.1679   14.3949  -53.7558  -72.6384  -88.0250  -98.4607]

signal2 = [ -39.6966   44.8127   95.0896  145.4097  144.5878   95.5007   61.0545   47.2886   28.1277  -40.9720  -53.6246  -63.4821  -72.3029  -74.8313  -77.8124]

signal3 = [-225.5691 -192.8458 -145.6628  151.0867  172.0412  172.5784  164.2109  160.3817  164.5383  171.8134  178.3905  180.8994  172.1375  149.2719  -51.9629 -148.1348 -150.4799 -149.6639]

signal4 = [ -218.5187 -211.5729 -181.9739 -144.8084  127.3846  162.9755  162.6934  150.8078  145.8774  156.9846  175.2362  188.0448  189.4951  175.9540  147.4631  -89.9513 -154.1579 -151.0851]

сигналы

Мы замечаем, что сигналы 1 и 2 выглядят одинаково, а сигналы 3 и 4 выглядят одинаково.

Я ищу алгоритм, который принимает в качестве входных сигналов n и делит их на m групп, где сигналы в каждой группе похожи.

Первым шагом в таком алгоритме обычно будет вычисление вектора признаков для каждого сигнала: .Fi

В качестве примера мы можем определить вектор объекта следующим образом: [ширина, макс, макс-мин]. В этом случае мы бы получили следующие векторы функций:

F1=[13,146,245]

F2=[15,145,223]

F3=[18,181,406]

F4=[18,189,408]

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

В приведенном выше примере мы получаем:

|F2F1|=22.1,|F3F1|=164.8

Таким образом, можно сделать вывод, что сигнал 2 намного больше похож на сигнал 1, чем сигнал 3.

В качестве векторного признака я мог бы также использовать термины из дискретного косинусного преобразования сигнала. На рисунке ниже показаны сигналы вместе с аппроксимацией сигналов первыми 5 членами из дискретного косинусного преобразования: Косинус трансформации

Дискретные косинус-коэффициенты в этом случае:

F1 = [94.2496  192.7706 -211.4520  -82.8782   11.2105]

F2 = [61.7481  230.3206 -114.1549 -129.2138  -65.9035]

F3 = [182.2051   18.6785 -595.3893  -46.9929 -236.3459]

F4 = [148.6924 -171.0035 -593.7428   16.8965 -223.8754]

В этом случае мы получаем:

|F2F1|=141.5,|F3F1|=498.0

Отношение не такое большое, как для простого вектора признаков, описанного выше. Значит ли это, что чем проще вектор признаков, тем лучше?

Пока я только показал 2 формы сигнала. График ниже показывает некоторые другие формы сигналов, которые будут входными данными для такого алгоритма. Один сигнал будет извлечен из каждого пика на этом графике, начиная с ближайшей минуты слева от пика и заканчивая ближайшей минутой справа от пика:след

Например, сигнал 3 был извлечен из этого графика между образцами 217 и 234. Сигнал 4 был извлечен из другого графика.

Если вам любопытно; каждый такой график соответствует измерениям звука микрофонами в разных местах в пространстве. Каждый микрофон принимает одни и те же сигналы, но сигналы слегка смещаются во времени и искажаются от микрофона к микрофону.

Векторы признаков могут быть отправлены в алгоритм кластеризации, такой как k-означает, что будет группировать сигналы с векторами признаков, близкими друг к другу.

Есть ли у кого-нибудь из вас опыт / совет по проектированию вектора признаков, который был бы хорош при различении сигналов формы сигнала?

Также какой алгоритм кластеризации вы бы использовали?

Заранее благодарю за любые ответы!


А как насчет произведения входного сигнала good-'ol dot с одним из шаблонов M? Вы бы взяли тот, который имеет ошибку наименьших квадратов. Это было бы то, с чего я бы начал. Вы случайно не пробовали что-то подобное?
Спейси

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

В чем причина попытки найти новые функции для характеристики этих векторов, а не использовать их непосредственно как «функции»? (Они должны быть одинаковой длины, хотя). В случае кластеризации k-средних «расстояния» между этими малыми векторами, выделенными в минимумах полученных сигналов, будут сначала рассчитаны, а затем алгоритм попытается найти их группировку в k-множеств минимальной дисперсии, что Вы, кажется, после.
A_A

Привет А_А! 1. Размеры векторов уменьшены. В случае сигнала 3 от 18 до 5 при использовании дискретных косинусных коэффициентов. 2. Происходит сглаживание. Сигналы шумные, и меня не интересуют быстрые колебания.
Энди

3
Люди, обучающиеся машинному обучению, утверждают, что вы никогда не должны выбрасывать информацию - система должна учиться всему. Конечно, это те же люди, которые разрабатывают алгоритмы, которые будут работать миллион лет, но дело не в этом. По сути, вы хотите выбросить как можно меньше информации и узнать, что осталось. Это кажется мне проблемой, которая должна решаться в байесовской структуре (честно говоря, так как большая часть обработки сигналов должна быть в настоящее время), хотя это не означает, что разработка существенных особенностей не важна.
Генри Гомерсалл

Ответы:


2

Вам нужны только объективные критерии для разделения сигналов или важно, чтобы они имели какое-то сходство при прослушивании кем-то? Это, конечно, должно было бы ограничить вас сигналами немного дольше (более 1000 сэмплов).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.