We use the conv(x1,x2) function in Matlab to perform convolution of two discrete signals.
For example, to perform the convolution of two discrete time sequences x1 (n) = {1, 0, 1,2}
and x2 (n) = {1, 2, 4, 6}.
Code:
x1=[1,0,1,2]; %1st sequence
N1=length(x1); %stores length of 1st sequence
n1=0:1:N1-1; %range of x axis for 1st graph of 1st sequence
subplot(1,3,1); % in a 1x3 grid, 1st sequence occupies the 1st grid
stem(n1,x1,'linewidth',1.5); %to plot the sequence specifying time axis, signal and line width
xlabel('n1----->'); %title of x axis
ylabel('x1----->');%title of y axis
grid on;
x2=[1,2,4,6];%2nd sequence
N2=length(x2); %stores length of 2nd sequence
n2=0:1:N2-1; %range of x axis for 2nd graph of 2nd sequence
subplot(1,3,2); % in a 1x3 grid, 2nd sequence occupies the 2nd grid
stem(n2,x2,'red','linewidth',1.5); %to plot the sequence specifying time axis,signal,line width and colour
xlabel('n2----->');%title of x axis
ylabel('x2----->');%title of y axis
grid on;
x3=conv(x1,x2);%Performing Convolution
n3=0:1:N1+N2-2;%x-axis specification for convoluted signal
subplot(1,3,3); % in a 1x3 grid, convoluted signal occupies the 3rd grid
stem(n3,x3,'black','linewidth',1.5);%to plot the convoluted sequence
xlabel('n3----->'); %title of x axis
ylabel('x3----->'); %title of y axis
grid on;
Output:
The graph in blue represents the signal x1(n) and the graph in red represents the signal x2(n) and the graph in black represents the convoluted signal of x3 = x1(n).x2(n).
Comments
Post a Comment