help defining a square wave
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Joe Koning
le 30 Avr 2013
Réponse apportée : Wharengaro Ruha
le 2 Oct 2019
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 commentaires
Réponse acceptée
Azzi Abdelmalek
le 30 Avr 2013
Modifié(e) : Azzi Abdelmalek
le 30 Avr 2013
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 commentaires
Azzi Abdelmalek
le 30 Avr 2013
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')
Plus de réponses (1)
Wharengaro Ruha
le 2 Oct 2019
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
0 commentaires
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!