matthiasm@8: function period = refineperiod(period,acf,timesig); matthiasm@8: matthiasm@8: matthiasm@8: if ~timesig, timesig=4; end matthiasm@8: matthiasm@8: % peaks = zeros(1,timesig); matthiasm@8: % ind = period; matthiasm@8: % for i=1:timesig matthiasm@8: % segment = acf(ind*i-(i-1):ind*i+(i-1)); matthiasm@8: % [val,loc] = max(segment); matthiasm@8: % peaks(i) = loc + ind*i-(i-1)-1; matthiasm@8: % end matthiasm@8: % matthiasm@8: % matthiasm@8: % for i=1:timesig matthiasm@8: % peaks(i) = (peaks(i)-1)/i; matthiasm@8: % end matthiasm@8: % matthiasm@8: % period = mean(peaks); matthiasm@8: % matthiasm@8: % matthiasm@8: matthiasm@8: matthiasm@8: matthiasm@8: matthiasm@8: matthiasm@8: % matthiasm@8: % matthiasm@8: if ~timesig matthiasm@8: timesig =4; matthiasm@8: end matthiasm@8: matthiasm@8: ind = period; matthiasm@8: matthiasm@8: if (timesig==4) matthiasm@8: peak = zeros(1,4); matthiasm@8: matthiasm@8: peak(1) = ind; matthiasm@8: matthiasm@8: [val2,ind2] = max(acf(2*ind-1:2*ind+1)); matthiasm@8: peak(2) = ind2 + 2*ind-2; matthiasm@8: matthiasm@8: [val3,ind3] = max(acf(3*ind-2:3*ind+2)); matthiasm@8: peak(3) = ind3 + 3*ind-4; matthiasm@8: matthiasm@8: [val4,ind4] = max(acf(4*ind-3:4*ind+3)); matthiasm@8: peak(4) = ind4 + 4*ind-9; matthiasm@8: matthiasm@8: period = mean([ peak(1) peak(2)/2 peak(3)/3 peak(4)/4 ]); matthiasm@8: matthiasm@8: else matthiasm@8: matthiasm@8: peak = zeros(1,3); matthiasm@8: matthiasm@8: peak(1) = ind; matthiasm@8: matthiasm@8: [val2,ind2] = max(acf(2*ind-1:2*ind+1)); matthiasm@8: peak(2) = ind2 +2*ind-2; matthiasm@8: matthiasm@8: [val3,ind3] = max(acf(3*ind-2:3*ind+2)); matthiasm@8: peak(3) = ind3 + 3*ind-4; matthiasm@8: matthiasm@8: period = mean([ peak(1) peak(2)/2 peak(3)/3 ]); matthiasm@8: matthiasm@8: end