annotate dsp/hann_filterbank.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 % hann_filterbank - Bank of Hanning (raised cosine) filters
samer@32 2 %
samer@32 3 % hann_filterbank ::
samer@32 4 % E:[[M+2]->nonneg] ~'array of filter edge frequencies',
samer@32 5 % F:[[N]] ~'array of bin frequencies for input spectra'
samer@32 6 % -> [[M,N]] ~'matrix to multiply by input spectra'.
samer@32 7 %
samer@32 8 % Modelled on Malcom Slaney's code in Auditory toolbox.
samer@32 9
samer@32 10 function W=hann_filterbank(edges,f)
samer@32 11 M = length(edges)-2; % total number of filters to prepare
samer@32 12
samer@32 13 lower = edges(1:M);
samer@32 14 center = edges(2:M+1);
samer@32 15 upper = edges(3:M+2);
samer@32 16
samer@32 17 W = zeros(M,length(f));
samer@32 18 for i=1:M
samer@32 19 W(i,:) = (f>lower(i) & f<=center(i)).*(f-lower(i))/(center(i)-lower(i)) ...
samer@32 20 + (f>center(i) & f<upper(i)).*(upper(i)-f)/(upper(i)-center(i));
samer@32 21 end
samer@32 22 W=sparse((1-cos(pi*W))/2);
samer@32 23 end