annotate arrows/aolapadd.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents 672052bd81f8
children
rev   line source
samer@0 1 function o=aolapadd(N,hop)
samer@0 2 % aolapadd - overlap-and-add signal reconstruction arrow
samer@0 3 %
samer@0 4 % aolapadd ::
samer@0 5 % N:natural ~'frame size',
samer@0 6 % M:natural ~'hop size'
samer@0 7 % -> arrow( {[[N]]}, {[[M]]}, [[N-M]]).
samer@0 8
samer@0 9
samer@0 10 I=1:hop;
samer@0 11 ol=N-hop;
samer@0 12
samer@0 13 o=loop1(1,1,@olapadd);
samer@0 14
samer@0 15 function [fn,s0]=olapadd(sz)
samer@0 16 s0=zeros(ol,1);
samer@0 17 if ol<=hop, J=1:ol; K=hop+1:N; fn=ifx(sz(2)==1,@st1,@st2);
samer@0 18 else J=hop+1:ol; K=ol+1:N; fn=ifx(sz(2)==1,@st3,@st4);
samer@0 19 end
samer@0 20
samer@0 21 function [y,s]=st1(x,s)
samer@0 22 y=x(I);
samer@0 23 y(J)=y(J)+s;
samer@0 24 s=x(K);
samer@0 25 end
samer@0 26
samer@0 27 function [y,s]=st2(x,s)
samer@0 28 width=size(x,2);
samer@0 29 y=zeros(hop,width);
samer@0 30 for i=1:width
samer@0 31 y(:,i)=x(I,i);
samer@0 32 y(J,i)=y(J,i)+s;
samer@0 33 s=x(K,i);
samer@0 34 end
samer@0 35 end
samer@0 36
samer@0 37 function [y,s]=st3(x,s)
samer@0 38 y=(s(I)+x(I));
samer@0 39 s=[s(J)+x(J);x(K)];
samer@0 40 end
samer@0 41
samer@0 42 function [y,s]=st4(x,s)
samer@0 43 width=size(x,2);
samer@0 44 y=zeros(hop,width);
samer@0 45 for i=1:width
samer@0 46 y(:,i)=(s(I)+x(I,i));
samer@0 47 s=[s(J)+x(J,i);x(K,i)];
samer@0 48 end
samer@0 49 end
samer@0 50 end
samer@0 51 end
samer@0 52