conv
Faltung und polynomiale Multiplikation
Beschreibung
gibt einen Unterabschnitt der Faltung zurück, wie durch w = conv(u,v,shape)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
Erstellen Sie die Vektoren u und v, die die Koeffizienten der Polynome und 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 .
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
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 |
"valid" | Nur die Teile der Faltung, die ohne die mit Nullen aufgefüllten Kanten berechnet werden. Wenn Sie diese Option verwenden, ist |
Ausgabeargumente
Gefalteter Vektor, zurückgegeben als Zeilen- oder Spaltenvektor.
Mehr über
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
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)
Mithilfe dieser Definition berechnet conv die direkte Faltung zweier Faktoren statt der FFT-basierten Faltung.
Erweiterte Fähigkeiten
Die Funktion conv unterstützt Tall-Arrays mit folgenden Verwendungshinweisen und Einschränkungen:
Die Eingaben
uundvmüssen Spaltenvektoren sein.Wenn
shapegleich"full"ist (Standard), kann nur entwederuodervein Tall-Array sein.Wenn
shapegleich"same"oder"valid"ist, kannvkein Tall-Array sein.
Weitere Informationen finden Sie unter Tall-Arrays.
Hinweise zur Verwendung und Einschränkungen:
Das Argument
shape, so verwendet, muss zum Zeitpunkt der Codegenerierung eine Konstante sein.Für die Eingabeargumente
uundvgilt:Sie müssen zum Zeitpunkt der Codegenerierung den Eingabevektor als Vektor mit fester Größe oder variabler Länge angeben. Entweder die erste oder die zweite Dimension des Vektors können eine variable Größe aufweisen. Alle anderen Dimensionen müssen die feste Größe 1 aufweisen.
Die Eingabevektoren
uundvmüssen dieselbe Ausrichtung aufweisen.
Siehe die Verwendungshinweise und Einschränkungen im Abschnitt zur C/C++ Codegenerierung. Dieselben Verwendungshinweise und Einschränkungen gelten auch für die Grafikkarten-Codegenerierung.
Die Funktion conv bietet vollständige Unterstützung für Thread-basierte Umgebungen. Weitere Informationen finden Sie unter Run MATLAB Functions in Thread-Based Environment.
Die Funktion conv bietet vollständige Unterstützung für Grafikkarten-Arrays. Zum Ausführen der Funktion auf einer Grafikkarte geben Sie die Eingabedaten als gpuArray (Parallel Computing Toolbox) an. Weitere Informationen finden Sie unter Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Die Funktion conv bietet vollständige Unterstützung für verteilte Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Versionsverlauf
Eingeführt vor R2006aWenn Sie mithilfe von w = conv(u,v) oder w = conv(u,v,"full") eine vollständige Faltung berechnen, ist die Ausgabe w ein Zeilenvektor, es sei denn, die Eingabevektoren u und v sind beide Spaltenvektoren.
Wenn Sie zum Beispiel einen Zeilenvektor und einen Spaltenvektor falten, ist die Ausgabe ein Zeilenvektor.
u = [1 0 1]; v = [2; 7; 4]; w = conv(u,v)
w =
2 7 6 7 4u = [1; 0; 1]; v = [2; 7; 4]; w = conv(u,v)
w =
2
7
6
7
4Zum Vergleich: Bei der Berechnung einer vollständigen Faltung in früheren Versionen gab die Funktion conv je nach Ausrichtung und Länge von u und v entweder einen Zeilen- oder einen Spaltenvektor zurück.
In früheren Versionen gab conv zum Beispiel die vollständige Faltung eines 1x3-Zeilenvektors und eines 3x1-Spaltenvektors als 5x1-Spaltenvektor zurück.
u = [1 0 1]; v = [2; 7; 4]; w = conv(u,v)
w =
2
7
6
7
4conv die vollständige Faltung eines 1x3-Zeilenvektors und eines 2x1-Spaltenvektors als 1x4-Zeilenvektor zurück.u = [1 0 1]; v = [2; 7]; w = conv(u,v)
w =
2 7 2 7Die Ausgabe von w = conv(u,v,"same") und w = conv(u,v,"valid") bleibt unverändert und folgt weiterhin der Orientierung des ersten Eingabevektors, u.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)