% This file gives: (1) a brief Matlab tutorial of the "conv" function and % (2) an example of the convolution of two simple curves. % % (1) Convolution and polynomial multiplication, whose Syntax is w = conv(u,v). % Descriptionw = 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. % % Definition: % Let m = length(u) and n = length(v). % Then w is the vector of length m+n-1 whose kth element is % w(k)=SUM [u(j)v(k+1-j)]. % The sum is over all the values of j 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) % % Algorithm: % 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)]) % then conv(x,y) = ifft(X.*Y) % % (2) Below, here is a simple example of the convolution of sin(t) and % cos(t) with -2*pi < t < 2*pi. % t1=-2.*pi:0.001:2.*pi; s1=sin(t1);s2=cos(t1); oo=conv(s1,s2); % Curve 1: subplot(311); plot(t1,s1,'b');grid axis([-2.*pi 2.*pi min(s1) max(s1)]); title('sin(t), with -2\pi