conv

Purpose

Computes the convolution of two vectors.

Format

c = conv(b, x, f, l)
Parameters:
  • b (Nx1 vector) –

  • x (Lx1 vector) –

  • f (scalar) – the first convolution to compute.

  • l (scalar) – the last convolution to compute.

Returns:

c (Qx1 result) –

where: \(Q = (l - f + 1)\)

If f is 0, the first to the l’th convolutions are computed. If l is 0, the f’th to the last convolutions are computed. If f and l are both zero, all the convolutions are computed.

Examples

Full convolution

The following example is equivalent to the following polynomial multiplication \((x^2 + 3)(2x + 7) = 2x^3 + 7x^2 + 6x + 21\)

// Vectors
u = {1, 0, 3};
v = {2, 7};

/*
** Set f, l equal to zero and
** all the convolutions are computed
*/
print conv(u, v, 0, 0);

After the code the following is printed to the screen:

 2.0000
 7.0000
 6.0000
21.0000

Partial convolution

// Vectors
u = {1, 0, 3};
v = {2, 7};

/*
** In this case we
** set f =1 and l =2 to see just the
** first and second convolutions
*/
print conv(u, v, 1, 2);

After the code the following is printed to the screen:

2.0000
7.0000

Remarks

If x and b are vectors of polynomial coefficients, this is the same as multiplying the two polynomials.

See also

polymult()