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
Plot(n, signal) ... guck dir mal die hilfe zu plot an...da gibt es viele beispiele wie man im diskreten raum plottet
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
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?
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.
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?
:
Bearbeitet durch User
So vllt.: fs=16000; % samplefrequenz t=0:1/fs:2 ; %Zeitachse M=25; x2= rem(0:length(t)-1,M); % In Blöcke von M Stueck aufteilen x2= x2/((M-1)/2)-1; %verschieben,skalieren plot(t,x2) Cheers Detlef
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.