How to generate a square wave with random normal distributed period and pulse width?
Show older comments
Hi,
for example: a square wave signal with a period of 40-50 and a pulse width of 20-30, amplitude should be 1 I need it to be a continuous signal, each wave with random period and pulse width
so basically i need a row of 1s followed by a row of 0s followed by a new random row of 1s and so on...
I have the signal building toolbox, don't know if this helps
Thank you
Answers (1)
It'll be something like this,
T=5*randn+45; %duration
W=5*randn+25; %pulse width
t=linspace(0,T,1000);
pulse=(t<=W);
plot(t,pulse); ylim([-1,2]);
5 Comments
Killimangiro
on 1 Jul 2013
Matt J
on 1 Jul 2013
Well, I think that's pretty much what you get if you wrap my code in a for loop. What about this, for generating a pulse train
numpulses=10;
Pcell=cell(1,numpulses);
dt=.001;
for i=1:numpulses
T=5*randn+45; %duration
W=5*randn+25; %pulse width
t=0:dt:T;
Pcell{i}=(t<=W);
end
pulse=[Pcell{:}];
t=(0:length(pulse)-1)*dt;
plot(t,pulse) ; ylim([-1 2])
Aswathy
on 2 Nov 2014
How can I use the above code to fed it as a gate pulse to a converter in simulink?
Deepayan Bhadra
on 30 May 2022
Edited: Deepayan Bhadra
on 30 May 2022
@Matt J: How did you choose dt in the above solution? I'm trying to tailor your solution for my problem here
Categories
Find more on Sources 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!