OBJECT: To write a program to compute Linear Convolution of any two sequences x(n) and h(n), using overlap add method. Sequences are as given below:
x(n) = { 1, 2, -1, 2, 3, -2, -3, -1, 1, 1, 2, -1} and h(n) = {1, 2, 3, -1}
SOURCE CODE:
x=input('Enter the sequence x(n) = '); h=input('Enter the sequence h(n) = '); n1=length(x); n2=length(h); N=n1+n2-1; h1=[h zeros(1,n2-1)]; n3=length(h1); y=zeros(1,N+n3-n2); H=fft(h1); for i=1:n2:n1 if i<=(n1+n2-1) x1=[x(i:i+n3-n2) zeros(1,n3-n2)]; else x1=[x(i:n1) zeros(1,n3-n2)]; end x2=fft(x1); x3=x2.*H; x4=round(ifft(x3)); if (i==1) y(1:n3)=x4(1:n3); else y(i:i+n3-1)=y(i:i+n3-1)+x4(1:n3); end end disp('The output sequence y(n)='); disp(y(1:N)); stem(y(1:N)); title('Overlap Add Method'); xlabel('n'); ylabel('y(n)');
OUTPUT:
Enter the sequence x(n) = [1 2 -1 2 3 -2 -3 -1 1 1 2 -1]
Enter the sequence h(n) = [1 2 3 -1]
The output sequence y(n)=
1 4 6 5 2 11 0 -16 -8 3 8 5 3 -5 1
Index of DSP Lab Manual.