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