Rozważ 4 następujące sygnały kształtu fali:
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]
Zauważamy, że sygnały 1 i 2 wyglądają podobnie, a sygnały 3 i 4 wyglądają podobnie.
Szukam algorytmu, który przyjmuje jako sygnały wejściowe n i dzieli je na m grup, gdzie sygnały w każdej grupie są podobne.
Pierwszym krokiem w takim algorytmie byłoby zwykle obliczenie wektora cech dla każdego sygnału: .
Jako przykład możemy zdefiniować wektor cech jako: [szerokość, maksimum, maks. Min]. W takim przypadku otrzymalibyśmy następujące wektory cech:
Ważną rzeczą przy podejmowaniu decyzji o wektorze cech jest to, że podobne sygnały otrzymują wektory cech, które są blisko siebie, a odmienne sygnały - wektory cech, które są daleko od siebie.
W powyższym przykładzie otrzymujemy:
Możemy zatem stwierdzić, że sygnał 2 jest znacznie bardziej podobny do sygnału 1 niż sygnał 3.
Jako wektor cech mogę również użyć określeń z dyskretnej transformacji kosinusowej sygnału. Poniższy rysunek pokazuje sygnały wraz z aproksymacją sygnałów o pierwsze 5 składników z dyskretnej transformacji kosinusowej:
W tym przypadku dyskretne współczynniki cosinus są następujące:
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]
W takim przypadku otrzymujemy:
Współczynnik nie jest tak duży, jak w przypadku prostszego wektora cech powyżej. Czy to oznacza, że prostszy wektor cech jest lepszy?
Do tej pory pokazałem tylko 2 przebiegi. Poniższy wykres pokazuje inne kształty fal, które byłyby danymi wejściowymi dla takiego algorytmu. Z każdego piku na tym wykresie zostanie wyodrębniony jeden sygnał, zaczynając od najbliższej minuty po lewej stronie szczytu i zatrzymując się przy najbliższej minucie po prawej stronie szczytu:
Na przykład sygnał 3 został wyodrębniony z tego wykresu między próbką 217 i 234. Sygnał 4 został wyodrębniony z innego wykresu.
Jeśli jesteś ciekawy; każdy taki wykres odpowiada pomiarom dźwięku przez mikrofony w różnych pozycjach w przestrzeni. Każdy mikrofon odbiera te same sygnały, ale sygnały są nieco przesunięte w czasie i zniekształcone z mikrofonu na mikrofon.
Wektory cech mogłyby być wysyłane do algorytmu grupowania, takiego jak k-średnie, które grupowałyby razem sygnały z wektorami cech blisko siebie.
Czy ktoś z was ma jakieś doświadczenie / porady dotyczące projektowania wektora cech, który byłby dobry w rozróżnianiu sygnałów falowych?
Którego algorytmu klastrowego używałbyś?
Z góry dziękuję za wszelkie odpowiedzi!