Hallo Leute, ich habe einen Code zur Phasenmodulation in MatLab, allerdings sind mir ein paar Sachen dort nicht ganz klar, vielleicht könnt ihr mir ja helfen.
Code:
Fs = 50; %Abtastrate
t=(0:2*Fs+1)'/Fs; %Zeitvektor von 0-2s
x = sin(2*pi*t) + sin(4*pi*t); %erstellt Sinus Signal
Fs = 50; %Abtastrate
t=(0:2*Fs+1)'/Fs; %Zeitvektor von 0-2s
x = sin(2*pi*t) + sin(4*pi*t); %erstellt Sinus Signal
Fc = 10; %Frequenz
phasenverschiebung = pi/2; %Phasenverschiebung
tx = pmmod(x,Fc,Fs,phasenverschiebung);%Phasenmodulation vom Sinus Signal
rx = awgn(tx,10,'measured');%Signal geht durch einen AWGN Channel
y = pmdemod(rx,Fc,Fs,phasenverschiebung); %Demodulation des Signals
Der Zeitvektor t so wie ich das verstehe startet der bei 0 und geht bis 2s* die Abtastrate FS+1/FS. Ich versteh da nicht ganz den Sinn, warum kann man den Zeitvektor nicht einfach so aufbauen t = 0:2:0.1; wenn man das so macht ist der Plot nämlich Leer. Und was macht dieser Strich ' . Ist der dazu da um eine "Matrixdivision" zu vermeiden ähnlich wie beim . Operator eine Matrix Multiplikation?
Wieso sind beim Befehl plot(t,[x, y]); das x und y in den Eckigen Klammern geschrieben und das t nicht? Ich kenne den Plotbefehl nur so das man alles in Runden Klammern schreibt.
Ich versteh da nicht ganz den Sinn, warum kann man den Zeitvektor nicht einfach so aufbauen t = 0:2:0.1
Dann wäre t der Vektor, der bei 0 startet und in Schritten der Länge 2 bis 0.1 geht. Und da zwischen 0 und 0.1 weniger Abstand ist als 2, hat der Vektor nur 1 Element, nämlich 0.
Zitat:
Und was macht dieser Strich '
Der Quote transponiert das Array, macht also aus eine MxN Matrix eine NxM.
Zitat:
Ist der dazu da um eine "Matrixdivision" zu vermeiden ähnlich wie beim . Operator eine Matrix Multiplikation?
Das ist eine sehr gewagte Vermutung. Bevor Du spekulierst, lies lieber die Getting Started Kapitel der Dokumentation. Die absoluten Grundlagen in Matlab kann man nicht alle im Forum klären.
Die eckigen Klammern verbinden zwei Vektoren. Versuche es einfach im Commandwindow aus:
Allerdings ist mir immer noch nicht klar warum man den Zeitvektor t so aufschreibt. t ist ja in dem Fall hier die X-Achse am Koordinatensystem beim Plot. Und ich versteh da nicht ganz den Sinn. Warum der Transponiert wird, hab ich verstanden, weil sonst beim Plot die Vektoren nicht die selbe länge haben. Aber was bringt mir Fs+1/Fs .
Du kannst den Zeitvektor erstellen, wie immer Du willst. Wieso er genau von 0 bis (2*FS+1)/FS in den Schritten 1/FS geht, können wir nicht wissen, denn das wird wohl in der Aufgaben-Stellung stehen. Mir kommt die +1 darin seltsam vor, denn dann hat man ja gerade nicht den Abschnitt "0-2s" sondern "0-2+1/Fs".
Gruß, Jan
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.