La diferencia entre convolución y correlación cruzada desde el punto de vista del análisis de señal


33

Estoy tratando de entender la diferencia entre convolución y correlación cruzada. He leído y entendido esta respuesta. También entiendo la imagen de abajo.

Pero, en términos de procesamiento de señales (un campo del que sé poco ...), dadas dos señales (¿o tal vez una señal y un filtro?), ¿Cuándo usaremos la convolución y cuándo preferiremos usar la correlación cruzada? Es decir, cuando en el análisis de la vida real preferiremos la convolución, y cuándo, la correlación cruzada.

Parece que estos dos términos tienen mucho uso, entonces, ¿para qué sirve?

Covolución

* La correlación cruzada aquí debería leer en g*flugar def*g

Respuestas:


24

En el procesamiento de señales, dos problemas son comunes:

  • ¿Cuál es la salida de este filtro cuando su entrada es ? La respuesta viene dada por , donde es una señal llamada "respuesta de impulso" del filtro, y es la operación de convolución.X(t)X(t)h(t)h(t)

  • Dada una señal ruidosa , ¿está la señal alguna manera presente en ? En otras palabras, ¿es de la forma , donde es ruido? La respuesta se puede encontrar por la correlación de y . Si la correlación es grande para un retraso de tiempo determinado , entonces podemos estar seguros de decir que la respuesta es sí.y(t)X(t)y(t)y(t)X(t)+norte(t)norte(t)y(t)X(t)τ

Tenga en cuenta que cuando las señales involucradas son simétricas, la convolución y la correlación cruzada se convierten en la misma operación; Este caso también es muy común en algunas áreas de DSP.


Lo tengo. ¡Muchas gracias por tu respuesta clara y brillante!
MathBgu

3
Lo que me gusta de la explicación de la respuesta al impulso es que realmente se intuye por qué se invierte la convolución. En términos discretos, la salida actual es la entrada actual x respuesta al impulso en el tiempo 0 + salida residual de las entradas anteriores respuestas al impulso (entrada a n-1 * impulso 1 + entrada n-2 * impulso 2 y así sucesivamente).
Jean-Frederic PLANTE

@ Jean-FredericPLANTE sí, esa es una buena manera de explicarlo.
MBaz

Esta respuesta con el comentario de @ Jean-FredericPLANTE lo hace más sensible.
tpk

12

Los dos términos convolución y correlación cruzada se implementan de manera muy similar en DSP.

El que uses depende de la aplicación.

Si está realizando una operación de filtrado lineal, invariante en el tiempo, convoluciona la señal con la respuesta de impulso del sistema.

Si está "midiendo la similitud" entre dos señales, entonces las correlaciona de forma cruzada .

Los dos términos se unen cuando intenta producir un filtro coincidente .

Aquí, está tratando de decidir si una señal dada, contiene un "pulso" (señal) conocido, . Una forma de hacerlo es convolucionar la señal dada, con la inversión de tiempo del pulso conocido, : ahora está utilizando la convolución para realizar la correlación cruzada de la señal dada con el pulso conocido.s[norte]pags[norte]spags


Una nota al margen

El término "correlación cruzada" es (para algunos) mal utilizado en el campo de DSP.

Para los estadísticos, una correlación es un valor que mide qué tan cerca están y deben estar dos variables entre y .-1+1

Como puede ver en la entrada de Wikipedia sobre correlación cruzada , se utiliza la versión DSP y dicen:

La correlación cruzada es una medida de similitud de dos series en función del retraso de una en relación con la otra.

El problema con la definición DSP: es que esta medida de "similitud" depende de la energía en cada señal.

metroX[norte]y[norte+metro]

1
Esto es extremadamente útil para mí. ¡Gracias!
MathBgu

3

En el procesamiento de señales, la convolución se realiza para obtener la salida de un sistema LTI. La correlación (auto o correlación cruzada) generalmente se calcula para usarse más adelante para hacer otros cálculos.

Debe tener cuidado de no confundir correlación, covarianza y coeficiente de correlación. La correlación no necesariamente tiene que estar entre -1 y 1. El coeficiente de correlación ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) cae entre -1 y 1 porque está escalado por las dos variaciones de variables aleatorias . Lo que debemos recordar es que la operación real que se debe realizar en el procesamiento de señales estadísticas para analizar qué tan relacionadas están dos variables aleatorias es la "Covarianza", no la correlación. Pero para la mayoría de las aplicaciones donde una señal es capturada por un sensor y transformada en un voltaje y digitalizada con un ADC, puede suponer que la señal es media cero, por lo tanto, la correlación es igual a la covarianza.


Voy a echar un vistazo en ese enlace. ¡Gracias!
MathBgu

3

@MathBgu He leído todas las respuestas anteriores, todas son muy informativas. Una cosa que quiero agregar para su mejor comprensión, al considerar la fórmula de convolución de la siguiente manera

F(X)sol(X)=-F(τ)sol(X-τ)reτ

y para la correlación cruzada

(Fsol)(t)=def-F(τ)sol(t+τ)reτ,

(t)(-t)

Usamos la convolución para obtener la salida / resultado de un sistema que tiene dos bloques / señales y están directamente uno al lado del otro (en serie) en el dominio del tiempo.


¡Gracias por mencionar este punto de aclaración adicional!
MathBgu

¿El * en f * implica conjugado complejo? En lugar de "atravesar el eje y", considere "invertir el eje del tiempo", porque se siente como si algo vertical estuviera sucediendo, especialmente. al mencionar el eje y.
Petrus Theron

2

Hay mucha sutileza entre los significados de convolución y correlación. Ambos pertenecen a la idea más amplia de productos internos y proyecciones en álgebra lineal, es decir, proyectar un vector sobre otro para determinar qué tan "fuerte" es en la dirección de este último.

Esta idea se extiende al campo de las redes neuronales, donde proyectamos una muestra de datos en cada fila de una matriz, para determinar qué tan bien se "ajusta" a esa fila. Cada fila representa una cierta clase de objetos. Por ejemplo, cada fila podría clasificar una letra en el alfabeto para el reconocimiento de escritura a mano. Es común referirse a cada fila como una neurona, pero también podría llamarse un filtro coincidente.

En esencia, estamos midiendo cuán similares son dos cosas, o tratando de encontrar una característica específica en algo, por ejemplo, una señal o imagen. Por ejemplo, cuando convoluciona una señal con un filtro de paso de banda, está tratando de averiguar qué contenido tiene en esa banda. Cuando correlaciona una señal con una sinusoide, por ejemplo, el DFT, está buscando la intensidad de la frecuencia de la sinusoide en la señal. Tenga en cuenta que en el último caso, la correlación no se desliza, pero aún está "correlacionando" dos cosas. Estás utilizando un producto interno para proyectar la señal en la sinusoide.

Entonces, ¿cuál es la diferencia? Bueno, considere que con convolución la señal es hacia atrás con respecto al filtro. Con una señal que varía con el tiempo, esto tiene el efecto de que los datos están correlacionados en el orden en que ingresan al filtro. Por un momento, definamos la correlación simplemente como un producto de punto, es decir, proyectando una cosa sobre otra. Entonces, al principio, correlacionamos la primera parte de la señal con la primera parte del filtro. A medida que la señal continúa a través del filtro, la correlación se vuelve más completa. Tenga en cuenta que cada elemento en la señal solo se multiplica con el elemento del filtro que está "tocando" en ese momento.

Entonces, con convolución, estamos correlacionando en cierto sentido, pero también estamos tratando de preservar el orden a tiempo que ocurren los cambios a medida que la señal interactúa con el sistema. Sin embargo, si el filtro es simétrico, como suele serlo, en realidad no importa. La convolución y la correlación arrojarán los mismos resultados.

Con la correlación, solo estamos comparando dos señales, y no estamos tratando de preservar un orden de eventos. Para compararlos, queremos que estén orientados en la misma dirección, es decir, que se alineen. Deslizamos una señal sobre la otra para que podamos probar su similitud en cada ventana de tiempo, en caso de que estén desfasadas entre sí o si estamos buscando una señal más pequeña en una más grande.

En el procesamiento de imágenes, las cosas son un poco diferentes. No nos importa el tiempo. Sin embargo, la convolución todavía tiene algunas propiedades matemáticas útiles . Sin embargo, si está tratando de hacer coincidir partes de una imagen más grande con una más pequeña (es decir, filtrado coincidente), no querrá voltearla porque las características no se alinearán. A menos, por supuesto, que el filtro sea simétrico. En el procesamiento de imágenes, la correlación y la convolución a veces se usan indistintamente, particularmente con redes neuronales . Obviamente, el tiempo sigue siendo relevante si la imagen es una representación abstracta de datos bidimensionales, donde una dimensión es el tiempo, por ejemplo, el espectrograma.

En resumen, tanto la correlación como la convolución son productos internos deslizantes, que se utilizan para proyectar una cosa sobre otra a medida que varían en el espacio o el tiempo. La convolución se usa cuando el orden es importante, y generalmente se usa para transformar los datos. La correlación se usa típicamente para encontrar una cosa más pequeña dentro de una cosa más grande, es decir, para hacer coincidir. Si al menos una de las dos "cosas" es simétrica, no importa cuál use.


0

Mantenga el procesamiento de señales a un lado, si solo trata de comprender lo que sucede en Convolución y Correlación, ambas son operaciones muy similares. La única diferencia está en Convolución, una de las variables se invierte (voltea) antes de realizar la acumulación del producto. Vea que no estoy usando la señal de la palabra en ninguna parte arriba Solo estoy hablando en términos de las operaciones realizadas.

Ahora, pasemos al procesamiento de señales.

La operación de convolución se usa para calcular la salida de un sistema lineal de tiempo invariante (sistema LTI) dada una entrada de señal ( x ) y la respuesta de impulso del sistema ( h ). Para comprender por qué solo se utiliza la operación de convolución para obtener la salida de un sistema LTI, existe una gran derivación. Encuentra la derivación aquí.

http://www.rctn.org/bruno/npb163/lti-conv/lti-convolution.html

La operación de correlación se utiliza para encontrar la similitud entre las dos señales x e y. Más el valor de la correlación, más es la similitud entre las dos señales.

Entiende la diferencia aquí,

  • Convolución -> entre señal y sistema (filtro)

  • Correlación -> entre dos señales

Entonces, desde el punto de vista del análisis de señal, no se utiliza la operación de convolución. Solo se utiliza la correlación desde el punto de vista del análisis de señal. Mientras que la convolución se usa desde el punto de vista del análisis del sistema.

La mejor manera de comprender las operaciones de convolución y correlación es entender qué sucede cuando se realizan dos convoluciones y correlaciones entre dos variables continuas, como se muestra en los diagramas de la pregunta.

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.