Main Content

conv

Convoluzione e moltiplicazione polinomiale

Descrizione

esempio

w = conv(u,v) restituisce la convoluzione dei vettori u e v. Se u e v sono vettori di coefficienti polinomiali, la loro convoluzione equivale a moltiplicare i due polinomi.

esempio

w = conv(u,v,shape) restituisce una sottosezione della convoluzione, come specificata da 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

comprimi tutto

Creare vettori u e v che contengano i coefficienti dei polinomi x2+1 e 2x+7.

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 2x3+7x2+2x+7.

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.

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

comprimi tutto

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:

Sottosezione della convoluzione, specificata come 'full', 'same' o 'valid'.

'full'

Convoluzione completa (predefinita).

'same'

Parte centrale della convoluzione della stessa dimensione di u.

'valid'

Solo le parti di convoluzione calcolate senza i bordi di riempimento con zeri (zero padding). Utilizzando questa opzione, length(w) è max(length(u)-length(v)+1,0), eccetto quando length(v) è pari a zero. Se length(v) = 0, allora length(w) = length(u).

Ulteriori informazioni

comprimi tutto

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 è

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

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

Generazione di codice GPU
Genera codice CUDA® per GPU NVIDIA® con GPU Coder™.

Cronologia versioni

Introduzione prima di R2006a

Vedi anche

| | | | (Signal Processing Toolbox) |