Mercurial > hg > ishara
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 |