WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Phasenmodulation

 

Andre589
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 24.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.10.2016, 19:17     Titel: Phasenmodulation
  Antworten mit Zitat      
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

figure
plot(t,[x, y]);
legend('Original signal','Recovered signal');
xlabel('Time (s)')
ylabel('Amplitude (V)')

 


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 hoffe jemand kann mir da helfen bis dahin

Grüße, Andre
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.10.2016, 22:41     Titel: Re: Phasenmodulation
  Antworten mit Zitat      
Hallo Andre589,

Zitat:
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:
Code:
x = rand(1, 3)
y = rand(1, 3)
[x, y]
[x; y]

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Andre589
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 24.09.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.10.2016, 00:22     Titel:
  Antworten mit Zitat      
Hallo Jan,

ich danke dir erstmal für deine Hilfe !

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 .


Ansonsten hab ich alles soweit verstanden


Gruß,

Andre
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.10.2016, 13:19     Titel:
  Antworten mit Zitat      
Hallo Andre589,

Du hast es im Kommentar für diese Zeile bereits stehen: "Zeitvektor von 0-2s". Probiere es doch einfach im CommandWindow aus:
Code:
t = (0:2*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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.