How to filter data that detects peaks or irregularities?

I am trying to build a code that detects these peaks. This graph represents the change in position in time. What I am doing is read the distance timestep by timestep.
I compare the new distance minus the old distance, if this values difference is higher than 5 meters I assume theres a peak. The problem is that each dataset have undefined number of peaks and undefined number of green datasets to save.
How can I solve this?

Risposte (1)

Several functions already exist to do that, among which are findpeaks, islocalmax, ischange, and others.

7 Commenti

The problem with that function (findpeaks) that it just detects a certain amount of them per dataset.
The findpeaks function detects all peaks within each data set, although if you set restrictive criteria for them with the name-value pair arguments, it may miss some that do not meet those criteria.
It may also not detect ‘peaks’ at each end because they do not meet its definition of ‘peaks’. It will detect those as well if you append very small numbers at each end of the vector (such as -realmin).
To use the findpeaks function I need the Signal Toolbox?
Yes. It is part of the Signal Processing Toolbox.
The other functions are part of MATLAB itself, and were introduced in R2017b.
Unfortunately, I dont have the Toolbox.
Code:
for i=1:50
if i~= 50
j = i + 1;
diff = abs(xnew - xold);
if diff > 5
stop(i)= i;
end
end
end
peaks = find (stop~= 0);
num = lenght(peaks) %fnumber of peaks found
for i=1:num
toDelete = x.distance((change(i)-100): change(i))
x(toDelete,:)= []
end
If I get this:
peaks = [15568 , 15702, 15778]
I want to delete the peaks from 100 points before to the peak
delete from 15468 to 15568 , 15602 to 15702 , 15678 to 15778
I am not sure how to make a for loop that could delete them if the number of peaks is variable.
Do you have R2017b or later?
Note: No data to analyse.
Mariana, make it easy for people to help you, not hard. Attach your data in a .mat file with the paper clip icon after you read this link.

Accedi per commentare.

Richiesto:

il 18 Gen 2020

Commentato:

il 18 Gen 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by