Mercurial > hg > ishara
annotate dsp/unbuffer.m @ 61:eff6bddf82e3 tip
Finally implemented perceptual brightness thing.
author | samer |
---|---|
date | Sun, 11 Oct 2015 10:20:42 +0100 |
parents | c3b0cd708782 |
children |
rev | line source |
---|---|
samer@32 | 1 function x=unbuffer(X,hop,H) |
samer@32 | 2 % unbuffer - overlap-and-add signal reconstruction (opposite of buffer) |
samer@32 | 3 % |
samer@32 | 4 % unbuffer :: |
samer@32 | 5 % [[N,T]] ~'overlapping frames', |
samer@32 | 6 % natural ~'hop size', |
samer@32 | 7 % ([[N]] | N:natural->[[N]]) ~'window or window function' |
samer@32 | 8 % -> [[T]]. |
samer@32 | 9 |
samer@32 | 10 |
samer@32 | 11 [N L]=size(X); |
samer@32 | 12 T=N+(L-1)*hop; |
samer@32 | 13 x=zeros(T,1); |
samer@32 | 14 K=1:N; |
samer@32 | 15 if (nargin<3), H=hanning(N); |
samer@32 | 16 elseif ~isnumeric(H) |
samer@32 | 17 % assume it's a window function handle |
samer@32 | 18 H=feval(H,N); |
samer@32 | 19 end |
samer@32 | 20 |
samer@32 | 21 for k=1:L |
samer@32 | 22 x(K)=x(K)+H.*X(:,k); |
samer@32 | 23 K=K+hop; |
samer@32 | 24 end |
samer@32 | 25 |