Verfasst am: 20.08.2015, 12:39
Titel: Messsignal - Zeit-Abstand vom Anstiegspunkt bis zum Maximum
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.
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.
% 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')
% 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));
% 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
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
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.