help defining a square wave
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    Joe Koning
 il 30 Apr 2013
  
    
    
    
    
    Risposto: Wharengaro Ruha
 il 2 Ott 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 Commenti
Risposta accettata
  Azzi Abdelmalek
      
      
 il 30 Apr 2013
        
      Modificato: Azzi Abdelmalek
      
      
 il 30 Apr 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 Commenti
  Azzi Abdelmalek
      
      
 il 30 Apr 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')
Più risposte (1)
  Wharengaro Ruha
 il 2 Ott 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 Commenti
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


