Розглянемо чотири наступні сигнали сигналу:
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 групи, де сигнали в межах кожної групи схожі.
Першим кроком у такому алгоритмі зазвичай було б обчислити векторний елемент для кожного сигналу: .
Як приклад ми можемо визначити вектор функції: [ширина, макс, макс-хв]. У цьому випадку ми отримаємо наступні вектори функцій:
Важливим, що приймає рішення про особливість вектора, є те, що подібні сигнали отримують особливості векторів, близьких один до одного, а різні сигнали отримують вектори ознак, які знаходяться далеко один від одного.
У наведеному вище прикладі ми отримуємо:
Отже, можна зробити висновок, що сигнал 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]
У цьому випадку ми отримуємо:
Коефіцієнт не настільки великий, як для більш простого векторного ознаки. Чи означає це, що простіший функціональний вектор кращий?
Поки я показав лише 2 форми хвилі. На графіку нижче представлені деякі інші форми хвиль, які будуть входом до такого алгоритму. Один сигнал буде витягнутий з кожного піку цієї ділянки, починаючи з найближчої хвилини зліва від піку і зупиняючись на найближчій хвилині праворуч від піку:
Наприклад, сигнал 3 був вилучений з цієї ділянки між зразком 217 і 234. Сигнал4 був вилучений з іншого ділянки.
У випадку, якщо вам цікаво; кожен такий сюжет відповідає звуковим вимірюванням мікрофонами в різних положеннях у просторі. Кожен мікрофон отримує однакові сигнали, але сигнали трохи зміщуються в часі і перекручуються від мікрофона до мікрофона.
Функціональні вектори можуть бути спрямовані до алгоритму кластеризації, такого як k-засоби, які б групували сигнали з функціональними векторами, близькими один до одного.
У когось із вас є досвід / поради щодо розробки векторного ознаки, який би добре розрізняв сигнали сигналу?
Також який алгоритм кластеризації ви б використовували?
Заздалегідь дякую за будь-які відповіді!