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('Without using cconv method, circular convolution is: ');
l1=length(x);
l2=length(h);
x=[x zeros(1,n-l1)];
h=[h zeros(1,n-l2)];
y=zeros(1,n);
for i=1:n
for j=1:n
k=mod(i-j,n);
k=k+1;
y(i)=y(i)+x(j)*h(k);
end
end
disp(y);
%Calculating Circular Convolution using cconv() method
disp("By formula:");
Z=cconv(x,h,n);
disp(Z);
Output:
Enter the first sequence: [1 2 1 2]
Enter the second sequence: [4 3 2 1]
1 2 1 2
2 1 2 1
1 2 1 2
2 1 2 1
Circular Convolution by Matrix Method:
14 16 14 16
Without using cconv method, circular convolution is:
14 16 14 16
By formula:
14 16 14 16
Comments
Post a Comment