Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

conv

Convolución y multiplicación polinómica de objetos fi

Descripción

ejemplo

c = conv(a,b) devuelve la convolución de los vectores de entrada a y b, y al menos uno de ellos debe ser un objeto fi.

ejemplo

c = conv(a,b,shape) devuelve una subsección de la convolución, según lo especificado por shape.

Ejemplos

contraer todo

Halle la convolución de una secuencia de 22 muestras con un filtro FIR de 16 coeficientes.

x es una secuencia de 22 muestras de valores con signo con una longitud de palabra de 16 bits y una longitud de fracción de 15 bits. h es el filtro FIR de 16 coeficientes.

u = (pi/4)*[1 1 1 -1 -1 -1 1 -1 -1 1 -1]; 
x = fi(kron(u,[1 1]));
h = firls(15, [0 .1 .2 .5]*2, [1 1 0 0]);

Dado que x es un objeto fi, no es necesario convertir h en un objeto fi antes de realizar la convolución. Esto se debe a que la función conv ya lo hace automáticamente utilizando el escalado de máxima precisión.

Use la función conv para convolucionar los dos vectores.

y = conv(x,h);

La operación da como resultado un objeto fi y con signo, con una longitud de palabra de 36 bits y una longitud de fracción de 31 bits. Las propiedades fimath predeterminadas que se asocian a las entradas determinan el numerictype de la salida. La salida no tiene un objeto fimath local.

Cree dos vectores fi. Halle la parte central de la convolución de a y b que tiene el mismo tamaño que a.

a = fi([-1 2 3 -2 0 1 2]);
b = fi([2 4 -1 1]);
c = conv(a,b,'same')
c = 

    15     5    -9     7     6     7    -1

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 34
        FractionLength: 25

c tiene una longitud de 7. La convolución completa tendría una longitud de length(a)+length(b)-1, que en este ejemplo sería 10.

Argumentos de entrada

contraer todo

Vectores de entrada, especificados como vectores fila o columna.

Si cualquiera de las entradas es un tipo de datos predefinido, conv lo convierte en un objeto fi utilizando las reglas de máxima precisión antes de realizar la convolución.

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

Subconjunto de convolución, especificado como uno de estos valores:

  • 'full': devuelve la convolución completa. Esta opción es la forma predeterminada.

  • 'same': devuelve la parte central de la convolución que tiene el mismo tamaño que el vector de entrada a.

  • 'valid': devuelve solo las partes de la convolución que la función calcula sin bordes rellenados con ceros. Con esta opción, la longitud del vector de salida c es max(length(a)-max(0,length(b)-1),0).

Tipos de datos: char

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 a medida que v se desliza por u. Desde un punto de vista algebraico, 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), Entonces, w es el vector de longitud m+n-1, cuyo k-ésimo elemento es

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

La suma es sobre todos los valores de j que dan lugar a subíndices legales para u(j) y v(k-j+1), concretamente j = max(1,k+1-n):1:min(k,m). Cuando m = n, se obtiene

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)

Algoritmos

Las propiedades fimath asociadas a las entradas determinan las propiedades numerictype del objeto fi c de salida:

  • Si a o b tienen un objeto fimath local, conv utiliza ese objeto fimath para calcular cantidades intermedias y determinar las propiedades numerictype de c.

  • Si a y b no tienen un objeto fimath adjunto, conv utiliza el objeto fimath predeterminado para calcular las cantidades intermedias y determinar las propiedades numerictype de c.

Si cualquiera de las entradas es un tipo de datos predefinido, conv lo convierte en un objeto fi utilizando las reglas de máxima precisión antes de realizar la convolución.

El objeto fi c de salida utiliza siempre el valor predeterminado fimath.

Capacidades ampliadas

Historial de versiones

Introducido en R2009b

Consulte también