conv
Convolución y multiplicación de polinomios
Sintaxis
Descripción
devuelve la convolución de los vectores w = conv(u,v)u y v. Si u y v son vectores de coeficientes polinomiales, convolucionarlos es equivalente a multiplicar los dos polinomios.
Ejemplos
Cree vectores u y v que contengan los coeficientes de los polinomios y .
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 .
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
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: Sí
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 |
"valid" | Solo las partes de la convolución que se calculan sin los bordes con relleno cero. Con esta opción, |
Argumentos de salida
Vector convolucionado, devuelto como vector fila o columna.
Más acerca de
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
.
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)
Usando esta definición, conv calcula la convolución directa de dos vectores en lugar de la convolución basada en FFT.
Capacidades ampliadas
La función conv es compatible con arreglos altos con las siguientes notas y limitaciones de uso:
Las entradas
uyvdeben ser vectores columna.Si
shapees"full"(opción predeterminada), solouovpuede ser un arreglo alto.Si
shapees"same"o"valid",vno puede ser un arreglo alto.
Para obtener más información, consulte Arreglos altos.
Notas y limitaciones de uso:
Si se utiliza, el argumento
shapedebe ser una constante en el tiempo de generación del código.Para los argumentos de entrada
uyv:Debe especificar el vector de entrada como un vector de tamaño fijo o de longitud variable en el tiempo de generación del código. La primera o la segunda dimensión del vector pueden ser de tamaño variable. El resto de dimensiones debe tener un tamaño fijo de 1.
Los vectores de entrada
uyvdeben tener la misma orientación.
Consulte las notas y limitaciones de uso en la sección de generación de código C/C++. Las mismas notas y limitaciones de uso son aplicables a la generación de código GPU.
La función conv es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en entornos basados en subprocesos.
La función conv es totalmente compatible con los arreglos de GPU. Para ejecutar la función en una GPU, especifique los datos de entrada como un gpuArray (Parallel Computing Toolbox). Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
La función conv es totalmente compatible con los arreglos distribuidos. Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006aCuando calcula una convolución completa usando w = conv(u,v) o w = conv(u,v,"full"), la salida w es un vector fila a menos que ambos vectores de entrada u y v sean vectores columna.
Por ejemplo, si convoluciona un vector fila y un vector columna, la salida es un vector fila.
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
4Por comparar, cuando se calcula una convolución completa en versiones anteriores, la función conv devolvía un vector fila o columna, en función de las orientaciones y longitudes de u y v.
Por ejemplo, en versiones anteriores, conv devolvía la convolución completa de un vector fila de 1 por 3 y un vector columna de 3 por 1 como un vector columna de 5 por 1.
u = [1 0 1]; v = [2; 7; 4]; w = conv(u,v)
w =
2
7
6
7
4conv devolvía la convolución completa de un vector fila de 1 por 3 y un vector columna de 2 por 1 como un vector fila de 1 por 4.u = [1 0 1]; v = [2; 7]; w = conv(u,v)
w =
2 7 2 7No hay cambios en la salida de w = conv(u,v,"same") o w = conv(u,v,"valid"), donde la salida sigue aún la orientación del primer vector de entrada 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.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- 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)