Plotting periodic sawtooth wave with 25%, 50% and 75% duty cycle
27 views (last 30 days)
Show older comments
Ginnie Lim
on 10 Mar 2022
Commented: Ginnie Lim
on 15 Mar 2022
How do I generate a periodic sawtooth with varying duty cycle (e.g 25%, 50%, 75%) using x = sawtooth(2*pi*t)?
3 Comments
Accepted Answer
Scott MacKenzie
on 10 Mar 2022
Edited: Scott MacKenzie
on 10 Mar 2022
I'm sure there are other (perhaps better) ways to do this, but I think the following code achieves what you are after:
% create sawtooth waveform (from sawtooth documentation)
T = 5*(1/50);
fs = 1000;
t = 0:1/fs:T-1/fs;
y = sawtooth(2*pi*50*t);
tiledlayout('flow');
% duty cycle = 100%
nexttile;
plot(t,y);
title('100% Duty Cycle');
spread = abs(max(y) - min(y));
% duty cycle = 50%
nexttile;
floor = max(y) - 0.50 * spread;
y1 = y;
y1(y1<floor) = floor;
plot(t,y1);
title('50% Duty Cycle');
% duty cycle = 25%
nexttile;
floor = max(y) - 0.25 * spread;
y2 = y;
y2(y2<floor) = floor;
plot(t,y2);
title('25% Duty Cycle');
% duty cycle = 75%
nexttile;
floor = max(y) - 0.75 * spread;
y3 = y;
y3(y3<floor) = floor;
plot(t,y3);
title('75% Duty Cycle');
More Answers (0)
See Also
Categories
Find more on Waveform Generation 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!