Mercurial > hg > yjdafx13bpr
diff Sirtassa/createBPFilters.m @ 0:2cd427e000b0
initial commit
author | Yannick JACOB <y.jacob@se12.qmul.ac.uk> |
---|---|
date | Tue, 03 Sep 2013 12:53:16 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Sirtassa/createBPFilters.m Tue Sep 03 12:53:16 2013 +0100 @@ -0,0 +1,23 @@ +function filterBasis = createBPFilters(maxFreq,nbBandPassFilters,fftSize,factor) +melfreq = linspace(0,2595*log10(1 + maxFreq/700),nbBandPassFilters); +hertzfreq = 700*(10.^(melfreq/2595)-1); + +filterBasis = zeros(fftSize/2+1,nbBandPassFilters); +mid = floor(hertzfreq(1)*factor+1); +last = floor(hertzfreq(2)*factor+1); +if (mid~=last) + + filterBasis(mid:last,1) = 1:-1/(last-mid):0; + for ind = 1:length(hertzfreq) -2 + first = floor(hertzfreq(ind)*factor+1); + mid = floor(hertzfreq(ind+1)*factor+1); + last = floor(hertzfreq(ind +2)*factor+1); + filterBasis(first:mid,ind+1) = 0:1/(mid-first):1; + filterBasis(mid:last,ind+1) = 1:-1/(last-mid):0; + end + first = floor(hertzfreq(end-1)*factor+1); + mid = floor(hertzfreq(end)*factor+1); + filterBasis(first:mid,end) = 0:1/(mid-first):1; +% else +% error('myApp:filterSize', 'Too many filters for parameters') +end \ No newline at end of file