Projetando um vetor de característica para discriminar entre diferentes formas de onda sônicas


10

Considere os 4 seguintes sinais de forma de onda:

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]

Signals

Notamos que os sinais 1 e 2 são parecidos e que os sinais 3 e 4 são parecidos.

Estou procurando um algoritmo que tome como entrada n sinais e os divida em m grupos, onde os sinais dentro de cada grupo são semelhantes.

O primeiro passo desse algoritmo seria geralmente calcular um vetor de característica para cada sinal: .Fi

Como exemplo, podemos definir o vetor de recurso como: [width, max, max-min]. Nesse caso, obteríamos os seguintes vetores de recursos:

F1=[13,146,245]

F2=[15,145,223]

F3=[18,181,406]

F4=[18,189,408]

O importante ao decidir sobre um vetor de característica é que sinais semelhantes obtêm vetores de características próximos uns dos outros e sinais diferentes obtêm vetores de características distantes.

No exemplo acima, obtemos:

|F2F1|=22.1,|F3F1|=164.8

Portanto, podemos concluir que o sinal 2 é muito mais semelhante ao sinal 1 do que o sinal 3.

Como vetor característica, eu também poderia usar os termos da transformação discreta de cosseno do sinal. A figura abaixo mostra os sinais, juntamente com a aproximação dos sinais pelos 5 primeiros termos da transformação discreta de cosseno: Transformações de cosseno

Os coeficientes discretos de cosseno neste caso são:

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]

Nesse caso, obtemos:

|F2F1|=141.5,|F3F1|=498.0

A proporção não é tão grande quanto ao vetor de características mais simples acima. Isso significa que o vetor de recurso mais simples é melhor?

Até agora, eu mostrei apenas 2 formas de onda. O gráfico abaixo mostra algumas outras formas de onda que seriam a entrada para esse algoritmo. Um sinal seria extraído de cada pico neste gráfico, começando no minuto mais próximo à esquerda do pico e parando no minuto mais próximo à direita do pico:Vestígio

Por exemplo, o sinal3 foi extraído deste gráfico entre a amostra 217 e 234. O sinal4 foi extraído de outro gráfico.

Caso você esteja curioso; cada gráfico corresponde a medições sonoras por microfones em diferentes posições no espaço. Cada microfone recebe os mesmos sinais, mas os sinais são levemente alterados no tempo e distorcidos de microfone para microfone.

Os vetores de características poderiam ser enviados para um algoritmo de agrupamento, como k-means, que agruparia os sinais com vetores de características próximos um do outro.

Algum de vocês tem alguma experiência / conselho sobre o design de um vetor de característica que seria bom em discriminar sinais de forma de onda?

Além disso, qual algoritmo de cluster você usaria?

Agradeço antecipadamente por todas as respostas!


E quanto ao produto de ponto bom de um sinal de entrada com um dos modelos M? Você pegaria aquele que tem o erro do quadrado mínimo. Isso para mim seria onde eu começaria. Você por acaso tentou algo assim?
Spacey

Oi Mohammad! O problema é que eu não conheço as formas de onda antecipadamente. Estou interessado em todos os sinais em torno de picos e eles podem ter muitas formas diferentes que eu não conheço antecipadamente.
Andy

Qual é o motivo para tentar encontrar novos recursos para caracterizar esses vetores do que usá-los diretamente como "recursos"? (Eles terão que ter o mesmo comprimento). No caso dos meios k agrupados, as "distâncias" entre os pequenos vetores extraídos nos mínimos dos sinais adquiridos serão primeiro calculadas e, em seguida, o algoritmo tentará encontrar um agrupamento deles em conjuntos k de variação mínima, que é o que você parece estar atrás.
um_um

Oi A_A! 1. As dimensões dos vetores são reduzidas. No caso do sinal 3, de 18 a 5, quando se utilizam os coeficientes discretos de cosseno. 2. Uma suavização está ocorrendo. Os sinais são barulhentos e não estou interessado em flutuações rápidas.
Andy

3
As pessoas do aprendizado de máquina argumentariam que você nunca deve descartar informações - o sistema deve aprender tudo. Obviamente, são as mesmas pessoas que projetam algoritmos que levarão um milhão de anos para serem executados, mas a questão não deixa de ter algum mérito. Em essência, você deseja jogar fora o mínimo de informação possível e aprender o que resta. Isso me parece um problema que deve ser feito em uma estrutura bayesiana (francamente, como a maior parte do processamento de sinais deve ser hoje em dia), embora isso não signifique elaborar as características mais importantes não é importante.
Henry Gomersall

Respostas:


2

Você quer apenas critérios objetivos para separar os sinais ou é importante que eles tenham algum tipo de semelhança quando ouvidos por alguém? É claro que isso teria que restringi-lo a sinais um pouco mais longos (mais de 1000 amostras).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.