Archive für 2.2.2010

Scilab: Mehrere Datensätze im gemeinsamen Koordinatensystem darstellen

kurvenfenster.jpgAls Beispieldaten generieren wir mehrere Sinusfunktionen. Den Wertevorrat xWerte_1000 für den Sinus erhalten wir aus einem Zeilenvektor aus 1000 Werten, aufgelöst auf 2*pi/1000 Schrittweite. Die Naturkonstante Pi wird in Scilab mit %pi angegeben.

Wir erzeugen nun drei Sinusfunktionen mit unterschiedlichen Amplituden und Frequenzen. Im Signal werden die drei Funktionen überlagert.

Nun sollen alle diese Beispieldaten in demselben Koordinatensystem als unterschiedliche Kurven dargestellt werden.

Wir weisen den verschiedenen miteinander darzustellenden Datenvektoren der Variable Sinua zu. Werte, die in eckigen Klammern übergeben werden, sind immer Matrizen. Würden wir die einzelnen Datensätze einfach hintereinander schreiben, würden deren Werte alle in einer Zeile stehen und wären somit ein einziger Wertevorrat. Die Zuweisung unterschiedlicher Styles, wie Farben oder Muster, wäre so nicht möglich (da alles derselbe Datenvektor).

Deshalb nutzen wir als Trennzeichen zwischen den Datenvektoren das Apostroph ‘. Dies bewirkt das “Umbrechen” des Zeilenvektors in eine neue Spalten, d. h. für jeden Datensatz existiert nun eine eigene Spalte in der Matrix. Da alle Datensätze gleich lang sind, kann der XY-Plot über dem x-Vektor xWerte_1000 erfolgen. Ansonsten muss darauf geachtet werden, dass der Wertevorrat auf der x-Achse dem darzustellenden Datenvektoren entspricht.

Mit xtitle() werden Texte übergeben, diese können sowohl in ‘Apostroph’ als auch in normale “Anführungszeichen” gesetzt werden. Hiermit wird der Titel der Grafik, sowie die x- und y-Achsenbeschriftung gesetzt.


xWerte_1000=[0:1:1000]*2*%pi/1000;
Sinus_1Hz=sin(xWerte_1000);

Sinus_7Hz=1/10*sin(7*xWerte_1000);

Sinus_13Hz=1/20*sin(13*xWerte_1000);

Signal=Sinus_1Hz+Sinus_7Hz+Sinus_13Hz;

Sinua=[Sinus_1Hz' Sinus_7Hz' Sinus_13Hz' Signal'];

plot(xWerte_1,Sinua);

xtitle('Signalgenerierung','Zeitachse','Signale');

-> Scilab Schulungen 

|