Splitting the signal into different parts.

10 views (last 30 days)
JA
JA on 8 Jun 2016
Edited: goerk on 9 Jun 2016
I am trying to analyze and apply filter to a signal(measurements). But the problem is while recording the measurements, between 2 timestamps the value was not recorded, so the program used to record these measurements just connected these 2 loose ends, this is a problem for my algorithm. so i want to split the signal into multiple parts based on this abnormality. I need to do this automatically. Below is the image of the abnormality.
Below i have shown a pic of plot(diff(t)).
So my signal will now divided into 3 parts. Any idea how to do this will be appreciated.
  3 Comments
JA
JA on 8 Jun 2016
I just zoomed in to show how it looks, there is actually 2 time gaps.
JA
JA on 8 Jun 2016
the t index around 7500, is the one showing from t= 20, to t = 21.

Sign in to comment.

Answers (1)

goerk
goerk on 8 Jun 2016
Edited: goerk on 9 Jun 2016
If you have a signal like this shown in Figure2 you can use this information.
changeDetected = [false, diff(t)>0.1]; %get the points with a time step
categoryID = cumsum(changeDetected); %get the category of the time-slot (starting from 0)
nofCategorys = categoryID(end)+1; % number of found time-slots
for ii = 1:nofCategorys
mask = categoryID == (ii-1); % get a mask for the current category
extractedSignal = signal(mask); % get the signal of the current time slot
erg(ii)=yourAlgorithm(extractedSignal); % make your calculations
end
where your input data are the vetors 'signal' and 't'.
  7 Comments
goerk
goerk on 9 Jun 2016
Edited: goerk on 9 Jun 2016
Yes, you can loop through all categorys (time-slots) and analyse the specific signal part. I fixed this typo in the statement above.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!