Create a Step Sine wave

16 views (last 30 days)
Rashmil Dahanayake
Rashmil Dahanayake on 20 Dec 2013
Answered: Rashmil Dahanayake on 20 Dec 2013
Hi, I intend to create a square shaped step sine wave. At the moment I approach this problem by defining a sample time. However it created a triangular wave instead.
Please suggest to correct this. I have optional DSP tool box if necessary.
t=0:1/3:1;
y=sin(2*pi*t);
plot(t,y);grid on;

Answers (3)

Rashmil Dahanayake
Rashmil Dahanayake on 20 Dec 2013
This Code produce a symmetric quasi square wave. Any ideas to change the number of steps to 6, instead of 3.
To=0.02; %period
t=(0:To/500:To)';
f=sign(sin(2*pi*t/To))/2+sign(sin(-6*pi*t/To))/6;
plot(t,f7);grid on;

Walter Roberson
Walter Roberson on 20 Dec 2013
You did not sample at a high enough resolution. Or, alternately, use a stairs() plot
  1 Comment
Walter Roberson
Walter Roberson on 20 Dec 2013
Your 3-level symmetric wave image starts off negative at t = 0. That requires using cos(t) or some other phase offset.
Your 3-level symmetric wave image has a different width for the central part where y = 0, only half the width of the y = -1 and y = +1. Therefore the number of sampling intervals must be increased.
With a small bit of experimentation what I find works acceptably well is
t = linspace(0,1,7);
y = sin(2*pi*(t-1/3));
stairs(t,y)

Sign in to comment.


Rashmil Dahanayake
Rashmil Dahanayake on 20 Dec 2013
The stairs() doesn't produce a symmetric wave.
I need a 3 level symmetric wave like http://imgur.com/FPtDiTb
That's why I sampled at Ts/3.

Categories

Find more on Applications 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!