Applies to version: 1.3.0

View the code

Go to function

VERHULST2012 - Process a signal with the cochlear model by Verhulst et. al. 2012


output = verhulst2012(insig,fs,fc,varargin)

Input parameters

sign the input signal to be processed [time channel]. Each channel will be independently processed in parallel.
fs sampling rate (Hz)
fc list of frequencies specifying the probe positions on the basilar membrane, or 'all' to probe all 1000 cochlear sections
spl array of SPLs that correspond to value 1 of the correspondent input channel

Output parameters

V velocity of the basilar membrane sections V(time,section,channel)
Y displacement of the basilar membrane sections Y(time,section,channel)
OAE otto-acoustic emissions given by sound pressure at the middle ear
CF center frequencies of the probed basiliar membrane sections


This function computes the basilar membrane displacement and the velocity of the movement at different positions employing a faster implementation of the nonlinear time-domain model of cochlea by Verhulsts, Dau, Shera 2012, through the method described in Altoe et al. 2014

verhulst2012 accepts the following optional parameters:

'normalizeRms',n array to control the normalization of each channel. With value 1 normalize the energy of the signal, so the SPL corresponds to the RMS of the signal (default 0)
'subject',s the subject number controling the cochlear irregulatiries (default 1)
'irr',i array that enable (1) or disable (0) irregularities and nonlinearities for each simulation (default 1)

The processing is implemented as follows:

  1. the input signal is resampled to the 96 kHz sampling rate employed in the cochlea model
  2. the list of frequencies in fc are converted in to probe positions in a manner that the frequencies are divided evenly into low and high frequency categories.
  3. the signals are processed in parallel
  4. the values obtained are resampled back to the original sampling rate

Requirements and installation:

  1. Python >2.6 is required with numpy and scipy packages. On Linux, use sudo apt-get install python-scipy python-numpy
  2. Compiled files with a C-compiler, e.g. gcc. In amtbase/src/verhulst start make (Linux) or make.bat (Windows)


S. Verhulst, T. Dau, and C. A. Shera. Nonlinear time-domain cochlear model for transient stimulation and human otoacoustic emission. J. Acoust. Soc. Am., 132(6):3842 -- 3848, 2012.

A. Altoè, S. Verhulst, and V. Pulkki. Transmission line cochlear models: improved accuracy and efficiency. J. Acoust. Soc. Am., 136:EL302--EL308, 2014.