samer@32: % tri_filterbank - Bank of triangular filters samer@32: % samer@32: % tri_filterbank :: samer@32: % E:[[M+2]->nonneg] ~'array of filter edge frequencies', samer@32: % F:[[N]] ~'array of bin frequencies for input spectra' samer@32: % -> [[M,N]] ~'matrix to multiply by input spectra'. samer@32: % samer@32: % Modelled on Malcom Slaney's code in Auditory toolbox. samer@32: samer@32: function W=tri_filterbank(edges,f) samer@32: M = length(edges)-2; % total number of filters to prepare samer@32: samer@32: lower = edges(1:M); samer@32: center = edges(2:M+1); samer@32: upper = edges(3:M+2); samer@32: samer@32: W = zeros(M,length(f)); samer@32: for i=1:M samer@32: W(i,:) = (f>lower(i) & f<=center(i)).*(f-lower(i))/(center(i)-lower(i)) ... samer@32: + (f>center(i) & f