Conception d'un vecteur caractéristique pour distinguer les différentes formes d'onde sonores


10

Considérez les 4 signaux de forme d'onde suivants:

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]

Signaux

On remarque que les signaux 1 et 2 se ressemblent et que les signaux 3 et 4 se ressemblent.

Je recherche un algorithme qui prend en entrée n signaux et les divise en m groupes, où les signaux au sein de chaque groupe sont similaires.

La première étape d'un tel algorithme serait généralement de calculer un vecteur caractéristique pour chaque signal: .Fi

À titre d'exemple, nous pourrions définir le vecteur d'entité comme: [largeur, max, max-min]. Dans ce cas, nous obtiendrions les vecteurs de fonctionnalités suivants:

F1=[13,146,245]

F2=[15,145,223]

F3=[18,181,406]

F4=[18,189,408]

L'important pour décider d'un vecteur de caractéristiques est que des signaux similaires obtiennent des vecteurs de caractéristiques proches les uns des autres et des signaux différents des vecteurs de caractéristiques éloignés.

Dans l'exemple ci-dessus, nous obtenons:

|F2F1|=22.1,|F3F1|=164.8

Nous pourrions donc conclure que le signal 2 est beaucoup plus similaire au signal 1 que le signal 3.

En tant que vecteur caractéristique, je pourrais également utiliser les termes de la transformée en cosinus discrète du signal. La figure ci-dessous montre les signaux ainsi que l'approximation des signaux par les 5 premiers termes de la transformée en cosinus discrète: Le cosinus se transforme

Les coefficients cosinus discrets dans ce cas sont:

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]

Dans ce cas, nous obtenons:

|F2F1|=141.5,|F3F1|=498.0

Le rapport n'est pas tout à fait aussi grand que pour le vecteur de caractéristique plus simple ci-dessus. Est-ce à dire que le vecteur d'entités le plus simple est meilleur?

Jusqu'à présent, je n'ai montré que 2 formes d'onde. Le graphique ci-dessous montre quelques autres formes d'onde qui constitueraient l'entrée d'un tel algorithme. Un signal serait extrait de chaque pic de ce tracé, commençant à la minute la plus proche à gauche du pic et s'arrêtant à la minute la plus proche à droite du pic:Trace

Par exemple, le signal 3 a été extrait de ce tracé entre les échantillons 217 et 234. Le signal4 a été extrait d'un autre tracé.

Au cas où vous seriez curieux; chacun de ces tracés correspond à des mesures sonores par des microphones à différentes positions dans l'espace. Chaque microphone reçoit les mêmes signaux mais les signaux sont légèrement décalés dans le temps et déformés d'un microphone à l'autre.

Les vecteurs de caractéristiques pourraient être envoyés à un algorithme de regroupement tel que k-means qui regrouperait les signaux avec des vecteurs de caractéristiques proches les uns des autres.

L'un de vous a-t-il une expérience / des conseils sur la conception d'un vecteur caractéristique qui serait bon pour distinguer les signaux de forme d'onde?

Quel algorithme de clustering utiliseriez-vous également?

Merci d'avance pour toutes les réponses!


Qu'en est-il du produit scalaire bon-'ol d'un signal d'entrée avec l'un des modèles M? Vous prendriez celui qui a l'erreur la moins carrée. Pour moi, ce serait par là que je commencerais. Avez-vous par hasard essayé quelque chose comme ça?
Spacey

Salut Mohammad! Le problème est que je ne connais pas les formes d'onde à l'avance. Je suis intéressé par tous les signaux autour des pics et ils peuvent avoir de nombreuses formes différentes que je ne connais pas à l'avance.
Andy

Quelle est la raison d'essayer de trouver de nouvelles fonctionnalités pour caractériser ces vecteurs plutôt que de les utiliser directement en tant que "fonctionnalités"? (Ils devront cependant être de la même longueur). Dans le cas de k-moyens regroupant les "distances" entre ces petits vecteurs extraits au minimum des signaux acquis seront d'abord calculés, puis l'algorithme essaiera de trouver un regroupement d'entre eux en k-ensembles de variance minimale qui est ce que vous semblez être après.
A_A

Salut A_A! 1. Les dimensions des vecteurs sont réduites. Dans le cas du signal 3 de 18 à 5 lors de l'utilisation des coefficients discrets de cosinus. 2. Un lissage est en cours. Les signaux sont bruyants et je ne suis pas intéressé par les fluctuations rapides.
Andy

3
Les gens qui apprennent par machine soutiennent que vous ne devez jamais jeter d'informations - le système doit apprendre tout. Bien sûr, ce sont les mêmes personnes qui conçoivent des algorithmes qui prendront un million d'années à fonctionner, mais le point n'est pas sans mérite. En substance, vous voulez jeter le moins d'informations possible et apprendre ce qui reste. Cela me semble être un problème qui devrait être fait dans un cadre bayésien (franchement, comme la plupart du traitement du signal devrait l'être de nos jours), bien que cela ne signifie pas que l'élaboration des principales caractéristiques n'est pas importante.
Henry Gomersall

Réponses:


2

Vous voulez uniquement des critères objectifs pour séparer les signaux ou est-il important qu'ils aient une sorte de similitude lorsqu'ils sont écoutés par quelqu'un? Cela devrait bien sûr vous limiter à des signaux un peu plus longs (plus de 1000 échantillons).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.