2017-06-06 2 views
0

Ich versuche eine Sinuswelle zu generieren, die regelmäßig in einem Zeitintervall von 0,004 Sekunden zerhackt wird (die Ausgabe wird eine Sinowelle von 0 bis 0,004 Sekunden sein und dann ist die Ausgabe Null bei 0,004 Sekunden bis 0,008 zweitens. Dies wird in ähnlicher Weise fortgesetzt).Sinuswellen Plotten

Ich habe den folgenden Code versucht, aber es erzeugt nicht die richtige Ausgabe.

f=10000000000; 
k=0; 
for i=0:0.004:1 
    k=k+1; 
    if(mod(k,2)~=0) 
     t=i:0.001:i+0.004; 
     y=sin(2*3.14*f*t); 
     plot(t,y); 
    else 
     t=i:0.001:i+0.004; 
     y=0; 
     plot(t,y); 
    end 
end 
+0

Ein bisschen mehr Beschreibung auf der Ausgabe, die Sie wollen, könnte hilfreich sein: welcher Teil möchten Sie gehackt? –

+0

Ich habe meine Beschreibung bearbeitet. –

Antwort

0

Für in Matlab Plotten, möchten Sie eine Reihe von x-Werte und eine entsprechende Anordnung von y-Werte für den gesamten Bereich, den Sie darstellen möchten. Sie möchten also zuerst ein x-Array erstellen, das der Zeit von 0 bis 1.004 entspricht (wenn ich Ihren Code richtig verstehe), und ein y-Array der gleichen Länge erstellen und es mit den entsprechenden Sinus- und 0-Werten füllen.

f = 10000000000; 
% generate evenly spaced x axis of 251*n+1 points evenly spaced between 0 and 1.004 (i.e. spacing between two points is 0.004/n). n should be an integer. 
t = linspace(0, 1.004, 251*n+1); 
% generate unchopped sine 
y = sin(2*3.14*f*t); 
% set desired intervals to zero 
for i=1:251*n+1 % for each index in y 
    % if the corresponding entry in t is a multiple of 0.008, backfill y with zeros for 0.004s. 
    if(mod(t(i), 0.008)==0) 
     if(i>1-n) 
      for j=i-n:i 
       y(j) = 0; 
      end 
     end 
    end 
end 
plot(t, y) 
+0

Ich habe versucht, Ihren Code, aber es führte zu einem Fehler.Es sagt versuchen, Zugriff auf y (3.984), muss Index eine positive ganze Zahl oder logisch sein –

+0

@Ishant Tiwari, meine bisherige Vorgehensweise nicht mit allgemeinen n, ich bearbeitet so jetzt es sollte mit positiver Ganzzahl n arbeiten. Wir versuchen, auf die Indizes von y zuzugreifen, die beispielsweise den Abschnitten zwischen 0,004 und 0,008 entsprechen, und Indizes funktionieren wie Zählen, also müssen diese positive ganze Zahlen sein. –

+0

hat immer noch nicht funktioniert. –