Finding peaks in data based on certain threshold
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Satej
il 20 Dic 2014
Commentato: Joshua Briggs
il 28 Mar 2017
Hi I have an array [V Data] (Attached data file).The plot is shown below.
I want to detect the # of peaks (3 in this case) which are above a certain threshold (value is = 0.1) I also want to find the points where it crosses the threshold and extract respective values from V
Thanks SATEJ
0 Commenti
Risposta accettata
Shoaibur Rahman
il 20 Dic 2014
Modificato: Shoaibur Rahman
il 20 Dic 2014
Once I had to write a function for this type of problem in on of my projects. Seeing your question here, I have uploaded that file in file exchange:
Just use your +/-TestV as x, Data as y in the function, and threshold as 0.1. Ignore the outputs for minima.
By the way, if you have a closer look at your figure, there are two small peaks in 'left side', one big peak in 'middle', and one smaller peak at the 'right'. So, there will be 4 peaks in total instead of 3. Plot this data in Matlab, and enlarge the figure to verify this observation.
I guess, if you use the linked function findpeaks, the result will be 4 as well. You could also see the x coordinate at which peaks occur, and also the peak values at those points.
Più risposte (1)
Image Analyst
il 20 Dic 2014
Describe what "detect" means to you. Obviously you threshold:
abovePointOne = v > 0.1;
but then what? What kind of numbers do you want? The length of the stretches above 0.1? The starting points? The count of the number of stretches above 0.1? What????
6 Commenti
Joshua Briggs
il 28 Mar 2017
Hi I am looking to do something similar to Satej, and IA's description of SS's code sounds like exactly what I need, just wondering if anyone has it, or if SS could please repost it.
Vedere anche
Categorie
Scopri di più su Data Distribution Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!