rmeddis@9
|
1 function demoTwisterSpikes
|
rmeddis@9
|
2
|
rmeddis@9
|
3 % MAPdemo runs the MATLAB auditory periphery model (MAP1_14) as far as
|
rmeddis@23
|
4 % IC (spikes) with graphical output
|
rmeddis@9
|
5
|
rmeddis@24
|
6 restorePath=path;
|
rmeddis@24
|
7 addpath (['..' filesep 'MAP'], ['..' filesep 'wavFileStore'], ...
|
rmeddis@24
|
8 ['..' filesep 'utilities'])
|
rmeddis@24
|
9
|
rmeddis@9
|
10
|
rmeddis@9
|
11 %% #1 parameter file name
|
rmeddis@9
|
12 MAPparamsName='Normal';
|
rmeddis@9
|
13
|
rmeddis@9
|
14
|
rmeddis@24
|
15 %% #2 spikes (slow) representation
|
rmeddis@9
|
16 AN_spikesOrProbability='spikes';
|
rmeddis@9
|
17
|
rmeddis@9
|
18
|
rmeddis@24
|
19 %% #3 speech file input
|
rmeddis@9
|
20 fileName='twister_44kHz';
|
rmeddis@9
|
21
|
rmeddis@9
|
22
|
rmeddis@9
|
23 %% #4 rms level
|
rmeddis@9
|
24 % signal details
|
rmeddis@9
|
25 leveldBSPL=70; % dB SPL
|
rmeddis@9
|
26
|
rmeddis@9
|
27
|
rmeddis@9
|
28 %% #5 number of channels in the model
|
rmeddis@9
|
29 % 21-channel model (log spacing)
|
rmeddis@38
|
30 numChannels=11;
|
rmeddis@35
|
31 lowestBF=250; highestBF= 8000;
|
rmeddis@9
|
32 BFlist=round(logspace(log10(lowestBF), log10(highestBF), numChannels));
|
rmeddis@9
|
33
|
rmeddis@9
|
34
|
rmeddis@9
|
35 %% #6 change model parameters
|
rmeddis@38
|
36 paramChanges={};
|
rmeddis@9
|
37
|
rmeddis@9
|
38 %% delare showMap options
|
rmeddis@9
|
39 showMapOptions=[]; % use defaults
|
rmeddis@9
|
40
|
rmeddis@9
|
41 % or (example: show everything including an smoothed SACF output
|
rmeddis@35
|
42 showMapOptions.printModelParameters=1;
|
rmeddis@35
|
43 showMapOptions.showModelOutput=1;
|
rmeddis@35
|
44 showMapOptions.printFiringRates=1;
|
rmeddis@35
|
45 showMapOptions.showACF=0;
|
rmeddis@35
|
46 showMapOptions.showEfferent=0;
|
rmeddis@35
|
47 showMapOptions.surfSpikes=0;
|
rmeddis@38
|
48 showMapOptions.surfAN=0; % 2D plot of HSR response
|
rmeddis@32
|
49
|
rmeddis@9
|
50 %% Generate stimuli
|
rmeddis@35
|
51 [inputSignal sampleRate]=wavread(fileName);
|
rmeddis@35
|
52 inputSignal(:,1);
|
rmeddis@35
|
53 targetRMS=20e-6*10^(leveldBSPL/20);
|
rmeddis@35
|
54 rms=(mean(inputSignal.^2))^0.5;
|
rmeddis@35
|
55 amp=targetRMS/rms;
|
rmeddis@35
|
56 inputSignal=inputSignal*amp;
|
rmeddis@9
|
57
|
rmeddis@9
|
58
|
rmeddis@9
|
59 %% run the model
|
rmeddis@9
|
60 tic
|
rmeddis@9
|
61
|
rmeddis@9
|
62 fprintf('\n')
|
rmeddis@9
|
63 disp(['Signal duration= ' num2str(length(inputSignal)/sampleRate)])
|
rmeddis@9
|
64 disp([num2str(numChannels) ' channel model'])
|
rmeddis@9
|
65 disp('Computing ...')
|
rmeddis@26
|
66
|
rmeddis@9
|
67 MAP1_14(inputSignal, sampleRate, BFlist, ...
|
rmeddis@9
|
68 MAPparamsName, AN_spikesOrProbability, paramChanges);
|
rmeddis@26
|
69
|
rmeddis@9
|
70
|
rmeddis@9
|
71 % the model run is now complete. Now display the results
|
rmeddis@38
|
72 UTIL_showMAP(showMapOptions)
|
rmeddis@9
|
73
|
rmeddis@9
|
74 toc
|
rmeddis@9
|
75 path(restorePath)
|
rmeddis@9
|
76
|