Skip to main content

Convolution of two signals using conv() in Matlab

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

Popular posts from this blog

PN Sequence Generator Circuit Design in Multisim

 I tried doing a PN Sequence generator using a shift register in Multisim but it didn't work. However this one with d flip flops and xor gate did work somewhat. Here is the circuit.       Components Required:      1. 4D Flip Flops      2. XOR Gate      3. Function Generator for Clock Pulses      4. Oscilloscope       Circuit Design  :        Output:- Red Square waves- Clock Pulses Blue waves- PN sequence Hope this helps!

Matlab Code for Circular Convolution using Matrix Method and also not using cconv method

Matlab Code:   clc; clear all; close all; %Circular Convolution by Matrix Method x=input('Enter the first sequence: '); h=input('Enter the second sequence: '); n=max(length(h),length(x)); A=0; %To obtain a circular matrix for i=1:n     if i==1         for j=1:n             A(i,j)=x(j); %first row stores all the elements of x(n)         end     else     for j=1:n         if(j==1)             A(i,j)=x(n-i+2); %first column of rows from i=2 to n are x(n),                                                                                x(n-i+2),...,x(3),x(2)         else             A(i,j)=A(i-1,j-1); % the last (n-1) elements of present row is the                                                      fist (n-1) elements of the previous row          end     end     end end disp(A); X=A*h';  %To calculate matrix multiplication disp("Circular Convolution by Matrix Method:"); disp(X'); %Calculating Circular Convolution with out using cconv function disp('Wit