How to plot binary sine function?

binary sine function change its amplitude to minus after a peirod
for example) T=3, Range 0~6
y=sin(t/3) for 0<=t<3
y=-sin(t/3) for 3<=t<6
it reculsively occurs for whole range
6~9, 15~18, ....
9~12, 18~21, ....
how to plot this graph?

 採用された回答

Akira Agata
Akira Agata 2020 年 4 月 8 日

0 投票

How about modulating a phase with 0 <-> pi ?
The following is an example:
T = 3;
time = linspace(0,T*4,1000);
% Create a phase 0 <-> pi
binary = mod(floor(time/3),2) == 1;
phi = pi*binary;
% Plot a phase modulated signal
figure
plot(time,sin(2*pi*(1/T)*time + phi))

その他の回答 (1 件)

David Hill
David Hill 2020 年 4 月 8 日

0 投票

t=0:.01:30:
y=sin(2*pi*t/3).*(-1).^floor(t/3);%I think you are missing the 2*pi
plot(t,y);

3 件のコメント

NoYeah
NoYeah 2020 年 4 月 8 日
編集済み: NoYeah 2020 年 4 月 8 日
I did that expression before the question. but something went crazy depends on frequency and time interval. if any term of floor(blah) is containg fractional exponent, it brings whole results into complex plane and distort whole graph into something strange thing
for example) below yields complex value. not -1
(-1)^(99/10)
David Hill
David Hill 2020 年 4 月 8 日
It works fine for me, floor is never fractional.
NoYeah
NoYeah 2020 年 4 月 9 日
yes but if you set floor set fractional, the result may not correct

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

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

質問済み:

2020 年 4 月 8 日

コメント済み:

2020 年 4 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by