Daniel@0: function cfArray = ERBSpace(lowFreq, highFreq, N) Daniel@0: % function cfArray = ERBSpace(lowFreq, highFreq, N) Daniel@0: % This function computes an array of N frequencies uniformly spaced between Daniel@0: % highFreq and lowFreq on an ERB scale. N is set to 100 if not specified. Daniel@0: % Daniel@0: % See also linspace, logspace, MakeERBCoeffs, MakeERBFilters. Daniel@0: % Daniel@0: % For a definition of ERB, see Moore, B. C. J., and Glasberg, B. R. (1983). Daniel@0: % "Suggested formulae for calculating auditory-filter bandwidths and Daniel@0: % excitation patterns," J. Acoust. Soc. Am. 74, 750-753. Daniel@0: Daniel@0: if nargin < 1 Daniel@0: lowFreq = 100; Daniel@0: end Daniel@0: Daniel@0: if nargin < 2 Daniel@0: highFreq = 44100/4; Daniel@0: end Daniel@0: Daniel@0: if nargin < 3 Daniel@0: N = 100; Daniel@0: end Daniel@0: Daniel@0: % Change the following three parameters if you wish to use a different Daniel@0: % ERB scale. Must change in MakeERBCoeffs too. Daniel@0: EarQ = 9.26449; % Glasberg and Moore Parameters Daniel@0: minBW = 24.7; Daniel@0: order = 1; Daniel@0: Daniel@0: % All of the followFreqing expressions are derived in Apple TR #35, "An Daniel@0: % Efficient Implementation of the Patterson-Holdsworth Cochlear Daniel@0: % Filter Bank." See pages 33-34. Daniel@0: cfArray = -(EarQ*minBW) + exp((1:N)'*(-log(highFreq + EarQ*minBW) + ... Daniel@0: log(lowFreq + EarQ*minBW))/N) * (highFreq + EarQ*minBW); Daniel@0: