annotate _beattracker/getalignment2.m @ 9:4ea6619cb3f5 tip

removed log files
author matthiasm
date Fri, 11 Apr 2014 15:55:11 +0100
parents b5b38998ef3b
children
rev   line source
matthiasm@8 1 function [alignment] = getalignment2(dfframe,phwv,period,timesig)
matthiasm@8 2
matthiasm@8 3
matthiasm@8 4 period = round(period);
matthiasm@8 5
matthiasm@8 6
matthiasm@8 7
matthiasm@8 8 %normalise and linearly weight most recent strongest
matthiasm@8 9 %dfframe = dfframe.*([1:length(dfframe)]);
matthiasm@8 10
matthiasm@8 11 % reverse
matthiasm@8 12 dfframe = dfframe(end:-1:1);
matthiasm@8 13
matthiasm@8 14 % output of alignment comb filter
matthiasm@8 15 phcf = zeros(1,period);
matthiasm@8 16
matthiasm@8 17 numelem = floor((length(dfframe)-0)/period);
matthiasm@8 18
matthiasm@8 19 %dfframe = [dfframe' zeros(1,length(dfframe))]';
matthiasm@8 20 %this line is neeeded for using commented part below
matthiasm@8 21
matthiasm@8 22 if (~timesig) % initial state
matthiasm@8 23
matthiasm@8 24
matthiasm@8 25
matthiasm@8 26 % fit as many as possible
matthiasm@8 27 for i=1:period
matthiasm@8 28 for b = 1:numelem,
matthiasm@8 29 phcf(i) = phcf(i) + dfframe(( b-1)*period+i) * phwv(i); %+ ...
matthiasm@8 30 % dfframe(( b-1)*period+i+1) * phwv(i) + ...
matthiasm@8 31 % dfframe(( b-1)*period+i+2) * phwv(i);% + ...
matthiasm@8 32 % dfframe(( b-1)*period+i+3) * phwv(i) + ...
matthiasm@8 33 % dfframe(( b-1)*period+i+4) * phwv(i);
matthiasm@8 34 end
matthiasm@8 35 end
matthiasm@8 36
matthiasm@8 37 else
matthiasm@8 38
matthiasm@8 39 numelem = timesig;
matthiasm@8 40 for i=1:period
matthiasm@8 41 for b = 1:numelem,
matthiasm@8 42 % for a = 1-b:b-1
matthiasm@8 43 phcf(i) = phcf(i) + dfframe(( b-1)*period+i) * phwv(i) + ...
matthiasm@8 44 dfframe(( b-1)*period+i+1) * phwv(i) + ...
matthiasm@8 45 dfframe(( b-1)*period+i+2) * phwv(i) + ...
matthiasm@8 46 dfframe(( b-1)*period+i+3) * phwv(i) + ...
matthiasm@8 47 dfframe(( b-1)*period+i+4) * phwv(i);
matthiasm@8 48 % end
matthiasm@8 49 end
matthiasm@8 50 end
matthiasm@8 51
matthiasm@8 52 end
matthiasm@8 53
matthiasm@8 54
matthiasm@8 55 [val,alignment] = max(phcf);
matthiasm@8 56 [val2,bestguess] = max(phwv);
matthiasm@8 57
matthiasm@8 58 if alignment>=2,
matthiasm@8 59 alignment = alignment-1;
matthiasm@8 60 end