Main Content

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

conv

Faltung und polynomiale Multiplikation

Beschreibung

Beispiel

w = conv(u,v) gibt die Faltung der Vektoren u und v zurück. Wenn u und v Vektoren polynomialer Koeffizienten sind, ist deren Faltung äquivalent zur Multiplikation der beiden Polynome.

Beispiel

w = conv(u,v,shape) gibt einen Unterabschnitt der Faltung zurück, wie durch shape angegeben. Beispielsweise gibt conv(u,v,'same') nur den zentralen Teil der Faltung zurück, mit derselben Größe wie u, und conv(u,v,'valid') gibt nur den Teil der Faltung zurück, der ohne die mit Nullen aufgefüllten Kanten berechnet wurde.

Beispiele

alle reduzieren

Erstellen Sie die Vektoren u und v, die die Koeffizienten der Polynome x2+1 und 2x+7 enthalten.

u = [1 0 1];
v = [2 7];

Verwenden Sie Faltung, um die Polynome zu multiplizieren.

w = conv(u,v)
w = 1×4

     2     7     2     7

w enthält die polynomialen Koeffizienten für 2x3+7x2+2x+7.

Erstellen Sie zwei Vektoren und falten Sie diese.

u = [1 1 1];
v = [1 1 0 0 0 1 1];
w = conv(u,v)
w = 1×9

     1     2     2     1     0     1     2     2     1

Die Länge von w ist length(u)+length(v)-1, in diesem Beispiel also 9.

Erstellen Sie zwei Vektoren. Ermitteln Sie den zentralen Teil der Faltung von u und v, der dieselbe Größe aufweist wie u.

u = [-1 2 3 -2 0 1 2];
v = [2 4 -1 1];
w = conv(u,v,'same')
w = 1×7

    15     5    -9     7     6     7    -1

w hat eine Länge von 7. Die vollständige Faltung hätte eine Länge von length(u)+length(v)-1, in diesem Beispiel also 10.

Eingabeargumente

alle reduzieren

Eingabevektoren, angegeben als Zeilen- oder Spaltenvektoren. Die Vektoren u und v können unterschiedliche Längen oder Datentypen aufweisen.

Wenn u oder v den Typ single aufweisen, weist die Ausgabe den Typ single auf. Anderenfalls konvertiert conv Eingaben in den Typ double und gibt den Typ double zurück.

Datentypen: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Unterstützung komplexer Zahlen: Ja

Unterabschnitt der Faltung, angegeben als 'full', 'same' oder 'valid'.

'full'

Vollständige Faltung (Standard).

'same'

Zentraler Teil der Faltung mit derselben Größe wie u.

'valid'

Nur die Teile der Faltung, die ohne die mit Nullen aufgefüllten Kanten berechnet werden. Wenn Sie diese Option verwenden, ist length(w) gleich max(length(u)-length(v)+1,0), es sei denn, length(v) ist gleich null. Wenn length(v) = 0, dann length(w) = length(u).

Mehr über

alle reduzieren

Faltung

Die Faltung zweier Vektoren, u und v, stellt den Überlappungsbereich unter den Punkten dar, wenn v durch u gleitet. Algebraisch ist Faltung dieselbe Operation wie die Multiplikation von Polynomen, deren Koeffizienten die Elemente von u und v sind.

Nehmen wir an, dass m = length(u) und n = length(v). Dann ist w der Vektor mit der Länge m+n-1, dessen k. Element

w(k)=ju(j)v(kj+1).

ist.

Die Summe entspricht allen Werten von j, die zu zulässigen Indexzeichen für u(j) und v(k-j+1) führen, insbesondere j = max(1,k+1-n):1:min(k,m). Wenn m = n, ergibt dies

w(1) = u(1)*v(1)
w(2) = u(1)*v(2)+u(2)*v(1)
w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1)
...
w(n) = u(1)*v(n)+u(2)*v(n-1)+ ... +u(n)*v(1)
...
w(2*n-1) = u(n)*v(n)

Erweiterte Fähigkeiten

GPU-Codegenerierung
Generieren von CUDA® Code für NVIDIA® Grafikprozessoren mit dem GPU Coder™.

Versionsverlauf

Eingeführt vor R2006a

Siehe auch

| | | | (Signal Processing Toolbox) |