Convolution, discrete time (not using conv)

10 views (last 30 days)
umar
umar on 17 Dec 2011
Answered: sahiba tasneem on 24 Jul 2017
Write a MATLAB routine that generally computes the discrete convolution between two discrete signals in time-domain. (Do not use the standard MATLAB “conv” function.) • Apply your routine to compute the convolution rect( t / 4 )*rect( 2 t / 3 ).
  2 Comments
umar
umar on 18 Dec 2011
If i use below coding, how to put rect(t/4) and rect(2t/3)in x and h? Please can anyone answer this?
% 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');
Friðrik Hover
Friðrik Hover on 21 Feb 2016
Running this code and and also the built in conv function to convolute two signals makes the x axis wrong. How do you fix that?

Sign in to comment.

Answers (2)

Naz
Naz on 17 Dec 2011
just implement the equation http://en.wikipedia.org/wiki/Convolution#Circular_discrete_convolution and use sum from 1 to N instead of 0 to N-1
  4 Comments
umar
umar on 17 Dec 2011
to be honest. We are taking signal course. We do not learn about MATLAB in this course. Actually, i do not have any idea how to start.

Sign in to comment.


sahiba tasneem
sahiba tasneem on 24 Jul 2017
Can u plz describe the code

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!