annotate MAP/old MAP files/MAPrunner.m @ 38:c2204b18f4a2 tip

End nov big change
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 28 Nov 2011 13:34:28 +0000
parents
children
rev   line source
rmeddis@38 1 function MAPrunner(MAPparamsName, AN_spikesOrProbability, ...
rmeddis@38 2 signalCharacteristics, paramChanges, showMapOptions)
rmeddis@38 3
rmeddis@38 4 dbstop if error
rmeddis@38 5 restorePath=path;
rmeddis@38 6 addpath (['..' filesep 'MAP'], ['..' filesep 'wavFileStore'], ...
rmeddis@38 7 ['..' filesep 'utilities'])
rmeddis@38 8
rmeddis@38 9
rmeddis@38 10 %% #3 pure tone, harmonic sequence or speech file input
rmeddis@38 11 signalType= signalCharacteristics.type;
rmeddis@38 12 sampleRate= signalCharacteristics.sampleRate;
rmeddis@38 13 duration=signalCharacteristics.duration; % seconds
rmeddis@38 14 rampDuration=signalCharacteristics.rampDuration; % raised cosine ramp (seconds)
rmeddis@38 15 beginSilence=signalCharacteristics.beginSilence;
rmeddis@38 16 endSilence=signalCharacteristics.endSilence;
rmeddis@38 17 toneFrequency= signalCharacteristics.toneFrequency; % or a pure tone (Hz)
rmeddis@38 18 leveldBSPL=signalCharacteristics.leveldBSPL;
rmeddis@38 19
rmeddis@38 20 BFlist=-1;
rmeddis@38 21
rmeddis@38 22
rmeddis@38 23 %% Generate stimuli
rmeddis@38 24
rmeddis@38 25 switch signalType
rmeddis@38 26 case 'tones'
rmeddis@38 27 % Create pure tone stimulus
rmeddis@38 28 dt=1/sampleRate; % seconds
rmeddis@38 29 time=dt: dt: duration;
rmeddis@38 30 inputSignal=sum(sin(2*pi*toneFrequency'*time), 1);
rmeddis@38 31 amp=10^(leveldBSPL/20)*28e-6; % converts to Pascals (peak)
rmeddis@38 32 inputSignal=amp*inputSignal;
rmeddis@38 33 % apply ramps
rmeddis@38 34 % catch rampTime error
rmeddis@38 35 if rampDuration>0.5*duration, rampDuration=duration/2; end
rmeddis@38 36 rampTime=dt:dt:rampDuration;
rmeddis@38 37 ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ...
rmeddis@38 38 ones(1,length(time)-length(rampTime))];
rmeddis@38 39 inputSignal=inputSignal.*ramp;
rmeddis@38 40 ramp=fliplr(ramp);
rmeddis@38 41 inputSignal=inputSignal.*ramp;
rmeddis@38 42 % add silence
rmeddis@38 43 intialSilence= zeros(1,round(beginSilence/dt));
rmeddis@38 44 finalSilence= zeros(1,round(endSilence/dt));
rmeddis@38 45 inputSignal= [intialSilence inputSignal finalSilence];
rmeddis@38 46
rmeddis@38 47 case 'file'
rmeddis@38 48 %% file input simple or mixed
rmeddis@38 49 [inputSignal sampleRate]=wavread(fileName);
rmeddis@38 50 dt=1/sampleRate;
rmeddis@38 51 inputSignal=inputSignal(:,1);
rmeddis@38 52 targetRMS=20e-6*10^(leveldBSPL/20);
rmeddis@38 53 rms=(mean(inputSignal.^2))^0.5;
rmeddis@38 54 amp=targetRMS/rms;
rmeddis@38 55 inputSignal=inputSignal*amp;
rmeddis@38 56 intialSilence= zeros(1,round(0.1/dt));
rmeddis@38 57 finalSilence= zeros(1,round(0.2/dt));
rmeddis@38 58 inputSignal= [intialSilence inputSignal' finalSilence];
rmeddis@38 59 end
rmeddis@38 60
rmeddis@38 61
rmeddis@38 62 %% run the model
rmeddis@38 63
rmeddis@38 64 MAP1_14(inputSignal, sampleRate, BFlist, ...
rmeddis@38 65 MAPparamsName, AN_spikesOrProbability, paramChanges);
rmeddis@38 66
rmeddis@38 67 %% the model run is now complete. Now display the results
rmeddis@38 68 UTIL_showMAP(showMapOptions, paramChanges)
rmeddis@38 69
rmeddis@38 70 path(restorePath)
rmeddis@38 71