|
|
Befehl um Frequenz eines Signals zu verändern |
|
Sammy243 |
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 09.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2018, 17:41
Titel: Befehl um Frequenz eines Signals zu verändern
|
|
Hallo zusammen,
gibt es in Matlab einen Befehl womit ich die Frequenz eines Signals verändern kann?
Ich habe z.B. folgendes Signal
Dafür möchte ich z.B. die Frequenz verdoppeln:
Gibt es dazu etwas oder muss ich mir das selber basteln?
Beste Grüße
Sammy
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 14.04.2018, 21:38
Titel:
|
|
Hallo,
du brauchst eigentlich nur das selbe Signal zu verwenden und den Zeitvektor auf halbe Abtastzeit anzupassen.
Grüße,
Harald
|
|
|
Sammy243 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 09.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.04.2018, 22:15
Titel:
|
|
Hallo Harald,
vielen Dank für deine Antwort.
Kannst du mir ein Vorgehen dazu erläutern?
Ich habe einen Vektor mit 0en und 5en den ich dann praktisch skalieren muss?
Mein Konstrukt in den Plots ist sehr unschön gebaut:
Zeitvektor x1 = linspace(0,720,5000);
Zeitvektor x2 = linspace(0,360,5000);
Bei dem zweiten Plot (mit doppelter Frequenz) habe ich dann einfach
das Signal nochmal hinten dran gehängt.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.04.2018, 09:37
Titel:
|
|
Hallo,
das Signal brauchst du überhaupt nicht zu verändern.
Du hast meinen Vorschlag mit dem Zeitvektor schon umgesetzt. Was ist daran unschön?
Grüße,
Harald
|
|
|
Sammy243 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 09.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.04.2018, 11:55
Titel:
|
|
Hallo Harald,
ich bin mir nicht sicher ob ich es richtig umgesetzt habe.
Ich habe halt wie beschrieben einfach das 1. Signal auf die halbe Zeit skaliert und dann nochmal hinten dran gehangen.
Aktuell gebe ich praktisch wie im Plot die 0-720 als 1 Sekunde lang raus.
Wenn ich jetzt bei meinem Vorgehen das ganze z.B. um 1.5 skaliere und dann nochmal
dranhänge, habe ich den unschönen Effekt, dass das ganze nicht mehr symmetrisch ist.
Ich hoffe das ist nicht zu verwirrend erläutert
Mir ist auch noch nicht ganz klar, wie man am besten skaliert, also wie bekomme ich
z.B. aus diesem Vektor
[0 0 5 5 0 0 5 5 0 0 5 5 0 0 5 5]
diesen
[0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5]
?
Vielen Dank schonmal!
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.04.2018, 15:19
Titel:
|
|
Hallo,
z.B.
Skalieren bedeutet normal, mit einem Faktor zu multiplizieren. Du scheinst aber irgendetwas anderes damit zu meinen.
Zitat: |
habe ich den unschönen Effekt, dass das ganze nicht mehr symmetrisch ist.
|
Inwiefern ist es nicht symmetrisch, und warum sollte es symmetrisch sein? Genauer gesagt: das ursprüngliche Signal ist nicht mal symmetrisch, warum sollte das neue Signal dann symmetrisch werden?
Grüße,
Harald
|
|
|
Sammy243 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 09.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.04.2018, 15:55
Titel:
|
|
Super, das hat mich auch wieder ein Stück weiter gebracht.
In deinem Beispiel-Code skalierst du ja um den Faktor 2, wie könnte man soetwas
um einen nichtganzzahligen Faktor (z.B. 1.7) realisieren?
Genau da läge dann auch mein Problem, mit meinem bisherigen Verfahren würde
ich dann nämlich Teile des Signals abschneiden, wodurch der Abstand der Pulse nicht
mehr "symmetrisch" wäre.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 15.04.2018, 16:13
Titel:
|
|
Hallo,
Zitat: |
wie könnte man soetwas um einen nichtganzzahligen Faktor (z.B. 1.7) realisieren? |
Da müsstest du erst mal sagen, wie das dann aussehen soll. Je nachdem kann eine Möglichkeit auch die Funktion resample sein.
Grüße,
Harald
|
|
|
Sammy243 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 9
|
|
|
|
Anmeldedatum: 09.01.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.04.2018, 17:40
Titel:
|
|
Du hast Recht, ohne den Hintergrund zu wissen macht das so keinen Sinn
Das ganze soll ein Impulsradsignal simulieren. Der Plot ist dabei immer Ausgaberate 1 Sekunde (0-720). Wenn ich nun 100 Sekunden ausgeben möchte, hänge ich einfach
99mal den Plot (Vektor) hinten dran.
Wenn ich aber jetzt einen nichtganzzahligen Faktor nehme, schneidet er mir praktisch Teile heraus, da das Signal nach 1 Sekunde (720) nicht an der richtigen Stelle weiterläuft.
Wahrscheinlich ist mein Ansatz auch nicht der beste, aber anders habe ich es noch nicht
realisiert bekommen Ich häng mal meinen Code an, die Drehzahl soll veränderbar sein:
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|