data = 0.25*ones(size(x));
data = max(data,-cos(x).*(1+x/10));
min_contiguous_samples = 10;
for ci=1:fix((m-buffer)/shift +1)
start_index = 1+(ci-1)*shift;
stop_index = min(start_index+ buffer-1,m);
time_index(ci) = round((start_index+stop_index)/2);
rms_data(ci) = my_rms(data(start_index:stop_index));
ind1 = (rms_data<=max(rms_data)/2);
ind2 = (rms_data>max(rms_data)/2);
[begin2,ends2] = find_start_end_group(ind2);
length_ind2 = ends2 - begin2;
ind22= length_ind2>min_contiguous_samples;
rms_data1 = rms_data(ind1);
rms_data2 = rms_data(ind2);
x2_begin = x_rms(begin2);
data_begin = interp1(x,data,x2_begin);
data_ends = interp1(x,data,x2_ends);
plot(x,data,'k',x1,rms_data1,'g.',x2,rms_data2,'r.',x2_begin,data_begin,'dc',x2_ends,data_ends,'dm','MarkerSize',12);
legend('signal','rms below 50%','rms above 50%','begin points','end points');
for ci = 1:length(begin2)
ind = (x>=x2_begin(ci) & x<=x2_ends(ci))
data_store{ci} = [xx(:) yy(:)];
function [begin,ends] = find_start_end_group(ind)
ends = find(D == -1) - 1;
function x_rms = my_rms(x)
x_rms = sqrt(mean(x.^2));