Automatic detection of the start and end-point of a mono-exponential curve
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
The first results of my research were great. I am using a device which calculates the tissue saturation during and after exercise. After exercise, a mono-exponential increase is seen with a preceding delay. The detection of important points such as the starting point and ending point of the mono-exponential curve is rather difficult yet important.
For the starting point I came up with 2 ideas:
- 1st derivative of the signal, and than the peak resulting in a starting point
- cross-correlation of a mono-exponential shaped curve over the data and detecting the highest point
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/149447/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/149448/image.png)
However, both methods have problems with detecting the starting points if the recovery of the patient is extreme slow (no major peak is present then)
So my first question, does anybody know a new possibility to detect the starting point automatically of a mono-exponential curve?
The ending point is also a bit difficult: we have used several methods but we might miss a better one:
-maximal value after exercise, +100 seconds--> gives problems if the data drops too much after the maximal value (error is too big)
-maximal value after exercise--> calculate tau, endpoint=5*tau; same problem as the method above
-plot a linear and 4th polynomial curve starting from the starting point, if the difference is >5% than that's the end point-->gave unsatisfactory reproducible results
-search the local maximum which is not higher within 10 seconds-->seems to work fine, but I find it a arbitrary method
SO, which of you did lots of research concerning kinetics and can provide me with a good, reliable method for the detection of the starting and endpoint of a mono-exp. curve. Important is that healthy subjects have a fast recovery and some patients have EXTREME slow recovery making it rather hard!
Thanks in advance,
2 commentaires
Matt J
le 26 Sep 2015
I think we need to see a "slow-recovery" data set. Ideally, you would attach one in a .mat file.
Réponses (2)
Star Strider
le 26 Sep 2015
Taking a guess here because I don’t have your data, and I’m not certain what information you want from it.
I would begin by using a Savitzky-Golay filter on the top signal to approximate it and eliminate as much of the noise as possible.
To find the peaks, use the findpeaks function on the filtered data. Then to find the minima or troughs, invert it (just take the negative of the smoothed curve), and use findpeaks to get the peak (actually the minimum or trough), with the corresponding values, and indices or independent variable values (since findpeaks gives you that option.
Create a model for your curve, and with the start-end information you have, fit each part with the same nonlinear regression routine.
6 commentaires
Star Strider
le 26 Sep 2015
My pleasure.
What part of the ‘mono-exponential’ do you want? I was under the impression you wanted the rise, but if you want the recovery, you have to begin at the peak, not the trough, and decide where to end the record you use in your parameter estimation. (I have no idea what to make of the O2Hb2 data, since it seems nothing like the first set.)
I’m now totally confused as to what you’re asking. I gave you the best method I know of to detect the starting and end points, and estimate the parameters, which is what I understood you wanted. It works.
I have no idea what you’re actually studying, how you’re studying it, or what disorders your patient population has, so my ability to help you is limited. It would be extremely difficult to design one algorithm that applies in both health and disease. That’s simply the nature of physiology in general, and the complexity of normal and compensatory regulatory mechanisms. Be mindful that disease is pleomorphic and multi-factoral, so that the same ‘disease’, or endpoint can (and often does) result from different causative (etiological) processes in different individuals, and the same disease may manifest differently in different individuals.
K_Reset K
le 17 Août 2016
hi,I'm a student from China and my research direction is to calculate the tissue saturation. However, i don't hava a device to get the data, so can you give me some data about HbO2 and Hb with forearm blocking experiments?Thank you very much!
0 commentaires
Voir également
Catégories
En savoir plus sur Multirate Signal Processing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!