conv
Convoluzione e moltiplicazione polinomiale
Sintassi
Descrizione
w = conv(
restituisce la convoluzione dei vettori u,v
)u
e v
. Se u
e v
sono vettori di coefficienti polinomiali, la loro convoluzione equivale a moltiplicare i due polinomi.
w = conv(
restituisce una sottosezione della convoluzione, come specificata da u,v
,shape
)shape
. Ad esempio, conv(u,v,'same')
restituisce solo la parte centrale della convoluzione, della stessa dimensione di u
, mentre conv(u,v,'valid')
restituisce solo la parte di convoluzione calcolata senza i bordi di riempimento con zeri (zero padding).
Esempi
Moltiplicazione polinomiale tramite convoluzione
Creare vettori u
e v
che contengano i coefficienti dei polinomi e .
u = [1 0 1]; v = [2 7];
Utilizzare la convoluzione per moltiplicare i polinomi.
w = conv(u,v)
w = 1×4
2 7 2 7
w
contiene i coefficienti polinomiali per .
Convoluzione vettoriale
Creare due vettori ed eseguire la loro convoluzione.
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
La lunghezza di w
è length(u)+length(v)-1
che, in questo esempio, è 9
.
Parte centrale della convoluzione
Creare due vettori. Trovare la parte centrale della convoluzione di u
e v
che abbia la stessa dimensione di 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
ha una lunghezza di 7
. La lunghezza della convoluzione completa sarebbe length(u)+length(v)-1
che, in questo esempio, sarebbe pari a 10.
Argomenti di input
u,v
— Vettori di input
vettori
Vettori di input, specificati come vettori di riga o di colonna. I vettori u
e v
possono essere di lunghezze diverse o avere tipi di dati diversi.
Quando u
o v
sono di tipo single
, l’output è di tipo single
. Diversamente, conv
converte gli input nel tipo double
e restituisce il tipo double
.
Tipi di dati: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Supporto numeri complessi: Sì
shape
— Sottosezione della convoluzione
'full'
(predefinito) | 'same'
| 'valid'
Sottosezione della convoluzione, specificata come 'full'
, 'same'
o 'valid'
.
'full' | Convoluzione completa (predefinita). |
'same' | Parte centrale della convoluzione della stessa dimensione di |
'valid' | Solo le parti di convoluzione calcolate senza i bordi di riempimento con zeri (zero padding). Utilizzando questa opzione, |
Ulteriori informazioni
Convoluzione
La convoluzione di due vettori u
e v
, rappresenta l’area di sovrapposizione sotto i punti mentre v
scorre attraverso u
. Algebricamente, la convoluzione è la stessa operazione di moltiplicazione di polinomi i cui coefficienti sono gli elementi di u
e v
.
Considerare m = length(u)
e n = length(v)
. Quindi w
è il vettore di lunghezza m+n-1
il cui k
-esimo elemento è
La somma si riferisce a tutti i valori di j
che determinano pedici ammessi per u(j)
e v(k-j+1)
, specificatamente j
=
max(1,k+1-n):1:min(k,m)
. Quando m
=
n
si ottiene
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)
Funzionalità estese
Tall array
Esegui calcoli con array che hanno più righe di quelle allocabili in memoria.
Note su utilizzo e limitazioni:
Gli input
u
ev
devono essere vettori a colonna.Se
shape
è'full'
(predefinita), solo uno diu
ov
può essere un tall array.Se
shape
è'same'
o'valid'
,v
non può essere un tall array.
Per maggiori informazioni, vedere Tall Array.
Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.
Per informazioni sulle limitazioni della generazione di codice C/C++, vedere Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder).
Generazione di codice GPU
Genera codice CUDA® per GPU NVIDIA® con GPU Coder™.
Ambiente basato su thread
Esegui il codice in background usando MATLAB® backgroundPool
oppure accelera il codice con Parallel Computing Toolbox™ ThreadPool
.
Questa funzione supporta completamente gli ambienti basati su thread. Per maggiori informazioni, vedere Run MATLAB Functions in Thread-Based Environment.
Array GPU
Accelera il codice mediante esecuzione su un’unità di elaborazione grafica (GPU) con Parallel Computing Toolbox™.
Questa funzione supporta completamente gli array di GPU. Per maggiori informazioni, vedere Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Array distribuiti
Partiziona array di grandi dimensioni nella memoria combinata del cluster con Parallel Computing Toolbox™.
Questa funzione supporta completamente gli array distribuiti. Per maggiori informazioni, vedere Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Cronologia versioni
Introduzione prima di R2006a
Apri esempio
Si dispone di una versione modificata di questo esempio. Desideri aprire questo esempio con le tue modifiche?
Comando MATLAB
Hai fatto clic su un collegamento che corrisponde a questo comando MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB. I browser web non supportano i comandi MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)