Entwerfen eines Merkmalsvektors zur Unterscheidung zwischen verschiedenen Schallwellenformen


10

Betrachten Sie die 4 folgenden Wellenformsignale:

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]

Signale

Wir bemerken, dass Signal 1 und 2 ähnlich aussehen und dass Signal 3 und 4 ähnlich aussehen.

Ich suche nach einem Algorithmus, der als Eingang n Signale verwendet und sie in m Gruppen unterteilt, wobei die Signale innerhalb jeder Gruppe ähnlich sind.

Der erste Schritt in einem solchen Algorithmus wäre normalerweise die Berechnung eines Merkmalsvektors für jedes Signal: .Fi

Als Beispiel könnten wir den Merkmalsvektor wie folgt definieren: [width, max, max-min]. In diesem Fall würden wir die folgenden Merkmalsvektoren erhalten:

F1=[13,146,245]

F2=[15,145,223]

F3=[18,181,406]

F4=[18,189,408]

Das Wichtige bei der Entscheidung für einen Merkmalsvektor ist, dass ähnliche Signale Merkmalsvektoren erhalten, die nahe beieinander liegen, und unterschiedliche Signale Merkmalsvektoren erhalten, die weit voneinander entfernt sind.

Im obigen Beispiel erhalten wir:

|F2F1|=22.1,|F3F1|=164.8

Wir könnten daher den Schluss ziehen, dass Signal 2 Signal 1 viel ähnlicher ist als Signal 3.

Als Merkmalsvektor könnte ich auch die Begriffe aus der diskreten Cosinustransformation des Signals verwenden. Die folgende Abbildung zeigt die Signale zusammen mit der Approximation der Signale durch die ersten 5 Terme aus der diskreten Cosinustransformation: Cosinus verwandelt sich

Die diskreten Kosinuskoeffizienten in diesem Fall sind:

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]

In diesem Fall erhalten wir:

|F2F1|=141.5,|F3F1|=498.0

Das Verhältnis ist nicht ganz so groß wie für den einfacheren Merkmalsvektor oben. Bedeutet dies, dass der einfachere Merkmalsvektor besser ist?

Bisher habe ich nur 2 Wellenformen gezeigt. Das folgende Diagramm zeigt einige andere Wellenformen, die als Eingabe für einen solchen Algorithmus dienen würden. Aus jedem Peak in diesem Diagramm würde ein Signal extrahiert, beginnend mit der nächsten Minute links vom Peak und endend mit der nächsten Minute rechts vom Peak:Spur

Zum Beispiel wurde Signal3 aus diesem Diagramm zwischen Probe 217 und 234 extrahiert. Signal4 wurde aus einem anderen Diagramm extrahiert.

Falls Sie neugierig sind; Jedes dieser Diagramme entspricht Schallmessungen durch Mikrofone an verschiedenen Positionen im Raum. Jedes Mikrofon empfängt die gleichen Signale, aber die Signale sind zeitlich leicht verschoben und von Mikrofon zu Mikrofon verzerrt.

Die Merkmalsvektoren könnten an einen Clustering-Algorithmus wie k-means gesendet werden, der die Signale mit Merkmalsvektoren nahe beieinander gruppiert.

Hat einer von Ihnen Erfahrung / Ratschläge zum Entwerfen eines Merkmalsvektors, der Wellenformsignale gut unterscheiden kann?

Welchen Clustering-Algorithmus würden Sie auch verwenden?

Vielen Dank im Voraus für alle Antworten!


Was ist mit einem guten Punktprodukt eines Eingangssignals mit einer der M-Vorlagen? Sie würden den nehmen, der den kleinsten quadratischen Fehler hat. Das wäre für mich der Ort, an dem ich anfangen würde. Haben Sie zufällig so etwas versucht?
Spacey

Hallo Mohammad! Das Problem ist, dass ich die Wellenformen nicht im Voraus kenne. Ich interessiere mich für alle Signale um Spitzen und sie können viele verschiedene Formen haben, die ich nicht im Voraus kenne.
Andy

Was ist der Grund für den Versuch, neue Merkmale zur Charakterisierung dieser Vektoren zu finden, als sie direkt als "Merkmale" zu verwenden? (Sie müssen jedoch gleich lang sein). Im Fall von k-Mittel-Clustering werden zuerst die "Abstände" zwischen diesen kleinen Vektoren berechnet, die an den Minima der erfassten Signale extrahiert wurden, und dann wird der Algorithmus versuchen, eine Gruppierung von ihnen in k-Sätze minimaler Varianz zu finden, was das ist Sie scheinen hinterher zu sein.
A_A

Hallo A_A! 1. Die Dimensionen der Vektoren werden reduziert. Im Fall von Signal 3 von 18 bis 5 bei Verwendung der diskreten Kosinuskoeffizienten. 2. Es findet eine Glättung statt. Die Signale sind verrauscht und ich bin nicht an schnellen Schwankungen interessiert.
Andy

3
Menschen mit maschinellem Lernen würden argumentieren, dass Sie niemals Informationen wegwerfen sollten - das System sollte über alles lernen. Natürlich sind es dieselben Leute, die Algorithmen entwerfen, deren Ausführung eine Million Jahre dauern wird, aber der Punkt ist nicht ohne Verdienst. Im Wesentlichen möchten Sie so wenig Informationen wie möglich wegwerfen und erfahren, was noch übrig ist. Das erscheint mir als ein Problem , das sollte in einem Bayes - Rahmen (offen, da die meisten Signalverarbeitung heute sein sollte) getan werden, aber das bedeutet nicht , dass das Ausarbeiten der herausragenden Merkmale ist nicht wichtig.
Henry Gomersall

Antworten:


2

Sie möchten nur objektive Kriterien, um die Signale zu trennen, oder ist es wichtig, dass sie eine gewisse Ähnlichkeit aufweisen, wenn sie von jemandem angehört werden? Das müsste Sie natürlich auf etwas längere Signale beschränken (mehr als 1000 Samples).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.