Diseñar un vector de características para discriminar entre diferentes formas de onda sónicas


10

Considere las 4 siguientes señales 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]

Señales

Notamos que las señales 1 y 2 se parecen y las señales 3 y 4 se parecen.

Estoy buscando un algoritmo que tome como entrada n señales y las divida en m grupos, donde las señales dentro de cada grupo son similares.

El primer paso en dicho algoritmo generalmente sería calcular un vector de características para cada señal: .Fyo

Como ejemplo, podríamos definir que el vector de características sea: [ancho, máximo, máximo-mínimo]. En cuyo caso obtendríamos los siguientes vectores de características:

F1=[13,146,245]

F2=[15,145,223]

F3=[18 años,181,406]

F4 4=[18 años,189,408]

Lo importante al decidir sobre un vector de características es que las señales similares obtienen vectores de características que están cerca uno del otro y las señales diferentes obtienen vectores de características que están muy separados.

En el ejemplo anterior obtenemos:

El |F2-F1El |=22,1,El |F3-F1El |=164,8

Por lo tanto, podríamos concluir que la señal 2 es mucho más similar a la señal 1 que la señal 3.

Como vector de características también podría usar los términos de la transformada discreta del coseno de la señal. La siguiente figura muestra las señales junto con la aproximación de las señales por los primeros 5 términos de la transformada discreta del coseno: El coseno se transforma

Los coeficientes discretos del coseno en este caso son:

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]

En este caso obtenemos:

El |F2-F1El |=141,5,El |F3-F1El |=498,0

La relación no es tan grande como para el vector de características más simple anterior. ¿Significa esto que el vector de características más simple es mejor?

Hasta ahora solo he mostrado 2 formas de onda. La siguiente gráfica muestra algunas otras formas de onda que serían la entrada a dicho algoritmo. Se extraería una señal de cada pico en este gráfico, comenzando en el minuto más cercano a la izquierda del pico y deteniéndose en el minuto más cercano a la derecha del pico:Rastro

Por ejemplo, la señal 3 se extrajo de este gráfico entre las muestras 217 y 234. La señal 4 se extrajo de otro gráfico.

En caso de que tengas curiosidad; cada parcela corresponde a mediciones de sonido por micrófonos en diferentes posiciones en el espacio. Cada micrófono recibe las mismas señales, pero las señales cambian ligeramente en el tiempo y se distorsionan de un micrófono a otro.

Los vectores de características podrían enviarse a un algoritmo de agrupamiento como k-means que agruparía las señales con vectores de características cercanas entre sí.

¿Alguno de ustedes tiene alguna experiencia / consejo sobre el diseño de un vector de características que sería bueno para discriminar las señales de forma de onda?

Además, ¿qué algoritmo de agrupamiento usarías?

Gracias de antemano por cualquier respuesta!


¿Qué pasa con el producto de punto good-'ol de una señal de entrada con una de las plantillas M? Tomaría el que tiene el error de mínimo cuadrado. Eso para mí sería donde comenzaría. ¿Por casualidad has intentado algo así?
Spacey

Hola mohammad El problema es que no conozco las formas de onda de antemano. Estoy interesado en todas las señales alrededor de los picos y pueden tener muchas formas diferentes que no conozco de antemano.
Andy

¿Cuál es la razón para tratar de encontrar nuevas características para caracterizar estos vectores que usarlos directamente como "características"? (Tendrán que tener la misma longitud). En el caso de k-means agrupando las "distancias" entre esos pequeños vectores extraídos en los mínimos de las señales adquiridas primero se calculará y luego el algoritmo tratará de encontrar una agrupación de ellos en k-sets de mínima varianza, que es lo que Pareces estar detrás.
A_A

Hola a_a! 1. Las dimensiones de los vectores se reducen. En el caso de la señal 3 de 18 a 5 cuando se utilizan los coeficientes de coseno discretos. 2. Se está realizando un alisado. Las señales son ruidosas y no me interesan las fluctuaciones rápidas.
Andy

3
La gente de aprendizaje automático argumentaría que nunca debe tirar información: el sistema debe aprender sobre todo. Por supuesto, son las mismas personas que diseñan algoritmos que tardarán un millón de años en ejecutarse, pero el punto no carece de algún mérito. En esencia, desea tirar la menor cantidad de información posible y aprender sobre lo que queda. Esto me parece un problema que debería hacerse en un marco bayesiano (francamente, ya que la mayoría del procesamiento de señales debería ser hoy en día), aunque eso no significa que resolver las características sobresalientes no sea importante.
Henry Gomersall

Respuestas:


2

¿Desea solo criterios objetivos para separar las señales o es importante que tengan algún tipo de similitud cuando alguien las escucha? Eso, por supuesto, debería restringirlo a señales un poco más largas (más de 1000 muestras).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.