Create a Step Sine wave

42 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.

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!