Pulse function with matlab
Show older comments
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
Paulo Silva
on 25 Feb 2011
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)
Paulo Silva
on 25 Feb 2011
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
on 25 Feb 2011
Paulo Silva
on 25 Feb 2011
I always assume that the amplitude is 1 and you didn't specify other value for it did you?
Paulo Silva
on 25 Feb 2011
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
on 25 Feb 2011
Paulo Silva
on 25 Feb 2011
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
on 25 Feb 2011
Answers (1)
voona srikar
on 4 Dec 2022
0 votes
t = 0 : 1/1000 : 1;
u=0*t;
h=exp(-t/2);
y = rectpuls(t);
b=conv(h,y);
plot(b)
Categories
Find more on Switches and Breakers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!