Applies to version: 1.1.0

View the code

Go to function

may2011_gammatone - Auditory filterbank


[BM,ENV,GFB] = may2011_gammatone(IN)
[BM,ENV,GFB] = may2011_gammatone(IN,GFB)

Input parameters

IN audio object. The gammatone parameter will be initialized using the audio sampling frequency.
IN mono input signal [nSamples x nChannels]
GFB gammatone parameter structure (see gammatoneInit)
IN multi-channel input signal [nSamples x nChannels]
FS sampling frequency in Hz
FLOW center frequency of lowest auditory filter (default, FLOW = 80)
FUP center frequency of highest auditory filter (default, FUP = 5e3)
NFILTER number of auditory filters which will be spaced linear in the ERB domain. If NFILTER is not a scalar but a vector, the first value is assumed to represent the number of auditory channels and the following values represents the indices of the filters which should be processed. This can be useful if a large number of channels is required as MATLAB might run out of memory for long signals if all filters should be computed in one step. (default, NFILTER = round(freq2erb(FS/2))
bEAR Adjust gain coefficients of the auditory channels to incorporate middle ear effects. Note that this feature can only be used if the center frequencies of the auditory channels are above 20 Hz and below 12500 Hz. (default, bEAR = true)
bALIGN phase-aligned gammatone output (non-causal output) (default, bALIGN = false)
bINFO info flag printing gammatone parameters on the screen (default, bINFO = false)

Output parameters

BM basilar membrane displacement [nSamples x nFilter]
ENV instantaneous envelope [nSamples x nFilter]
GFB gammatone parameter structure


If only the basilar membrane output "bm" is required, computing BM = gammatone(...); will be significantly faster then computing the envelope as well: [BM,ENV] = gammatone(...);

The MEX implementaion is based on the source code of the ohio-state university:

nSamples = 500; % Initialize gammatone parameter structure GFB = gammatoneInit(20e3); % Filter impulse with gammatone filtering bm = gammatone([1; zeros(nSamples-1,1)],GFB); % Plot result waveplot(1:nSamples,,bm);

Developed with Matlab (R2007a).