rectangle pulse start from (0,0) in matlab
Show older comments
Fs = 1e9;
t = 0:1/Fs:(4*1200e-9);
pulsewidth = 200e-9;
pulseperiods =[0:4]*1200e-9;
x = pulstran(t,pulseperiods,@rectpuls,pulsewidth);
plot(t,x)
2 Comments
Abhishek Gupta
on 21 Dec 2020
Hi,
Can you elaborate your question?
nune pratyusha
on 22 Dec 2020
Answers (1)
Abhishek Gupta
on 22 Dec 2020
Hi,
As per my understanding, you want to create a rectangular pulse with x=0 at t=0. The reason behind why you are not getting x=0 at t=0 is that you have mentioned pulseperiods = [0 0.12 0.24 0.36 0.48], which means the first pulse will be at x=0 with x=pulsewidth/2 at t=0.
One possible workaround would be to start the pulse from x=0 by offsetting the pulse period with (pulsewidth/1.999). Note that if you would shift by exactly (pulsewidth/2) then you would get x=1 at t=0. To avoid the same, it would be preferrable to offset by a number slightly greater than half of the pulsewidth.
The implementation would look something like this: -
Fs = 1e9;
t = 0:1/Fs:(4*1200e-9);
pulsewidth = 200e-9;
pulseperiods = [0:4]*1200e-9 + pulsewidth/1.999;
x = pulstran(t,pulseperiods,@rectpuls,pulsewidth);
plot(t,x);
Output pulse:-

2 Comments
nune pratyusha
on 22 Dec 2020
Abhishek Gupta
on 22 Dec 2020
Accept the answer if it worked for you.
Categories
Find more on MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!