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

Messsignal - Zeit-Abstand vom Anstiegspunkt bis zum Maximum

 

et-cop
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 20.08.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 20.08.2015, 12:39     Titel: Messsignal - Zeit-Abstand vom Anstiegspunkt bis zum Maximum
  Antworten mit Zitat      
Hallo Liebe Community,

ich schreibe gerade an meiner Bachelorarbeit und habe folgendes Problem:

Ich habe ein Messsignal, aus welchem ich mehrere Zeitabstände herauslesen muss.
Und zwar muss ich die Zeit bestimmen von dem Punkt aus, an dem meine Messreihe beginnt zu steigen bis zum Maximum (siehe Abb. roter Verlauf).

Und in dieser Messreihe habe ich 22 Lastzyklen, in denen dieser Zeitabstand herausgefiltert bzw. ermittelt werden muss.

Mir fällt leider nicht viel ein, was man hierfür machen kann, mit findpeaks() kam ich auch nicht weiter, da ich unzählige Maxima habe.
Zudem wüsste ich auch nicht, wie ich den Punkt ermitteln soll, an dem die Kurve je Zyklus beginnt zu steigen.


Code:

MessreiheA.data;
MessreiheA.time;
MessreiheA = timeseries(MessreiheA.data, MessreiheA.time);


m_r =    % Matrix mit Spalte1: Anfangspunkt, Spalte2: Endpunkt (Maximalstelle)
t_r  =     % Array mit Zeitabständen

 


Meine Idee wäre es, eine Matrix zu ermitteln, die jeweils den Anfangspunkt und den Endpunkt enthält, so könnte ich dann ggf. den Zeitabstand berechnen, es sei denn es gibt eine bessere Methode dies zu tun.

Ich wäre Euch für Eure Hilfe sehr dankbar.

Grüße et-cop

MessreiheA.mat
 Beschreibung:
MessreiheA

Download
 Dateiname:  MessreiheA.mat
 Dateigröße:  13.48 MB
 Heruntergeladen:  391 mal
gezoomt_drehmoment rot_ temp blau - edit.PNG
 Beschreibung:
gezoomter Bereich, zu ermittelnder zeitlicher Abstand (lila, x-Achse)

Download
 Dateiname:  gezoomt_drehmoment rot_ temp blau - edit.PNG
 Dateigröße:  15.39 KB
 Heruntergeladen:  371 mal
drehmoment rot_ temp blau.PNG
 Beschreibung:
MessreiheA = roter Verlauf

Download
 Dateiname:  drehmoment rot_ temp blau.PNG
 Dateigröße:  46.23 KB
 Heruntergeladen:  356 mal
Private Nachricht senden Benutzer-Profile anzeigen


et-cop
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 20.08.15
Wohnort: ---
Version: R2013a
     Beitrag Verfasst am: 20.08.2015, 18:28     Titel: QRS Methode...hilft leider auch nicht ganz weiter
  Antworten mit Zitat      
Hey,

ich habe jetzt nach mehreren Versuchen nun folgendes:

Code:

%%% QRS - Methodde

%%% Sample distance 2.8000e+04, Abtastrate 2.0000e+03

[~,locs_Rwave] = findpeaks(M3,'MinPeakHeight',90,'MinPeakDistance',2.8000e+04);

% S Punkt macht keinen Sinn...
% M3_inverted = -M3;
% [~,locs_Swave] = findpeaks(M3_inverted,'MinPeakHeight',-5,'MinPeakDistance',2.8000e+04);

figure
hold on
plot(t, M3);
plot(locs_Rwave,M3(locs_Rwave),'rv','MarkerFaceColor','r');
%plot(locs_Swave,M3(locs_Swave),'rs','MarkerFaceColor','b');
grid on;
legend('M3','R-waves');
xlabel('Time'); ylabel('Nm')
title('R-wave and S-wave in Noisy M3 Signal')

% Signal filtern - Savitzky-Golay

smoothM3 = sgolayfilt(M3,7,21);

figure
plot(t,M3,'b',t,smoothM3,'r'); grid on
axis tight;
xlabel('Samples'); ylabel('Nm');
legend('Noisy M3 Signal','Filtered Signal')
title('Filtering Noisy M3 Signal')

[~,min_locs] = findpeaks(-smoothM3,'MinPeakDistance',2.8000e+04);

% Peaks between 6 and 10
locs_Qwave = min_locs(smoothM3(min_locs)>6 & smoothM3(min_locs)<10);

figure
hold on
plot(t,smoothM3);
plot(locs_Qwave,smoothM3(locs_Qwave),'rs','MarkerFaceColor','g');
plot(locs_Rwave,smoothM3(locs_Rwave),'rv','MarkerFaceColor','r');
%plot(locs_Swave,smoothM3(locs_Swave),'rs','MarkerFaceColor','b');
grid on
title('Thresholding Peaks in Signal')
xlabel('Samples'); ylabel('Nm')
legend('Smooth M3 signal','Q-wave','R-wave');

% Values of the Extrema
[val_Qwave, val_Rwave] = deal(smoothM3(locs_Qwave), smoothM3(locs_Rwave));
% mit Swave u.
%[val_Qwave, val_Rwave, val_Swave] = deal(smoothM3(locs_Qwave), smoothM3(locs_Rwave), smoothM3(locs_Swave));


meanError_Qwave = mean((M3(locs_Qwave) - val_Qwave));
meanError_Rwave = mean((M3(locs_Rwave) - val_Rwave));
%meanError_Swave = mean((M3(locs_Swave) - val_Swave));

% s.u. Vektoren zum Teil gekürzt, da nicht gleiche Länge...

avg_riseTime = mean(locs_Rwave(1:10)-locs_Qwave); % Average Rise time
% avg_fallTime = mean(locs_Swave-locs_Rwave); % Average Fall time
avg_riseLevel = mean(val_Rwave(1:10)-val_Qwave);  % Average Rise Level
% avg_fallLevel = mean(val_Rwave-val_Swave);  % Average Fall Level

figure;
%helperPeakAnalysisPlot % <-- ???
plot(t,smoothM3, locs_Qwave,locs_Rwave(1:10),val_Qwave(1:10),val_Rwave(1:10),avg_riseTime,avg_riseLevel)
 


Das ist so in etwa das, was ich brauche, leider klappt es nicht so wie erhofft.

Da es 1. kein ECG Signal ist, sondern ein ganz anderes und 2. man die MinPeakHeight und MinPeakDistance kennen muss.

Trotzdem habe ich versucht, diese Methode anzuwenden...dabei kam folgendes bei raus (siehe hochgeladene Abbildungen)

4.jpg
 Beschreibung:
hier sollte man eig die Abstände eig

Download
 Dateiname:  4.jpg
 Dateigröße:  13.99 KB
 Heruntergeladen:  353 mal
3.jpg
 Beschreibung:
peaks punkte

Download
 Dateiname:  3.jpg
 Dateigröße:  44.11 KB
 Heruntergeladen:  320 mal
2.jpg
 Beschreibung:
orginales und gefiltertes Signal

Download
 Dateiname:  2.jpg
 Dateigröße:  57.36 KB
 Heruntergeladen:  359 mal
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 - 2025 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.