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

aus zwei Signalen Intervalle heraussuchen und übereinander

 

JulKl

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2017, 08:07     Titel: aus zwei Signalen Intervalle heraussuchen und übereinander
  Antworten mit Zitat      
Guten Morgen,

in den Titel hat nicht die komplette Beschreibung meines Problems gepasst.
Ich habe zwei unterschiedliche Signale, die ich durch ein Event zu Beginn und Ende der Messung synchronisieren möchte. Die zwei Signale sind unterschiedlicher Länge, da die Abtastrate der beiden Messungen unterschiedlich war. Deshalb möchte ich anhand der Events die Signale übereinander legen.
Im ersten Schritt plotte ich diese und suche jeweils zwei Events, die markiert und diese Markierung als Variable gespeichert wird. Anschließend möchte ich in einem dritten Plot jeweils die beiden Intervalle übereinander legen (neue x-Achse von 0 bis 1).
Leider funktioniert das noch nicht. Bisher kann ich zwar die Intervalle extrahieren, aber die Kurven werden "verschoben" angezeigt.

Hier ist mein bisheriger Code. Ich wäre euch für Hilfe sehr dankbar.

Code:

%% LOAD DATA
data1 = csvread('data1.csv'); %Spaltenvektor mit zwei Spalten
data1_time = data1(:,1);
data1_acc = data1(:,2);

data2 = csvread('data2.csv');
l = length(data2(:,1));
data2_time = ((0:1:l)/1000)';  %Abtastrate des Signals: 1000 Hz
data2_acc = data2(:,1);


%% DEFINE EVENT DATA 1
figure;
    hax=axes;
    hold all
        plot(data1_time, data1_acc)
    grid on
    marker=[];
    zoom on
    w = 0;
    while w~=1
          w = waitforbuttonpress;
    end
    [marker, ~] = ginput(1);
    start = round(marker(1));    
    zoom out
    line([start start], get(hax,'YLim'),'Color',[0 0 1])
    marker=[];
    zoom on
    w = 0;
    while w~=1
          w = waitforbuttonpress;
    end
    [marker, ~] = ginput(1);
    stop = round(marker(1));  
    zoom out
    line([stop stop], get(hax,'YLim'),'Color',[1 0 0])


%% DEFINE EVENT DATA2
figure;
    hax=axes;
    hold all
        plot(data2_time, data2_acc)
    grid on
    marker=[];
    zoom on
    w = 0;
    while w~=1
          w = waitforbuttonpress;
    end
    [marker, ~] = ginput(1);
    start2 = round(marker(1));    
    zoom out
    line([start start], get(hax,'YLim'),'Color',[0 0 1])
    marker=[];
    zoom on
    w = 0;
    while w~=1
          w = waitforbuttonpress;
    end
    [marker, ~] = ginput(1);
    stop2 = round(marker(1));  
    zoom out
    line([stop stop], get(hax,'YLim'),'Color',[1 0 0])

%% NEUE KURVEN PLOTTEN

figure
hold on
plot(data1_time(start:stop,1),data1_acc(start:stop,1))
plot(data2_time(start2:stop2,1),data1_acc(start2:stop2,1))
hold off
 


Vielen Dank schonmal im Voraus!


Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2017, 13:47     Titel:
  Antworten mit Zitat      
Hallo,

die Funktion ginput gibt dir Koordinaten zurück, d.h. in deinem Fall eine Zeit.
Deine Variablen start und stop werden nachher aber als Index verwendet für den Zeitvektor data1_time.
Du musst erstmal abfragen bei welchem Index data_time1 die von ginput zurückgemeldete Zeit annimmt.
Das kannst du z.B. mit
Code:
start=find(data1_time>=marker(1),1)
machen.
 
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.