how to sum unit function and step function

7 views (last 30 days)
chae hyeon shin
chae hyeon shin on 1 May 2020
Answered: VIVEK on 20 Sep 2022
I want to calculate the convolution of x(t) and h(t).
Here is my code :
clear;
t = [ -10 : 0.01 : 10 ];
xt = ( t >= -2 ) & ( t <= 2) + (t == 1)
ht = ( t >= -1 ) & ( t <= 2) + 2*(t == 0) + (t == 3)
plot(t,ht);
ylim([-0.5 2]);
yt = conv(xt,ht,'same');
t1 = [-inf, inf];
plot(t1,yt);
I'm not sure that xt and ht are correct.
Moreover, there is an error with last line.
HELP ME

Answers (2)

Ajay Pattassery
Ajay Pattassery on 4 May 2020
I assume you are trying to do the convolution of xt, ht as attached in the image.
t = ( -10 : 0.01 : 10 );
xt = (( t >= -2 ) & ( t <= 2)) + (t == 1);
ht = (( t >= -1 ) & ( t <= 2)) + 2*(t == 0) + (t == 3);
subplot(3,1,1);plot(t,xt);
ylabel('xt');
subplot(3,1,2);plot(t,ht)
ylabel('ht');
yt = .01*conv(xt,ht,'same');
subplot(3,1,3);plot(t,yt);
ylabel('yt');
I have just edited your above code.
If you are doing convolution of continuous signals by approximating as above in MATLAB, you need to multiply the output of conv with dt. In your case .01. What you are basically doing is approximating the continuous signal with boxes of width .01 and doing the discrete convolution. Hence while doing convolution, the integration can be achieved by mulitplying with dt.

VIVEK
VIVEK on 20 Sep 2022
t = ( -10 : 0.01 : 10 );
xt = (( t >= -2 ) & ( t <= 2)) + (t == 1);
ht = (( t >= -1 ) & ( t <= 2)) + 2*(t == 0) + (t == 3);
subplot(3,1,1);plot(t,xt);
ylabel('xt');
subplot(3,1,2);plot(t,ht)
ylabel('ht');
yt = .01*conv(xt,ht,'same');
subplot(3,1,3);plot(t,yt);
ylabel('yt');

Products

Community Treasure Hunt

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

Start Hunting!