How to set different threshold's for each data?

1 view (last 30 days)
I am plotting a graph of acceleration(y axis) Vs time(x axis) for 1000 points(secs). I want that particular point at which value is greater than threshold. But if its for single data I can use this code :
firstIndex = find(Acceleration > 43 ,1, 'first');
AccelerationAtThresh = Acceleration(firstIndex);
timeAtThresh = time(firstIndex);
I have many data's and for each data there is different threshold to be set.
Say,for the 1st data (which I have attached) it should show 43
How can I proceed?
Can this be used in real time information gathering as well?
I have attached the flow chart for reference

Answers (1)

Image Analyst
Image Analyst on 13 Sep 2022
First I'd ask why you need a different threshold for each one. Is there drift in your measurement that can possibly be avoided, thus allowing you to use a fixed threshold, which is usually preferable?
Otherwise you'll need an automatic thresholding algorithm. You didn't post the plots (why not?) and I didn't bother to download the spreadsheet and write a MATLAB program to plot all your curves, so I don't know what to suggest (make it easy for us to help you, not hard). Perhaps findchangepts or my attached triangle threshold might work.
Image Analyst
Image Analyst on 14 Sep 2022
OK, but what is there in that fairly noisy signal that tells you 43 should be the time chosen to be a threshold?
And what do you want to do with that time threshold? Extract data after that? Extract data before that?

Sign in to comment.




Community Treasure Hunt

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

Start Hunting!

Translated by