matthiasm@8: function [alignment] = getalignment2(dfframe,phwv,period,timesig) matthiasm@8: matthiasm@8: matthiasm@8: period = round(period); matthiasm@8: matthiasm@8: matthiasm@8: matthiasm@8: %normalise and linearly weight most recent strongest matthiasm@8: %dfframe = dfframe.*([1:length(dfframe)]); matthiasm@8: matthiasm@8: % reverse matthiasm@8: dfframe = dfframe(end:-1:1); matthiasm@8: matthiasm@8: % output of alignment comb filter matthiasm@8: phcf = zeros(1,period); matthiasm@8: matthiasm@8: numelem = floor((length(dfframe)-0)/period); matthiasm@8: matthiasm@8: %dfframe = [dfframe' zeros(1,length(dfframe))]'; matthiasm@8: %this line is neeeded for using commented part below matthiasm@8: matthiasm@8: if (~timesig) % initial state matthiasm@8: matthiasm@8: matthiasm@8: matthiasm@8: % fit as many as possible matthiasm@8: for i=1:period matthiasm@8: for b = 1:numelem, matthiasm@8: phcf(i) = phcf(i) + dfframe(( b-1)*period+i) * phwv(i); %+ ... matthiasm@8: % dfframe(( b-1)*period+i+1) * phwv(i) + ... matthiasm@8: % dfframe(( b-1)*period+i+2) * phwv(i);% + ... matthiasm@8: % dfframe(( b-1)*period+i+3) * phwv(i) + ... matthiasm@8: % dfframe(( b-1)*period+i+4) * phwv(i); matthiasm@8: end matthiasm@8: end matthiasm@8: matthiasm@8: else matthiasm@8: matthiasm@8: numelem = timesig; matthiasm@8: for i=1:period matthiasm@8: for b = 1:numelem, matthiasm@8: % for a = 1-b:b-1 matthiasm@8: phcf(i) = phcf(i) + dfframe(( b-1)*period+i) * phwv(i) + ... matthiasm@8: dfframe(( b-1)*period+i+1) * phwv(i) + ... matthiasm@8: dfframe(( b-1)*period+i+2) * phwv(i) + ... matthiasm@8: dfframe(( b-1)*period+i+3) * phwv(i) + ... matthiasm@8: dfframe(( b-1)*period+i+4) * phwv(i); matthiasm@8: % end matthiasm@8: end matthiasm@8: end matthiasm@8: matthiasm@8: end matthiasm@8: matthiasm@8: matthiasm@8: [val,alignment] = max(phcf); matthiasm@8: [val2,bestguess] = max(phwv); matthiasm@8: matthiasm@8: if alignment>=2, matthiasm@8: alignment = alignment-1; matthiasm@8: end