Create a Step Sine wave

29 ビュー (過去 30 日間)
Rashmil Dahanayake
Rashmil Dahanayake 2013 年 12 月 20 日
回答済み: Rashmil Dahanayake 2013 年 12 月 20 日
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;

回答 (3 件)

Rashmil Dahanayake
Rashmil Dahanayake 2013 年 12 月 20 日
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 2013 年 12 月 20 日
You did not sample at a high enough resolution. Or, alternately, use a stairs() plot
  1 件のコメント
Walter Roberson
Walter Roberson 2013 年 12 月 20 日
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)

サインインしてコメントする。


Rashmil Dahanayake
Rashmil Dahanayake 2013 年 12 月 20 日
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.

カテゴリ

Help Center および File ExchangeSignal Attributes and Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by