MATLAB Function Reference | Search  Help Desk |
conv | See Also |
Convolution and polynomial multiplication
w = conv(u,v)
w = conv(u,v)
convolves vectors u
and v
. Algebraically, convolution is the same operation as multiplying the polynomials whose coefficients are the elements of u
and v
.
Let m
=
length(u)
and n
=
length(v)
. Then w
is the vector of length m+n-1
whose k
th element isj
which lead to legal subscripts for u(j)
and v(k+1-j)
, specifically j
=
max(1,k+1-n)
: min(k,m)
. When m
=
n
, this gives
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)The convolution theorem says, roughly, that convolving two sequences is the same as multiplying their Fourier transforms. In order to make this precise, it is necessary to pad the two vectors with zeros and ignore roundoff error. Thus, if X = fft([x zeros(1,length(y)-1)]) and Y = fft([y zeros(1,length(x)-1)])
convmtx
, xconv2
, xcorr
, in the Signal Processing Toolbox, and:
deconv
Deconvolution and polynomial division
filter
Filter data with an infinite impulse response (IIR) or
finite impulse response (FIR) filter