Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

conv

Convolución y multiplicación polinomial

Descripción

ejemplo

w = conv(u,v) devuelve la convolución de los vectores u y v. Si u y v son vectores de coeficientes polinomiales, convolucionarlos es equivalente a multiplicar los dos polinomios.

ejemplo

w = conv(u,v,shape) devuelve una subsección de la convolución, como se especifica en shape. Por ejemplo, conv(u,v,'same') devuelve solo la parte central de la convolución, del mismo tamaño que u, y conv(u,v,'valid') devuelve solo la parte de la convolución calculada sin los bordes con relleno cero.

Ejemplos

contraer todo

Cree vectores u y v que contengan los coeficientes de los polinomios x2+1 y 2x+7.

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

Utilice la convolución para multiplicar los polinomios.

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

     2     7     2     7

w contiene los coeficientes polinomiales de 2x3+7x2+2x+7.

Cree dos vectores y convoluciónelos.

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 longitud de w es length(u)+length(v)-1, que en este ejemplo es 9.

Cree dos vectores. Encuentre la parte central de la convolución de u y v que tenga el mismo tamaño que 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 tiene una longitud de 7. La convolución completa tendría una longitud de length(u)+length(v)-1, que en este ejemplo sería 10.

Argumentos de entrada

contraer todo

Vectores de entrada, especificados como vectores fila o columna. Los vectores u y v pueden tener longitudes o tipos de datos diferentes.

Cuando u o v son de tipo single, la salida es de tipo single. En caso contrario, conv convierte las entradas al tipo double y devuelve el tipo double.

Tipos de datos: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Soporte de números complejos:

Subsección de la convolución, especificada como 'full', 'same' o 'valid'.

'full'

Convolución completa (opción predeterminada).

'same'

Parte central de la convolución del mismo tamaño que u.

'valid'

Solo las partes de la convolución que se calculan sin los bordes con relleno cero. Con esta opción, length(w) es max(length(u)-length(v)+1,0), excepto cuando length(v) es cero. Si length(v) = 0, entonces length(w) = length(u).

Más acerca de

contraer todo

Convolución

La convolución de dos vectores, u y v, representa el área de superposición bajo los puntos cuando v abarca la misma longitud que u. Algebraicamente, la convolución es la misma operación que multiplicar polinomios cuyos coeficientes son los elementos de u y v.

Supongamos m = length(u) y n = length(v). w es el vector de longitud m+n-1 cuyo k-ésimo elemento es

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

.

La suma incluye todos los valores de j que dan lugar a subíndices válidos para u(j) y v(k-j+1), concretamente j = max(1,k+1-n):1:min(k,m). Cuando m = n, el resultado es

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)

Capacidades ampliadas

Generación de código de GPU
Genere código CUDA® para GPU NVIDIA® mediante GPU Coder™.

Consulte también

| | | | (Signal Processing Toolbox) |

Introducido antes de R2006a