Faltung
- Aktualisiert2026-07-27
- 5 Minute(n) Lesezeit
Erfordert: Full or Professional Edition
Berechnet die Faltung der Eingangsfolgen X und Y. Zur Bestimmung der Instanz des polymorphen VIs verbinden Sie Daten mit den Eingängen X und Y oder wählen Sie die Instanz manuell aus.

1D-Faltung
Die lineare Faltung der Signale x(t) und y(t) ist folgendermaßen definiert:
wobei das Symbol * für lineare Faltung steht.
Wenn Algorithmus auf direkt eingestellt ist, wird die diskrete Implementierung der linearen Faltung zur Ermittlung von X * Y nach folgender Gleichung berechnet:
für i = 0, 1, 2, … , M+N–2
wobei h gleich X * Y,
N ist die Anzahl der Elemente in X, M ist die Anzahl der Elemente in Y, die indizierten Elemente außerhalb der Bereiche von X und Y sind gleich 0, wie in den folgenden Beziehungen dargestellt:xjj = 0, j < 0 oder j ≥ N
und
yjj = 0, j < 0 oder j ≥ M.
Wenn Algorithmus auf Frequenzbereich eingestellt ist, wird die lineare Faltung durch Befolgung der folgenden Schritte berechnet:
- Zuerst wird das Ende von X und Y mit Nullen aufgefüllt, so dass beide die Länge M + N – 1 haben (vgl. die folgenden Gleichungen).
- Als Zweites führt das VI anhand der folgenden Gleichungen die Fourier-Transformation von X' und Y' durch:
- Danach wird X'(f) mit Y'(f) multipliziert und die inverse Fourier-Transformation des Produkts gebildet. Das Ergebnis davon ist die lineare Faltung von X und Y, wie in der folgenden Gleichung dargestellt:
Auf diese Weise wird eine lineare Faltung, keine zirkuläre erzielt. Da jedoch x ( t ) * y( t ) N ⇔ X(f )Y( f ) ein Fourier-Transformationspaar ist, wobei x ( t ) * y( t ) N die kreisförmige Faltung von x(t) und y(t) ist, können Sie eine kreisförmige Version der Faltung erzeugen. Zur Berechnung der zirkulären Faltung können Sie das Blockdiagramm zum Beispiel so aufbauen, wie in der folgenden Abbildung dargestellt.

2D-Faltung
Wenn Algorithmus auf direkt eingestellt ist, wird die zweidimensionale Faltung der Eingangsmatrizen X und Y anhand der folgenden Gleichung berechnet:
für i = 0, 1, 2, … , M1+M2–2 und j = 0, 1, 2, … , N1+N2–2
wobei h gleich X * Y,
M1 die Zeilenanzahl der Matrix X, N1 die Spaltenanzahl der Matrix X, M2 die Zeilenanzahl der Matrix Y, N2 die Spaltenanzahl der Matrix Y, Die indizierten Elemente außerhalb der Bereiche von X und Y sind gleich 0, wie in den folgenden Beziehungen dargestellt:x(m,n), m < 0 oder m ≥ M1 oder n < 0 oder n ≥ N1
und
y(m,n) , m < 0 oder m ≥ M2 oder n < 0 oder n ≥ N2.
Wenn Algorithmus auf Frequenzbereich eingestellt ist, wird die zweidimensionale Faltung durch Befolgung der folgenden Schritte berechnet:
- Zunächst werden X und Y rechts mit Nullen aufgefüllt, so dass ihre Größe (M1 + M2 – 1) mal (N1 + N2 – 2) beträgt (vgl. die folgenden Gleichungen).
- Als Zweites führt das VI anhand der folgenden Gleichungen die Fourier-Transformation von X' und Y' durch:
- Danach wird X'(f) mit Y'(f) multipliziert und die inverse Fourier-Transformation des Produkts gebildet. Das Ergebnis davon ist die zweidimensionale Faltung von X und Y, wie in der folgenden Gleichung dargestellt:
Die Größe der Ausgangsmatrix X * Y richtet sich nach der Ausgangsgröße (vgl. Abbildung).

-
full
Die Ausgangsmatrix X * Y lautet ([M1+M2–1], [N1+N2–1]).
-
size X
Diese Funktion ist bei der Bildverarbeitung von Nutzen. Wenn X die zu filternde Grafik ist, dann ist Y eine kleine Matrix, die als Faltungskern bezeichnet wird. X * Y ist die gefilterte Grafik. Sie ist genauso groß wie die Grafik X. Die M1, N1-Ausgangsmatrix ist der zentrale Bestandteil der Ausgangsmatrix, wenn die Ausgangsgröße auf full eingestellt ist.
-
compact
Bei einer Ausgangsgröße von full oder size X müssen die fehlenden Elemente zur Berechnung der Randelemente von X * Y mit Nullen aufgefüllt werden. Diese Randelemente werden bei der Ausgangsgröße "compact" entfernt. Die Ausgangsmatrix (M1–M2+1) (N1–N2+1) ist der zentrale Teil der Ausgangsmatrix, wenn die Ausgangsgröße auf eingestellt ist. size X
Beispiele
Die folgenden Beispieldateien sind in LabVIEW enthalten.
- labview\examples\Signal Processing\Signal Operation\Edge Detection with 2D Convolution.vi