Why can't you just threshold the signal and then use regionprops() to find out where the silent regions start and stop? I know you've used regionprops() before.
[silentRegions, numRegions] = y < someThreshold;
labeledRegions = bwlabel(silentRegions);
props = regionprops(labeledRegions, 'PixelList');
for k = 1 : numRegions
fprintf('Silence region %d is between element %d and %d.\n',...
k, props(k).PixelList(1), props(k).PixelList(end));
end
Best Answer