You are on page 1of 2

LINEAR CONVOLUTION a) CONVOLUTION USING CONV MATLAB CODE %convolution of sequence x and h using Conv clc;clear all; close

all; x=input('Enter the input sequence x[n]= '); lx=input('Enter the starting time index of x[n] ='); h=input('Enter the impulse response h[n]= '); lh=input('Enter the starting time index of h[n] ='); y=conv(x,h); n=lx+lh:length(y)+lx+lh-1; stem(n,y); ylabel('amplitude'); xlabel('time index'); title('Linear convolution output'); SAMPLE INPUTS Enter the input sequencex[n]= [1 2 3 4] Enter the starting time index of x[n] =-2 Enter the impulse response h[n]= [3 3 4] Enter the starting time index of h[n] =-1

b)CONVOLUTION WITHOUT USING CONV MATLAB CODE %Linear conv using for % A GENERALAZED CONVOLUTION COMPUTING CODE IN MATLAB WITHOUT USING MATLAB BUILTIN FUNCTION conv(x,h) close all clear all x=input('Enter x: ') h=input('Enter h: ') m=length(x); n=length(h); X=[x,zeros(1,n)]; H=[h,zeros(1,m)]; for i=1:n+m-1 Y(i)=0; for j=1:m if(i-j+1>0) Y(i)=Y(i)+X(j)*H(i-j+1); else end end end Y stem(Y); ylabel('Y[n]'); xlabel('----->n'); title('Convolution of Two Signals without conv function'); SAMPLE INPUTS enter first sequence[1 2 3 4] enter second sequence[3 3 4]

CIRCULAR CONVOLUTION MATLAB CODE %circular convolution of two sequences clc; clear all; close all; %Circular convolution x=input('first seqn'); h=input('second seqn'); subplot(3,1,1);stem(x); subplot(3,1,2);stem(h); n1=length(x); n2=length(h); N=max(n1,n2); x=[x,zeros(1,N-n1)]; h=[h,zeros(1,N-n2)]; for n=1:N y(n)=0; for k=1:N y(n)=y(n)+x(k)*h(mod(n+N-k,N)+1); end; end; subplot(3,1,3);stem(y); SAMPLE INPUTS first seqn[1 2 3 4] second seqn[4 3 2 1] RESULT The circular convolution of two given sequences was performed using MATLAB and the resulting sequence was plotted. y = 24 22 24 30

You might also like