Forum: Analoge Elektronik und Schaltungstechnik Signal mit Matlab zeichnen


von Hannes Weninger (Gast)


Lesenswert?

Hallo,

ich möchte ein Signal zeichnen welches ca so aussieht:
http://www.gomatlab.de/download,id,3925.html

ich habe versucht, 2 Sinus hintereinander zu zeichnen mit verschiedenen 
Frequenzen, verschiedenen Amplituden und der zweite Sinus sollte einen 
Gleichanteil beinhalten.

Dazu habe ich folgendes gemacht:

ich hab einen Vektor first, welcher von [0:0.01:1] geht und ich hab dann 
die Werte von 30:101 auf 0 gesetzt. Dann hab ich einen zweiten Vektor 
second gemacht, welcher wieder von [0:0.01:1] geht und ich hab dann von 
1:30 und von 70:101 auf 0 gesetzt,

dann wollte ich die Sinuse zeichnen mit:

plot(sin(first*10) + (2+3*sin(second*30)))

was ich jetzt nicht versteh ist, dass auch der erste Sinus dann einen 
Gleichanteil von 2 hat.
Weiß jemand wie ich es machen kann, dass ich so ein Signal wie im Link 
oben hinbekomme?
Vielen Dank und lg

von Dominik R. (domy)


Lesenswert?

plot([sin(first*10):(2+3*sin(second*30))])

von Hannes Weninger (Gast)


Lesenswert?

Hallo,

besten Dank für die schnelle Antwort.
Leider bekomm ich da eine Warnung:

WARNING: COLON arguments must be real scalar

Ich hab ehrlich gesagt keine Ahnung was das heißt?
Wäre nochmal sehr dankbar für Hilfe.
lg

von T0M (Gast)


Lesenswert?

>> was ich jetzt nicht versteh ist, dass auch der erste Sinus dann einen
>> Gleichanteil von 2 hat.

Wieso wundert dich das?

Das erste Element von "sin(first*10)" ist 0
Das erste Element von "(2+3*sin(second*30))" ist 2

Du bildest die Summe, also hat das erste Element des Summenarrays auch 
den Wert 2.

Was Dominik beschreibt, wäre ein aneinanderhängen beider ursprünglichen 
Arrays zu einem der Länge 202.

von T0M (Gast)


Lesenswert?

Dein first und second brauchst Du übrigends nicht unbedingt, geht auch 
so:
plot([sin((0:0.1:pi)) , (2+3*sin(pi+1:0.3:3*pi))])

von Hannes Weninger (Gast)


Lesenswert?

OK, besten dank nochmal,
Was ich jetzt noch bräuchte und wo ich die letzten Stunden 
herumgetüftelt habe ist eine Funktion, die addiert wird:

also so in der Art:

result=y1 + y2;
plot(result)

und mit plot(result) soll dann diese Kennlinie 
http://www.gomatlab.de/download,id,3925.html gezeichnet werden.

Dann geht das ja gar nicht mit der addition, wenn dann der Gleichanteil 
für beide Terme gilt oder?
besten Dank!!

von T0M (Gast)


Lesenswert?

Es wäre gut, wenn Du besser den Hintergrund beschreiben würdest und was 
Du genau vor hast. Wenn es eine Summe nach der oben genannten Art sein 
muss, d.h. das Funktionsargument muss das Feld sein, geht es so 
natürlich nicht, da Du den Offet von 2 immer hast.
Warum muss es eine Summe zweier Funktionen sein? Und was hat das dann 
noch für ein Sinn, dass Du die Funktionsargumente in den Array nach 
belieben anpasst?

von j. c. (jesuschristus)


Lesenswert?

Lies Dir bitte mal die ersten Seiten der Matlabhilfe zum Umgang mit 
Vektoren und Matrizen durch. Kentnisse linearer Algebra schaden auch 
nicht.
Wenn Du es nur zeichnen willst, nimm Illustrator/ ein zeichenprogramm.
SOnst: plot(sin([0:.1:pi pi+.2:.2:3*pi ]))

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.