help defining a square wave

조회 수: 3 (최근 30일)
Joe Koning
Joe Koning 2013년 4월 30일
답변: Wharengaro Ruha 2019년 10월 2일
Im trying to define a square wave that starts only after 0.01 milliseconds. The code is below. The amplitude and frequency are both correct from the code below but it starts immediately from time 0 rather than from time 0.01, as if the if statement below is always true. what is going wrong?
t= linspace(0,0.03,1000);
i_block = 0;
for k = 1:1000
t(k)
if t(k) >= 0.01
i_block = mod(t/period, 1) > 0.5;
i_block = -2*I*i_block + I;
end;
end;
  댓글 수: 2
Azzi Abdelmalek
Azzi Abdelmalek 2013년 4월 30일
What is I?
Joe Koning
Joe Koning 2013년 4월 30일
ah sorry, I is the required amplitude, in this case I = 20000; period = 1/2000

댓글을 달려면 로그인하십시오.

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2013년 4월 30일
편집: Azzi Abdelmalek 2013년 4월 30일
t= linspace(0,0.03,1000);
period=0.03/10
I=10
i_block = 0;
for k = 1:1000
t(k)
if t(k) >= 0.01
i_block(k) = mod(t(k)/period, 1) > 0.5;
i_block(k) = -2*I*i_block(k) + I;
end;
end;
plot(t, i_block,'r')
  댓글 수: 2
Azzi Abdelmalek
Azzi Abdelmalek 2013년 4월 30일
or
t= linspace(0,0.03,1000);
period=0.03/10
I=10
idx=find(t>=0.01)
i_block(1:idx(1)-1)=0
i_block(idx) = mod(t(idx)/period, 1) > 0.5
i_block(idx) = -2*I*i_block(idx) + I
plot(t, i_block,'r')
Joe Koning
Joe Koning 2013년 4월 30일
ahhh of course, thankyou

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Wharengaro Ruha
Wharengaro Ruha 2019년 10월 2일
I need to make a square wave
at 1v for 2000s
then -1v for 2000s
then 1v for 4000s
then -1v for 6000s
then 1v for 2000s

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by