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.


icon

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 jN

und

yjj = 0, j < 0 oder jM.

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:
X'(f) = FFT(x') Y'(f) = FFT(y')
  • 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:
X * Y = IFFT(X'(f) · Y'(f))

Auf diese Weise wird eine lineare Faltung, keine zirkuläre erzielt. Da jedoch x ( t ) * y( t ) NX(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 mM1 oder n < 0 oder nN1

und

y(m,n) , m < 0 oder mM2 oder n < 0 oder nN2.

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:
X'(f) = FFT(x') Y'(f) = FFT(y')
  • 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:
X * Y = IFFT(X'(f) · Y'(f))

Die Größe der Ausgangsmatrix X * Y richtet sich nach der Ausgangsgröße (vgl. Abbildung).

  1. full

    Die Ausgangsmatrix X * Y lautet ([M1+M2–1], [N1+N2–1]).

  2. 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.

  3. 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