Was ist der Unterschied zwischen Faltung und Kreuzkorrelation?


47

Ich habe auf mehreren Websites festgestellt, dass Faltung und Kreuzkorrelation ähnlich sind (einschließlich des Tag-Wikis für Faltung), aber ich habe nirgendwo herausgefunden, wie sie sich unterscheiden.

Was ist der Unterschied zwischen den beiden? Können Sie sagen, dass Autokorrelation auch eine Art Faltung ist?


2
Es kann interessant sein, festzustellen, dass für gerade, reelle Funktionen die Kreuzkorrelation und die Faltung das gleiche Ergebnis liefern.

2
Einer verwendet einen 5-Stern ★ und der andere einen 6-Stern ✶.
Endolith

Antworten:


41

Der einzige Unterschied zwischen Kreuzkorrelation und Faltung ist eine Zeitumkehr an einem der Eingänge. Diskrete Faltung und Kreuzkorrelation sind wie folgt definiert (für reale Signale; ich habe die Konjugate vernachlässigt, die benötigt werden, wenn die Signale komplex sind):

x[n]h[n]=k=0h[k]x[nk]

corr(x[n],h[n])=k=0h[k]x[n+k]

Dies impliziert, dass Sie schnelle Faltungsalgorithmen wie das Speichern von Überlappungen verwenden können , um die Kreuzkorrelation effizient zu implementieren. einfach mal eins der eingangssignale zuerst umkehren. Die Autokorrelation ist identisch mit der obigen, mit Ausnahme von , sodass Sie sie auf die gleiche Weise als mit der Faltung verbunden ansehen können.h[n]=x[n]

Bearbeiten: Da jemand anderes nur eine doppelte Frage gestellt hat, wurde ich inspiriert, eine weitere Information hinzuzufügen: Wenn Sie die Korrelation im Frequenzbereich mithilfe eines schnellen Faltungsalgorithmus wie Überlappungsspeichern implementieren, können Sie den Zeitaufwand vermeiden. Umkehren eines der Signale zuerst, indem stattdessen eines der Signale im Frequenzbereich konjugiert wird. Es kann gezeigt werden, dass die Konjugation im Frequenzbereich der Umkehrung im Zeitbereich entspricht.


12
Diese Antwort ist in Ordnung für reale Signale, aber Jason gebracht komplexwertige Signale, in diesem Fall ist es wichtig zu beachten ist , dass es nicht ganz der Fall , dass der „einzige Unterschied ist , .... Zeitumkehr ...“ In der Tat, Komplexe Konjugate werden für eines der beiden Signale in der Korrelationsformel benötigt (welches konjugiert wird, ist eine Frage der Konvention - manche sagen zu Mai zu und manche sagen zu Mah zu - aber beide nennen eine Frucht ein Gemüse). Andererseits ist in der Faltungsformel kein Signal konjugiert.
Dilip Sarwate

1
aber was bedeutet es , dass sie so ähnlich sind? Mit ein paar tiefen, intuitiven Worten!
Diego

Ich verstehe nicht, wie sich das umkehrt, anstatt es in die entgegengesetzte Richtung zu verschieben, was nützlich ist?
Jonathan.

@Jonathan .: Die Umkehrung erfolgt, weil der Zeitindex innerhalb der Summation im Fall von Korrelation gegen Faltung negiert wird. Wenn Sie die Mathematik für ein Beispielsignal berechnen, werden Sie den Effekt sehen. k
Jason R

@JasonR, führt dies doch nur zu einer Verschiebung in die entgegengesetzte Richtung? Ich habe versucht, es herauszufinden, und alles, was passiert, ist, dass die x-Eingabe von der h-Eingabe abweicht und alles als Null endet. jsfiddle.net/ua5d1uo2
Jonathan.

12

Für kontinuierliche Faltung und kontinuierliche Kreuzkorrelation Es ist leicht zu zeigen, dass die Kreuzkorrelation Operator ist der Operator der der Faltungsoperator .

[Hf](x)f(x)h(x)dxh(xx)f(x)
G H
[Gf](x)f(x)h(x)dxh(xx)f(x)
GH

Die Faltungsoperation ist auch kommutativ während die Kreuzkorrelation keine solche Eigenschaft aufweist.

f(x)h(x)=h(x)f(x),


5

Als Student war ich in dasselbe Problem verwickelt wie Sie. Lassen Sie mich in den einfachsten Worten ohne Mathematik erklären.

Faltung: Es wird verwendet, um zwei Funktionen zu falten. Mag überflüssig klingen, aber ich möchte ein Beispiel nennen: Sie möchten eine Elementarzelle (die alles enthalten kann, was Sie wollen: Protein, Bild usw.) und eine Gitterstruktur falten (in einem nicht-mathematischen Begriff "kombinieren"). Das Ergebnis wäre, dass diese Einheitszelle in jedem Gitterpunkt organisiert ist, wodurch eine organisierte Einheitszellen-Wiederholungsstruktur erzeugt wird.

Kreuzkorrelation: Wird verwendet, um eine Zelle innerhalb einer Struktur zu identifizieren. Als Beispiel haben Sie das Bild eines kleinen Stücks einer Stadt und ein Bild der ganzen Stadt. Mit der Kreuzkorrelation können Sie bestimmen, wo sich dieses kleine Bild im gesamten Stadtbild befindet. Einfacher ausgedrückt "scannt" es, bis es eine Übereinstimmung findet. Dies geschieht nun, indem ein Kreuzkorrelationsfaktor ermittelt wird, der aus der Summe der verschiedenen Multiplikationen eines Werts aus jedem Bild resultiert.

Es ist sehr einfach. Wenn Sie die Mathematik besser verstehen möchten, schauen Sie sich dieses Video an. Dieser Professor von CALTECH erklärt es auf die beste Weise, die ich je gesehen habe.

https://www.youtube.com/watch?v=MQm6ZP1F6ms

Viel Glück.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.