MATLAB Sägezahn plotten

Gast #4979019
Hallo zusammen,

Habe eine kleine Frage, ich müsste das Signal x2[n] wie im Anhang in 
MATLAB plotten. Dabei soll M=25 sein und die Samplingfrequenz 
fs=16.000Hz.
Das Signal selbst soll 2 Sekunden lang dauern, sprich x-Achse ist die 
Zeit t.

Ich habe schon folgende Lösung nur habe ich keine wirkliche Idee wie ich 
das ganze plotten soll!

n = 0:T_s:M-1;

x_2 = n/((M-1)/2) - 1; %Erzeugtes Sinussignal

signal = repmat(x_2,1,2);

plot(signal) //Gibt mir aktuell nur 2 Perioden aus, aber mit irgendeiner 
x-Achse.

Hättet ihr ein paar Ideen?

LG Kevin
Angehängte Dateien:
Gast #4979046
Danke!

Habe es mal nach deinem Vorschlag hin versucht.
Wenn ich folgendes verwende

signal = repmat(x_2,1,1);

plot(n, signal)

Bekomme ich eine Periode welche n=25 dauert, aber keine 2 Sekunden, da 
komme ich nicht wirklich weiter.
Der Befehl stem() wäre für Diskreten Plot - ergibt aber leider dasselbe 
Ergebnis
Gast #4979058
Zeig mal den gesamten Code, nicht nur Ausschnitte. So ist das alles nur 
Rätselraten.
Im Code ist nirgendwo die Abtastrate fs=16000 drinnen, sondern 
bestenfalls T_s, was ich annehme, ist T_s=1/f_s - richtig?

Wie viele Einträge hat dein n im Workspace? Bei Abtastfrequenz 1/16000 
bis hin zu 25-1=24 sollte das ein ziemlich großer Vektor sein.

Gleiches gilt für x_2.

Passen die Werte für n und x_2, dass du eine Periode bekommst?
Gast #4979061
Das hier wäre der gesamte Code:

f   = 640;               % Frequenz
T   = 1/f;               % Periodendauer
A   = 1;                 % Amplitude
f_s = 16000;             % Abtastfrequenz
T_s = 1/f_s;             % Abtastperiode
N   = 1280;              % Anzahl abzutastender Perioden
M = 25;
n = 0:T_s:M-1;
%t_s = 0:T_s:(T*N);

x_2 = n/((M-1)/2) - 1;
signal = repmat(x_2,1,2);
plot(signal)

Die letzte Ziffer in der Funktion repmat() ergibt quasi die Duplikation, 
sprich die Perioden des Signals.

Das funktioniert schon mal. Eben die 2 Sekunden im Zeitbereich als plot 
ist schwierig.
#4979701
Häh, was rechnest du denn da? Du musst dich entscheiden ob du in Samples 
oder Zeit denken möchtest.
Die Anzahl deiner Samples (length(n)) und die Abtastrate f_s definiert 
doch automatisch, wie lang dein Signal ist. Nämlich genau n./f_s.

Allerdings ist n hier widersprüchlich definiert, denn n hat aus 
irgendwelchen Gründen die Schrittweite T_s. n sollte aber ein Integer 
sein. Ein diskreter Zeitpunkt.

Willst du über die Zeit gehen, so erzeuge auch einen Zeitvektor:
1
t = 0:T_s:2; % zeitvektor von 0 bis 2 (inklusive 2) Sekunden
2
n = t./T_s; % length(n) diskrete Zeitschritte

Btw, A und N werden nicht benutzt, lösch' die Variablen! Die Kommentare 
sind auch teilweise murks.
Unterstriche in Variablennamen sind mega umständlich einzutippen.

edit:
hab' mir nochmal die Definition des Signals angesehen und bin gerade 
etwas ratlos. Wenn n nur zwischen 0 und 24 sein darf, was passiert für 
größere n? Wird das Signal periodisch fortgesetzt? Wenn ja, wo steht 
das?
Gast #4980447
Hallo,

Besten Dank hat mir verdammt gut weitergeholfen eure Antworten! :D

Bin gerade richtig happy das alles funktioniert!

Wünsche euch einen schönen Abend!

LG Kevin

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.