Pulse function with matlab

I need to do the follwing, but i am relatively new so i want to make sure it's right
Generate a pulse function with a pulse width 1 second as an input function, x(t), and use the same exponential decay function as impulse response function, h(t). Using MATLAB to calculate the output of the system y(t).
t = 0 : 1/1000 : 1;
u=0*t;
h=exp(-t/2);
y = rectpuls(t);
b=conv(h,y);
plot(b)
ohh i am lost

8 Comments

Could it be something like this:
t = 0 : 1/1000 : 1;
u=ones(1,numel(t));
h=exp(-t/2);
b=conv(h,u);
c=conv(b,h);
plot(c)
clc;clear;clf
t = 0.001 : 1/1000 : 3;
u=[zeros(1,1000) ones(1,numel(t)/3) zeros(1,1000)];
h=exp(-t/2);
b=conv(u,h);
c=conv(h,b);
hold on
plot(c./1000000)
plot(u,'r')
plot(h,'g')
legend('output','pulse','exponential decay')
gedaa
gedaa on 25 Feb 2011
hey paulo, now for "u", the width is one second, not amplitude, or am i understanding it correctly
I always assume that the amplitude is 1 and you didn't specify other value for it did you?
If you want to change the amplitude just
Amp=1; %select here the amplitude of u
u=[zeros(1,1000) Amp*ones(1,numel(t)/3) zeros(1,1000)];
gedaa
gedaa on 25 Feb 2011
no i think i will leave the amplitude since it doesn't specifiy as you said, but, if i wanted to change instead of one second width, to 0.1 second, i would change all the 1000 to 100, right?
clc;clear;clf
T=1000; %value in miliseconds, 1000->1 second, 100->0.1 second
t = 1/T : 1/T : 3;
Amp=1 %amplitude of the pulse
u=[zeros(1,T) Amp*ones(1,numel(t)/3) zeros(1,T)];
h=exp(-t/2);
b=conv(u,h);
c=conv(h,b);
hold on
plot(c./1000000)
plot(u,'r')
plot(h,'g')
legend('output','pulse','exponential decay')
gedaa
gedaa on 25 Feb 2011
thank you sooo much, ur the best

Sign in to comment.

Answers (1)

voona  srikar
voona srikar on 4 Dec 2022
t = 0 : 1/1000 : 1;
u=0*t;
h=exp(-t/2);
y = rectpuls(t);
b=conv(h,y);
plot(b)

Asked:

on 24 Feb 2011

Answered:

on 4 Dec 2022

Community Treasure Hunt

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

Start Hunting!