Contenido principal

conv

Convolución y multiplicación polinomial de objetos fi

Descripción

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.

ejemplo

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

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

expandir todo

Historial de versiones

Introducido en R2009b

Consulte también