Applies to version: 1.0.0

View the code

Go to function

VERHULST2012 - Cochlear transmission-line model (basic)


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

System Message: WARNING/2 (<string>, line 29)

Option list ends without a blank line; unexpected unindent.
'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)

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 Verhulst, Dau, Shera 2012, through the method described in Altoe et al. 2014

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 scipi 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)
  3. On linux, when problems with GFORTRAN lib appear, try sudo ln -sf /usr/lib64/ /mymatlabroot/sys/os/glnxa64/ (mymatlabroot is usually /usr/local/MATLAB/version


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.