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

Grundlegender Aufbau Zeit der Nulldurchgänge und Maximalwer

 

peter3000
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 30.03.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2021, 15:35     Titel: Grundlegender Aufbau Zeit der Nulldurchgänge und Maximalwer
  Antworten mit Zitat      
Hallo,

ich bin absoluter Matlab-Anfänger und habe folgende Herausforderung:

Ich habe ein Signal, dass um 0 pendelt.
Es ist keine harmonische Schwingung.
Die Amplitude der einzelnen Pendler ist unterschiedlich hoch.


Ziel:
Ein Diagramm, dass die Amplitude (X-Achse) und Zeitdauer zwischen den VZW (Y-Achse) in Abhängigkeit darstellt. Dabei soll eine Punktewolke entstehen.

Dazu möchte ich also die Zeitdauer zwischen den Nulldurchgängen des Signals auslesen und dazu jeweils die maximale Amplitude.


Wie stelle ich das grob an?
Mir fehlt aktuell ein passendes Konzept wie ich das Problem angehe...

Ich würde mich sehr freuen, wenn ihr mir weiter helfen könntet Smile

Liebe Grüße
peter3000

Pendler.png
 Beschreibung:

Download
 Dateiname:  Pendler.png
 Dateigröße:  295.62 KB
 Heruntergeladen:  202 mal
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 30.03.2021, 20:34     Titel:
  Antworten mit Zitat      
1. Stellen an denen der Vektor == 0 bestimmen
=> Zeiten lassen sich daraus berechnen
2. lokale Extremwerte bestimmen (evt. mittels islocalmin bzw islocalmax)
=> lokale Amplitude
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
peter3000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 30.03.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2021, 10:54     Titel:
  Antworten mit Zitat      
Hallo Martina,
danke Smile
ja das verstehe ich schon mal Smile Ein bisschen detaillierter brauche ich es aber dann doch.

Habe jetzt mal das Pendlersignal mit einer neuen Spalte (parallel zu den Zeitwerten) erweitert und implementiere einen Zähler für jeden Vorzeichenwechsel.

Macht das so Sinn?
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 31.03.2021, 15:54     Titel:
  Antworten mit Zitat      
peter3000 hat Folgendes geschrieben:
Hallo Martina,
danke Smile
ja das verstehe ich schon mal Smile Ein bisschen detaillierter brauche ich es aber dann doch.

Habe jetzt mal das Pendlersignal mit einer neuen Spalte (parallel zu den Zeitwerten) erweitert und implementiere einen Zähler für jeden Vorzeichenwechsel.

Macht das so Sinn?


Wenn du es detailierter brauchst, so frage detailierter!
Ob du einen Zähler brauchst, kann ich von hier aus nicht sagen.

Auch ein zweites Posting wird nicht dazu führen, dass du mehr Informationen bekommst, wenn du nicht mehr Informationen teilst:
Codeansatz. Minimalbeispiel, etc.

Für Vorzeichenwechsel könnten dir noch
Code:

helfen.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
peter3000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 30.03.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2021, 16:05     Titel:
  Antworten mit Zitat      
Hallo Martina,

danke - da hast du natürlich recht.

Spalte 1: Zeit
Spalte 2: Werte
Spalte 3: Vorzeichen -1 +1
Spalte 4: Vorzeichenwechselcounter

Code:
i=0
vzwcounter = 1
for i=2:(length(time));
   
    if Abstandmtrx(i-1),3)==Abstandmtrx(i,3);
                Abstandmtrx((i),4)= vzwcounter;
    else
        vzwcounter = vzwcounter +1;
        Abstandmtrx((i),4)= vzwcounter;
    end
   
end
 


Jetzt würde ich gerne die Maximalwerte aus Spalte 1 und Spalte 2 jeweils für den vzwcounter aus Spalte 4 auslesen. Und da scheitere ich.

Meine Abstandmtrx ist so aufgebaut:
Zeit Abstand VZ Vorzeichenwechselcounter
1 -0.1 -1 1
2 -0.2 -1 1
3 0.1 1 2
4 0.2 1 2
5 0.3 1 2
6 0.2 1 2
7 -0.2 -1 3
8 -0.2 -1 3
9 0.1 1 4
10 0.1 1 4
11 0.1 1 4
12 0.3 1 4

Ich würde gerne so vorgehen (es sei denn es gibt bessere Ansätze)
Neue Matrix erstellen
Maximalwerte aus Spalte 1 (Zeit) für vzwcounter=i (1,2,3,4...) in Zeile i Spalte 1
Maximalwerte aus Spalte 2 (Abtand) für vzwcounter=i (1,2,3,4...) in Zeile i Spalte 2

Danke!

Liebe Grüße
Peter
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: 31.03.2021, 16:52     Titel:
  Antworten mit Zitat      
Hallo peter3000,

Wenn du einen kleinen Satz mit Beispiel-Daten postest, könnte man dir einfach passenden Code vorschlagen. Zu erraten, was zu deinen Daten passen könnte, ist weniger effizient.

Trotzdem mal mit etwas Raten:
Code:
t = cumsum(linspace(0, 100, 1000)) / 50500 * 10 * pi;
Data = sin(t) .* linspace(0, 1, numel(t));

Change = [true, diff(data >= 0) ~= 0];
Phase = cumsum(Change);

Amplitude = accumarray(Phase.', abs(Data), [], @max);
Duration = diff(find([Change, true]));
plot(Amplitude, Duration.', '+')

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.