Valores de correlación cruzada

3

Estoy tratando de desarrollar un medidor de flujo utilizando el algoritmo de correlación cruzada.

Estoy usando 2x leds IR y 2x fototransistores y un MSP430F5529. Un par de fototransistor-Led va en el nivel superior y el otro en un nivel inferior.

Cuando el líquido pasa en el primer par de fototransistor: IR Led, el microcontrolador lee el voltaje del fototransistor hacia afuera y, después de que el líquido cruza el otro par, el microcontrolador lee el voltaje nuevamente.

Las señales recogidas son muy similares pero la fase se modificó como se esperaba.

Analicé los datos recopilados en el software Matlab y usé el algoritmo de correlación cruzada para calcular el cambio de fase entre ellos, en ventanas de 250 puntos.

Los resultados fueron muy buenos, pero a veces el algoritmo produce valores de cambio de fase cero. Y al analizar la gráfica, se puede ver, visualmente, que las 2 ondas tienen un cambio de fase distinto de cero.

A continuación se muestra un ejemplo de una ventana.

Para estas 2 señales, la correlación cruzada da como resultado 0. Pero como se puede ver, las 2 señales se desplazan en fase en aproximadamente 13 puntos.

Sé que el algoritmo de correlación cruzada me dará el retraso del valor máximo de la multiplicación de cada punto. Pero, ¿cómo puedo calcular el cambio de fase entre 2 señales como este ejemplo?

    
pregunta Lucian Ribeiro

1 respuesta

1

Creo que la respuesta es aquí . Preste atención a que la función xcorr () devuelve un valor que es el doble del tamaño (menos 1) de la longitud de los vectores originales.

    
respondido por el Konstantin

Lea otras preguntas en las etiquetas