Der Unterschied zwischen Faltung und Kreuzkorrelation aus Sicht der Signalanalyse

33

Ich versuche den Unterschied zwischen Faltung und Kreuzkorrelation zu verstehen. Ich habe gelesen ein verstanden diese Antwort. Ich verstehe auch das Bild unten.

Aber in Bezug auf die Signalverarbeitung (ein Feld, über das ich wenig weiß ...): Wenn zwei Signale (oder vielleicht ein Signal und ein Filter?) Gegeben sind, wann werden wir Faltung verwenden und wann werden wir Kreuzkorrelation bevorzugen, I Wenn wir im wirklichen Leben analysieren, bevorzugen wir Faltung und wann Kreuzkorrelation.

Es scheint, dass diese beiden Begriffe eine Menge Verwendung haben. Was ist diese Verwendung?

Covolution

* Die Kreuzkorrelation sollte hier g*fstatt lautenf*g

MathBgu
quelle

Antworten:

24

Bei der Signalverarbeitung treten häufig zwei Probleme auf:

  • Was ist die Ausgabe dieses Filters, wenn seine Eingabe ? Die Antwort ist gegeben durch x ( t ) h ( t ) , wobei h ( t ) ein Signal ist, das als "Impulsantwort" des Filters bezeichnet wird, und die Faltungsoperation ist.x(t)x(t)h(t)h(t)

  • Ist bei einem verrauschten Signal das Signal x ( t ) irgendwie in y ( t ) vorhanden ? Mit anderen Worten, hat y ( t ) die Form x ( t ) + n ( t ) , wobei n ( t ) Rauschen ist? Die Antwort kann durch die Korrelation von y ( t ) und x ( t ) gefunden werden . Wenn die Korrelation für eine bestimmte Zeitverzögerung groß isty(t)x(t)y(t)y(t)x(t)+n(t)n(t)y(t)x(t) , dann können wir zuversichtlich sagen, dass die Antwort ja ist.τ

Es ist zu beachten, dass, wenn die beteiligten Signale symmetrisch sind, Faltung und Kreuzkorrelation dieselbe Operation werden; Dieser Fall ist auch in einigen Bereichen von DSP sehr verbreitet.

MBaz
quelle
Ich habs. Vielen Dank für Ihre klare und klare Antwort!
MathBgu
3
Was ich an der Erklärung der Impulsantwort mag, ist, dass Sie wirklich eine Ahnung haben, warum die Faltung "umgekehrt" ist. Diskret ausgedrückt ist der Stromausgang der Stromeingang x Impulsantwort zum Zeitpunkt 0 + Restausgang von früheren Eingangsimpulsantworten (Eingabe eines n-1 * Impulses 1 + Eingabe eines n-2 * Impulses 2 usw.).
Jean-Frederic PLANTE
@ Jean-FredericPLANTE Ja, das ist ein guter Weg, um es zu erklären.
MBaz
Diese Antwort mit @ Jean-FredericPLANTE Kommentar macht es sinnvoller.
3.
12

Die beiden Begriffe Faltung und Kreuzkorrelation werden in DSP auf sehr ähnliche Weise implementiert.

Welches Sie verwenden, hängt von der Anwendung ab.

Wenn Sie eine lineare, zeitinvariante Filteroperation ausführen, falten Sie das Signal mit der Impulsantwort des Systems.

Wenn Sie die Ähnlichkeit zwischen zwei Signalen messen, korrelieren Sie sie gegenseitig .

Die beiden Begriffe kommen zusammen, wenn Sie versuchen, einen passenden Filter zu erstellen .

s[n]p[n]sp


Eine Randnotiz

Der Begriff "Kreuzkorrelation" wird (für einige) auf dem Gebiet der DSP missbraucht.

1+1

Wie Sie dem Wikipedia-Eintrag zur Kreuzkorrelation entnehmen können , wird die DSP-Version verwendet und sie lautet:

Die Kreuzkorrelation ist ein Maß für die Ähnlichkeit zweier Reihen in Abhängigkeit von der Verzögerung der einen gegenüber der anderen.

mx[n]y[n+m]
Peter K.
quelle
1
Das ist sehr hilfreich für mich. Vielen Dank!
MathBgu
3

Bei der Signalverarbeitung wird die Faltung durchgeführt, um die Ausgabe eines LTI-Systems zu erhalten. Die Korrelation (Auto- oder Kreuzkorrelation) wird normalerweise berechnet, um später für andere Berechnungen verwendet zu werden

Sie müssen darauf achten, Korrelation, Kovarianz und Korrelationskoeffizient nicht zu verwechseln. Die Korrelation muss nicht notwendigerweise zwischen -1 und 1 liegen. Der Korrelationskoeffizient ( https://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient ) liegt zwischen -1 und 1, da er durch die beiden Varianzen der Zufallsvariablen skaliert wird . Wir müssen uns daran erinnern, dass die eigentliche Operation bei der statistischen Signalverarbeitung zur Analyse der Beziehung zwischen zwei Zufallsvariablen die "Kovarianz" und nicht die Korrelation ist. Bei den meisten Anwendungen, bei denen ein Signal von einem Sensor erfasst und in eine Spannung umgewandelt und mit einem ADC digitalisiert wird, kann davon ausgegangen werden, dass das Signal ein Mittelwert von Null ist, sodass die Korrelation gleich der Kovarianz ist.

Knochen
quelle
Ich werde einen Blick in diesen Link werfen. Vielen Dank!
MathBgu
3

@MathBgu Ich habe alle oben gegebenen Antworten gelesen, alle sind sehr informativ, eine Sache, die ich zum besseren Verständnis hinzufügen möchte, indem ich die Faltungsformel wie folgt betrachte

f(x)g(x)=f(τ)g(xτ)dτ

und für die Kreuzkorrelation

(fg)(t)=deff(τ)g(t+τ)dτ,

(t)(t)

Wir verwenden die Faltung, um die Ausgabe / das Ergebnis eines Systems zu erhalten, das zwei Blöcke / Signale aufweist und die sich im Zeitbereich direkt nebeneinander (in Reihe) befinden.

RM Faheem
quelle
Vielen Dank für die Erwähnung dieses zusätzlichen Klarstellungspunktes!
MathBgu
Bedeutet das * in * ein komplexes Konjugat? Anstelle von "Über die y-Achse" sollten Sie "Umkehren der Zeitachse" in Betracht ziehen, da sich das Umkehren so anfühlt, als würde etwas Vertikales passieren. bei Erwähnung der y-Achse.
Petrus Theron
2

Zwischen der Bedeutung von Faltung und Korrelation besteht eine Menge Subtilität. Beides gehört zur umfassenderen Vorstellung von inneren Produkten und Projektionen in der linearen Algebra, dh, dass ein Vektor auf einen anderen projiziert wird, um zu bestimmen, wie "stark" er in Richtung des letzteren ist.

Diese Idee erstreckt sich auf das Gebiet der neuronalen Netze, wo wir eine Datenprobe auf jede Zeile einer Matrix projizieren, um zu bestimmen, wie gut diese Zeile "passt". Jede Zeile repräsentiert eine bestimmte Klasse von Objekten. Beispielsweise könnte jede Zeile einen Buchstaben im Alphabet für die Handschrifterkennung klassifizieren. Es ist üblich, jede Zeile als Neuron zu bezeichnen, man könnte sie aber auch als Matched-Filter bezeichnen.

Im Wesentlichen messen wir, wie ähnlich zwei Dinge sind, oder wir versuchen, ein bestimmtes Merkmal in etwas zu finden, z. B. ein Signal oder ein Bild. Wenn Sie beispielsweise ein Signal mit einem Bandpassfilter falten, versuchen Sie herauszufinden, welchen Inhalt es in diesem Band hat. Wenn Sie ein Signal mit einer Sinuskurve korrelieren, z. B. der DFT, suchen Sie nach der Stärke der Sinusfrequenz im Signal. Beachten Sie, dass im letzteren Fall die Korrelation nicht verschoben wird, aber Sie immer noch zwei Dinge "korrelieren". Sie verwenden ein inneres Produkt, um das Signal auf die Sinuskurve zu projizieren.

Was ist dann der Unterschied? Nun, bedenken Sie, dass das Signal bei Faltung in Bezug auf das Filter rückwärts ist. Bei einem zeitvariablen Signal bewirkt dies, dass die Daten in der Reihenfolge korreliert werden, in der sie in den Filter gelangen. Definieren wir die Korrelation für einen Moment einfach als ein Skalarprodukt, dh das Projizieren einer Sache auf eine andere. Zu Beginn korrelieren wir also den ersten Teil des Signals mit dem ersten Teil des Filters. Wenn das Signal den Filter durchläuft, wird die Korrelation vollständiger. Beachten Sie, dass jedes Element im Signal nur mit dem Element des Filters multipliziert wird, das es zu diesem Zeitpunkt "berührt".

Mit der Faltung korrelieren wir also in gewisser Weise, aber wir versuchen auch, die zeitliche Reihenfolge beizubehalten, in der Änderungen auftreten, wenn das Signal mit dem System interagiert. Wenn der Filter jedoch symmetrisch ist, wie es häufig der Fall ist, spielt es eigentlich keine Rolle. Faltung und Korrelation führen zu denselben Ergebnissen.

Mit der Korrelation vergleichen wir nur zwei Signale und versuchen nicht, eine Reihenfolge von Ereignissen beizubehalten. Um sie zu vergleichen, wollen wir, dass sie in die gleiche Richtung weisen, dh sich aneinanderreihen. Wir schieben ein Signal über das andere, damit wir ihre Ähnlichkeit in jedem Zeitfenster testen können, falls sie außer Phase sind oder wir nach einem kleineren Signal in einem größeren suchen.

Bei der Bildverarbeitung sieht es etwas anders aus. Die Zeit ist uns egal. Die Faltung hat jedoch noch einige nützliche mathematische Eigenschaften . Wenn Sie jedoch versuchen, Teile eines größeren Bilds mit einem kleineren Bild abzugleichen (dh eine passende Filterung), möchten Sie es nicht spiegeln, da die Funktionen dann nicht in einer Linie stehen. Es sei denn natürlich, der Filter ist symmetrisch. Bei der Bildverarbeitung werden Korrelation und Faltung manchmal austauschbar verwendet, insbesondere bei neuronalen Netzen . Offensichtlich ist die Zeit immer noch relevant, wenn das Bild eine abstrakte Darstellung von zweidimensionalen Daten ist, wobei eine Dimension die Zeit ist - z. B. ein Spektrogramm.

Zusammenfassend gesagt, sind sowohl Korrelation als auch Faltung gleitende innere Produkte, die verwendet werden, um eine Sache auf eine andere zu projizieren, wenn sie sich über Raum oder Zeit ändern. Faltung wird verwendet, wenn die Reihenfolge wichtig ist, und wird normalerweise zum Transformieren der Daten verwendet. Korrelation wird normalerweise verwendet, um ein kleineres Objekt in einem größeren Objekt zu finden, dh um eine Übereinstimmung zu erzielen. Wenn mindestens eines der beiden "Dinge" symmetrisch ist, spielt es keine Rolle, welches Sie verwenden.

orodbhen
quelle
0

Lassen Sie die Signalverarbeitung beiseite, wenn Sie nur versuchen zu verstehen, was in Faltung und Korrelation vor sich geht, sind beide Vorgänge sehr ähnlich. Der einzige Unterschied besteht in der Faltung. Eine der Variablen wird invertiert (gespiegelt), bevor die Akkumulation des Produkts durchgeführt wird. Sehen Sie, dass ich das Wortsignal nirgendwo oben benutze . Ich spreche nur von den durchgeführten Operationen.

Kommen wir nun zur Signalverarbeitung.

Die Faltungsoperation wird verwendet, um die Ausgabe eines linearen zeitinvarianten Systems (LTI-System) bei gegebenem Eingangssignal ( x ) und Impulsantwort des Systems ( h ) zu berechnen . Um zu verstehen, warum nur die Faltungsoperation verwendet wird, um die Ausgabe eines LTI-Systems zu erhalten, gibt es eine große Ableitung. Die Ableitung finden Sie hier.

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

Die Korrelationsoperation wird verwendet, um die Ähnlichkeit zwischen den beiden Signalen x und y zu finden. Je höher der Korrelationswert, desto ähnlicher sind die beiden Signale.

Verstehe den Unterschied hier,

  • Faltung -> zwischen Signal und System (Filter)

  • Korrelation -> zwischen zwei Signalen

Aus Sicht der Signalanalyse wird die Faltungsoperation daher nicht verwendet. Aus Sicht der Signalanalyse wird nur die Korrelation verwendet. Während Faltung aus Sicht der Systemanalyse verwendet wird.

Der beste Weg, die Operationen der Faltung und Korrelation zu verstehen, besteht darin, zu verstehen, was passiert, wenn zwei Faltungen und Korrelationen zwischen zwei kontinuierlichen Variablen durchgeführt werden, wie in den Diagrammen in der Frage gezeigt.

Kartik Podugu
quelle