Main Content

Gammatone Filter Bank

Gammatone filter bank

Since R2021b

  • Gammatone filter bank block

Audio Toolbox / Filters


The Gammatone Filter Bank block decomposes a signal by passing it through a bank of gammatone filters equally spaced on the equivalent rectangular bandwidth (ERB) scale. Gammatone filter banks are designed to model the human auditory system.



expand all

Audio input to the filter bank, specified as a scalar, vector, or matrix. If you specify the input as a matrix, the block treats the columns as independent audio channels. If you specify the input as a vector, the block treats the input as containing a single channel.

Data Types: single | double


expand all

Audio output from the filter bank, returned as a scalar, vector, matrix, or 3-D array. The shape of output signal depends on the shape of input signal and Number of filters. If input is an M-by-N matrix, then output is an M-by-Number of filters-by-N array. If N is 1, then output is a matrix.

Data Types: single | double


expand all

Frequency range of the filter bank, specified as a two-element row vector of monotonically increasing values in Hz.

Tunable: No

Number of filters in the filter bank, specified as a positive integer.

Tunable: No

Select this parameter to specify the sample rate from the input port.

Input sample rate, specified as a positive integer in Hz.

Tunable: No


To enable this parameter, set Inherit sample rate from input port to off.

Select this parameter to separate ports for each filter output.

Tunable: No

This button uses the fvtool function to visualize gammatone filter bank responses.

Name of the variable in the base workspace to contain the filter bank when it is exported. The name must be a valid MATLAB® variable name.

When you select this parameter, exporting the filter bank overwrites the variable specified by the Variable name parameter if it already exists in the base workspace. If you do not select this parameter and the specified variable already exists in the workspace, exporting the filter bank creates a new variable with an underscore and a number appended to the variable name. For example, if the variable name is var and it already exists, the exported variable will be named var_1.

Export the filter bank to the base workspace in the variable specified by the Variable name parameter.


You cannot export the filter if you have enabled the Inherit sample rate from input parameter and the model is not running.

Type of simulation to run, specified as one of the following:

  • Interpreted execution –– Simulate model using the MATLAB interpreter. This option shortens startup time and has simulation speed comparable to Code generation. In this mode, you can debug the source code of the block.

  • Code generation –– Simulate model using generated C code. The first time you run a simulation, Simulink® generates C code for the block. The C code is reused for subsequent simulations as long as the model does not change. This option requires additional startup time but the speed of the subsequent simulations is faster than Interpreted execution.

Tunable: No

Block Characteristics

Data Types

double | single

Direct Feedthrough


Multidimensional Signals


Variable-Size Signals


Zero-Crossing Detection



expand all


[1] Slaney, Malcolm. "An Efficient Implementation of the Patterson-Holdsworth Auditory Filter Bank." Apple Computer Technical Report 35, 1993.

[2] Patterson, R.D., K. Robinson, J. Holdsworth, D. McKeown, C. Zhang, and M. Allerhand. "Complex Sounds and Auditory Images." Auditory Physiology and Perception. 1992, pp. 429–446.

[3] Aertsen, A. M. H. J., and P. I. M. Johannesma. "Spectro-Temporal Receptive Fields of Auditory Neurons in the Grassfrog." Biological Cybernetics. Vol. 38, Issue 4, 1980, pp. 223–234.

[4] Glasberg, Brian R., and Brian C. J. Moore. "Derivation of Auditory Filter Shapes from Notched-Noise Data." Hearing Research. Vol. 47. Issue 1-2, 1990, pp. 103–138.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.

Version History

Introduced in R2021b