MATLAB enthält eine vorgefertigte Faltungsfunktion.
Bildnachweis: Thinkstock Images/Comstock/Getty Images
Faltung ist eine mathematische Operation, die zwei Funktionen relativ zur Überlappung einer Funktion vermischt, wenn sie über eine andere verschoben wird. Obwohl MATLAB eine vorgefertigte Faltungsfunktion enthält, ist es möglich, das diskrete Faltungsintegral selbst zu berechnen. Die diskrete Faltung zweier Funktionen f und g ist definiert als die Summe über den Bereich 0 bis j von f (j) * g (k – j).
Schritt 1
Definieren Sie zwei Vektoren f und g, die die beiden Funktionen enthalten, die Sie falten möchten. Die Längen von f und g müssen nicht gleich sein. Die Ergebnislänge der Faltung k ist um eins kleiner als die Summe der Längen von f und g:
Video des Tages
m = Länge (f); n = Länge (g); k = m + n – 1;
Schritt 2
Definieren Sie den Bereich j, über den die Faltung auftritt. Der Wert von j ist der Bereich, in dem Indizes der beiden zu faltenden Funktionen f (j) und g (k + 1 – n) zulässig sind. Der zu k addierte Wert von 1 soll der Tatsache Rechnung tragen, dass MATLAB mit der Indizierung von Vektoren bei 1 statt bei 0 beginnt:
j = max (1,k+1-n):min (k, m)
Schritt 3
Platz für das Ergebnis der Faltung vorbelegen:
my_result = Nullen (k);
Schritt 4
Schreiben Sie eine for-Schleife, um die Werte von k zu durchlaufen:
für result_index = 1:k
Schritt 5
Berechnen Sie die Faltung für alle Werte von j:
my_result (k) = Summe (f(j) .* g (k-j+1));
Schritt 6
Schließen Sie die for-Schleife mit dem Befehl "end".