La différence entre la convolution et la corrélation croisée du point de vue de l'analyse du signal


33

J'essaie de comprendre la différence entre la convolution et la corrélation croisée. J'ai lu et compris cette réponse. Je comprends aussi la photo ci-dessous.

Mais, en termes de traitement du signal (un domaine que je connais peu ..), Étant donné deux signaux (ou peut-être un filtre et un filtre?), Quand utiliserons-nous la convolution et quand préférerons-nous utiliser la corrélation croisée? signifie quand, dans la vie réelle, nous préférerons la convolution, et quand, la corrélation croisée.

Il semble que ces deux termes sont très utiles, alors à quoi sert-il?

Covolution

* La corrélation croisée ici devrait se lire g*fau lieu def*g

Réponses:


24

En traitement du signal, deux problèmes sont communs:

  • Quelle est la sortie de ce filtre lorsque son entrée est ? La réponse est donnée par , où est un signal appelé "réponse impulsionnelle" du filtre et est l'opération de convolution.X(t)X(t)*h(t)h(t)*

  • Avec un signal bruyant , le signal présent d'une manière ou d'une autre dans ? En d'autres termes, de la forme , où est le bruit? La réponse peut être trouvée par la corrélation de et . Si la corrélation est grande pour un délai donné , nous pouvons alors affirmer que la réponse est oui.y(t)X(t)y(t)y(t)X(t)+n(t)n(t)y(t)X(t)τ

Notez que lorsque les signaux impliqués sont symétriques, la convolution et la corrélation croisée deviennent la même opération; ce cas est également très fréquent dans certaines zones de DSP.


Je l'ai. Merci beaucoup pour votre réponse claire et brillante!
MathBgu

3
Ce que j'aime dans l'explication de réponse impulsionnelle, c'est que vous comprenez vraiment pourquoi la convolution est "inversée". En termes discrets, la sortie courant correspond à l'entrée actuelle x réponse impulsionnelle au temps 0 + sortie résiduelle des réponses impulsionnelles d'entrées précédentes (entrée a n-1 * impulsion 1 + entrée n-2 * impulsion 2, etc.).
Jean-Frédéric PLANTE

@ Jean-FredericPLANTE oui, c'est un bon moyen de l'expliquer.
MBaz

Cette réponse avec @ Jean-FredericPLANTE le rend plus sensible.
tpk

12

Les deux termes convolution et corrélation croisée sont mis en œuvre de manière très similaire dans DSP.

Celui que vous utilisez dépend de l'application.

Si vous effectuez un filtrage linéaire invariant dans le temps, vous convoluez le signal avec la réponse impulsionnelle du système.

Si vous "mesurez la similarité" entre deux signaux, vous les corrélez entre eux.

Les deux termes se rejoignent lorsque vous essayez de créer un filtre adapté .

Ici, vous essayez de décider si un signal donné, contient une "impulsion" connue (signal), p [ n ] . Une façon de le faire est de convoluer le signal donné, s avec l'inversion temporelle de l'impulsion connue, p : vous utilisez maintenant la convolution pour effectuer la corrélation croisée du signal donné avec l'impulsion connue.s[n]p[n]sp


Une note de côté

Le terme "corrélation croisée" est (pour certains) mal utilisé dans le domaine de la DSP.

Pour les statisticiens, une corrélation est une valeur qui mesure près de deux variables sont et doivent être comprises entre et + 1 .-1+1

Comme vous pouvez le voir dans l'entrée Wikipedia sur la corrélation croisée , la version DSP est utilisée et indique:

La corrélation croisée est une mesure de la similarité de deux séries en fonction du décalage de l'une par rapport à l'autre.

ΣmX[n]y[n+m]

1
Ceci est extrêmement utile pour moi. Merci!
MathBgu

3

Dans le traitement du signal, la convolution est effectuée pour obtenir la sortie d'un système LTI. La corrélation (auto ou corrélation croisée) est généralement calculée pour être utilisée ultérieurement pour d'autres calculs.

Vous devez faire attention à ne pas confondre corrélation, covariance et coefficient de corrélation. La corrélation ne doit pas nécessairement être comprise entre -1 et 1. Le coefficient de corrélation ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) est compris entre -1 et 1 car il est mis à l'échelle par les deux variances à variables aléatoires. . Nous devons nous rappeler que la véritable opération à effectuer dans le traitement statistique du signal pour analyser le lien entre deux variables aléatoires est la "covariance" et non la corrélation. Mais pour la plupart des applications où un signal est capturé par un capteur et transformé en une tension et numérisé avec un ADC, vous pouvez supposer que le signal a une moyenne nulle, la corrélation est donc égale à la covariance.


Je vais regarder dans ce lien. Merci!
MathBgu

3

@MathBgu J'ai lu toutes les réponses ci-dessus, toutes sont très instructives, je tiens à ajouter une chose pour votre compréhension, en considérant la formule de convolution comme suit

F(X)*g(X)=-F(τ)g(X-τ)τ

et pour la corrélation croisée

(Fg)(t)=def-F*(τ)g(t+τ)τ,

(t)(-t)

Nous utilisons la convolution pour obtenir la sortie / le résultat d'un système qui a deux blocs / signaux et qui sont directement adjacents (en série) dans le domaine temporel.


Merci de mentionner ce point important!
MathBgu

Est-ce que * dans f * implique un conjugué complexe? Au lieu de "sur l'axe des y", considérez "inverser l'axe des temps", car le retournement donne l'impression que quelque chose de vertical se produit, en particulier. en mentionnant l'axe des ordonnées.
Petrus Theron le

2

Il y a beaucoup de subtilité entre les significations de convolution et de corrélation. Les deux font partie de l'idée plus large de produits internes et de projections en algèbre linéaire, c'est-à-dire projetant un vecteur sur un autre pour déterminer sa "force" dans la direction de ce dernier.

Cette idée s'étend au domaine des réseaux de neurones, où nous projetons un échantillon de données sur chaque ligne d'une matrice, afin de déterminer dans quelle mesure il "correspond" à cette ligne. Chaque ligne représente une certaine classe d'objets. Par exemple, chaque ligne peut classer une lettre de l’alphabet pour la reconnaissance de l’écriture manuscrite. Il est courant de se référer à chaque ligne en tant que neurone, mais cela pourrait également être appelé un filtre adapté.

Essentiellement, nous mesurons la similitude de deux choses ou essayons de trouver une caractéristique spécifique dans quelque chose, par exemple un signal ou une image. Par exemple, lorsque vous convoluez un signal avec un filtre passe-bande, vous essayez de savoir quel contenu il contient dans cette bande. Lorsque vous corrélez un signal avec une sinusoïde, par exemple la DFT, vous recherchez la force de la fréquence de la sinusoïde dans le signal. Notez que dans ce dernier cas, la corrélation ne glisse pas, mais vous êtes toujours en train de "corréler" deux choses. Vous utilisez un produit interne pour projeter le signal sur la sinusoïde.

Alors, quelle est la différence? Eh bien, considérons qu'avec la convolution, le signal est inversé par rapport au filtre. Avec un signal variant dans le temps, ceci a pour effet que les données sont corrélées dans l'ordre dans lequel elles entrent dans le filtre. Pour un moment, définissons la corrélation simplement comme un produit scalaire, c'est-à-dire projetant une chose sur une autre. Donc, au début, nous corrélons la première partie du signal avec la première partie du filtre. Au fur et à mesure que le signal traverse le filtre, la corrélation devient plus complète. Notez que chaque élément du signal est uniquement multiplié par l'élément du filtre qu'il "touche" à ce moment précis.

Ainsi, avec la convolution, nous établissons une corrélation dans un sens, mais nous essayons également de préserver l'ordre dans le temps où les changements se produisent lorsque le signal interagit avec le système. Cependant, si le filtre est symétrique, comme cela est souvent le cas, peu importe. La convolution et la corrélation donneront les mêmes résultats.

Avec la corrélation, nous comparons simplement deux signaux et n'essayons pas de conserver un ordre d'événements. Pour les comparer, nous voulons qu’ils s’orientent dans la même direction, c’est-à-dire qu’ils s’alignent. Nous faisons glisser un signal sur l’autre afin de pouvoir tester leur similarité à chaque fenêtre temporelle, au cas où ils seraient déphasés les uns par rapport aux autres ou si nous recherchions un signal plus petit dans une plus grande.

En traitement d'image, les choses sont un peu différentes. Nous nous moquons du temps. La convolution a toujours quelques propriétés mathématiques utiles . Cependant, si vous essayez de faire correspondre des parties d'une image plus grande à une plus petite (c'est-à-dire un filtrage correspondant), vous ne voudrez pas la retourner car les fonctionnalités ne s'aligneront pas. À moins, bien sûr, que le filtre soit symétrique. Dans le traitement des images, corrélation et convolution sont parfois utilisées de manière interchangeable, en particulier avec les réseaux de neurones . De toute évidence, le temps est toujours d'actualité si l'image est une représentation abstraite de données bidimensionnelles, où une dimension est le temps, par exemple un spectrogramme.

En résumé, la corrélation et la convolution sont des produits internes glissants, utilisés pour projeter une chose sur une autre, car ils varient dans le temps ou l'espace. La convolution est utilisée lorsque l'ordre est important et est généralement utilisée pour transformer les données. La corrélation est généralement utilisée pour trouver une petite chose à l'intérieur d'une plus grande chose, c'est-à-dire pour correspondre. Si au moins l'une des deux "choses" est symétrique, peu importe ce que vous utilisez.


0

Laissez le traitement du signal de côté, si vous essayez simplement de comprendre ce qui se passe dans la convolution et la corrélation, les deux opérations sont très similaires. La seule différence est dans Convolution, une des variables est inversée avant d’effectuer l’accumulation du produit. Voir que je n'utilise pas le mot signal nulle part en haut. Je ne parle que des opérations effectuées.

Parlons maintenant du traitement du signal.

L'opération de convolution est utilisée pour calculer la sortie d'un système invariant linéaire dans le temps (système LTI) à partir d'une entrée singal ( x ) et d'une réponse impulsionnelle du système ( h ). Pour comprendre pourquoi seule l'opération de convolution est utilisée pour obtenir la sortie d'un système LTI, il existe une grande dérivation. S'il vous plaît trouver la dérivation ici.

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

L'opération de corrélation est utilisée pour trouver la similarité entre les deux signaux x et y. Plus la valeur de la corrélation est grande, plus la similarité entre les deux signaux est grande.

Comprenez la différence ici,

  • Convolution -> entre le signal et un système (filtre)

  • Corrélation -> entre deux signaux

Donc, du point de vue de l'analyse du signal, le fonctionnement par convolution n'est pas utilisé. Seule la corrélation est utilisée du point de vue de l'analyse du signal. Considérant que la convolution est utilisée du point de vue de l'analyse du système.

Le meilleur moyen de comprendre les opérations de convolution et de corrélation est de comprendre ce qui se produit lorsque deux convolution et corrélation sont effectuées entre deux variables continues, comme indiqué dans les diagrammes de la question.

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.