Identifying periods of signal above threshold
1 回表示 (過去 30 日間)
古いコメントを表示
The code below provides number of "bursts" or periods of activity (300 consecutive points = 0.2 s) above a given threshold. How could I add a further condition to the code that identifies "bursts" only when there are at least n values of separation (i.e. 1200 points) (below the threshold) between two different bursts?
above_threshold = (signal > threshold);
minAcceptableLength = 300;
% Find spans that are long enough.
isLongEnough = bwareafilt(above_threshold, [minAcceptableLength, inf]);
% Count the number of spans (bursts) that are long enough.
[labeledSpans, numberOfBursts] = bwlabel(isLongEnough);
0 件のコメント
採用された回答
Image Analyst
2016 年 8 月 16 日
You'd have to look at the inverse: ~isLongEnough. Then call regionprops() to measure the lengths of all the stretches/gaps between the bursts. Then take some action depending on whether they are long enough or not.
labeledLowSignalRegions = bwlabel(~isLongEnough);
props = regionprops(labeledLowSignalRegions, 'Area');
allLengths = [props.Area]
1 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!