MATLAB Sägezahn plotten

Gast #4979019
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren