Auditory nerve response model (Tan, Carney 2003)

 Download zip file 
Help downloading and running models
A computational model was developed to simulate the responses of auditory-nerve (AN) fibers in cat. The incorporation of both the level-independent frequency glide and the level-dependent compressive nonlinearity into a phenomenological model for the AN was the primary focus of this work. The ability of this model to process arbitrary sound inputs makes it a useful tool for studying peripheral auditory processing.
1 . Tan Q, Carney LH (2003) A phenomenological model for the responses of auditory-nerve fibers. II. Nonlinear tuning with a frequency glide. J Acoust Soc Am 114:2007-20 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type:
Brain Region(s)/Organism:
Cell Type(s): Cochlea hair outer GLU cell; Auditory nerve;
Gap Junctions:
Simulation Environment: C or C++ program; MATLAB;
Model Concept(s): Temporal Pattern Generation;
Implementer(s): Tan, Qing ;
Search NeuronDB for information about:  Cochlea hair outer GLU cell;
% Simple Test for AN3 code     10/19/03  LHC
% Response of 1 kHz CF fiber to a 100 Hz tone
clear all
close all

CF = 1000; % Hz
tonefreq = 1000;  % Hz

srate = 50000; % sampling rate (Hz)
tdres = 1/srate;
dur = 0.050; % stimulus duration in seconds 
ramplength = 0.010; % ramp duration in seconds (note - duration includes 1/2 of ramp)
rampts = ramplength * srate;
steadypts = dur * srate - rampts;
totalpts = steadypts + (rampts*2);
% WAVEFORM ENVELOPE - Cosine^2 On/off ramps
step = pi/(rampts-1);
offramp = (1+cos(x))./2;
onramp = (1+cos(fliplr(x)))./2;
wholeramp = [onramp o offramp]; % Envelope for stimulus (i.e. on/off ramps)
quiet = zeros(1,floor(0.050/tdres)); % use this to add silence at end of stimulus
clear step x;

plotnum = 0;
for spl = 0:20:80 
    plotnum = plotnum + 1;
    % Amplitude scaling of tone (into Pascals for AN model)
    aa = (1/0.707) * 20.e-6 * 10.0^(spl / 20.0); % Scale tone into Pascals <- Key !!!
    step = tonefreq * 2.0 * pi * tdres;
    x=[0:step:((totalpts-1)*step)]; % This is a speedy way to create a tone.
    inputsound = aa * sin(x); %scale tone 
    inputsound = [(inputsound .* wholeramp) quiet] ; % mult by on/off ramps, and add quiet period at end
    clear step x;
    sout=anmod3m(CF, inputsound);

    xlabel('Time (msec)')
    text(1.25 * dur * 1e3,max(sout)/2.,[num2str(spl) 'dB SPL']);
    if plotnum == 1
        title(['CF=' num2str(CF) ' Hz - Response to Tone at CF'])


Loading data, please wait...