How to extract the time interval from areas of interest from a signal?

Hello! I have a blood pressure signal that looks like this:
and I want to find the time interval for each descent part ( in my case 4 intervals). But I don't know how since it doesn't have any pattern. If anyone can, please help me. Thank you.

1 Comment

It actually has a pattern, but you do not have a time vector in your file. You might be able to recover the time vector if you know what the heart rate was.

Sign in to comment.

 Accepted Answer

First you have to filter out the outliers. How are you doing that? Perhaps a median filter might work if they're not too close together. Then you can just invert the image and use findpeaks(). I can't do it because you didn't attach the actual data.

5 Comments

Here is Alexandra's actual data that u need ('presiune.mat') . Let us know about how your code looks and how does the final result look because some of us don't understand how to implement the code in matlab even if they partially or totally understood your explanation in plain words. Thanks.
Loading the file doesn't work - it says it's corrupt. Can you save the data in an xlsx workbook or a csv file?
Hey!Hope it works now.Let me know about your further results. Thank you for your help.
Something went wrong with your original picture you attached. Please fix it.
Try this. Let me know how it goes:
signal = xlsread('presiune.xlsx');
plot(signal, 'b-');
[values, indexes] = findpeaks(-signal, 'MinPeakProminence', 25);
grid on;
hold on;
stem(indexes, 50*ones(1, length(indexes)));

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!