To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

The primary repository for this project is hosted at git://github.com/rmeddis/MAP.git .
This repository is a read-only copy which is updated automatically every hour.

Statistics Download as Zip
| Branch: | Revision:

root / MAP / MAPrunner.m @ 35:25d53244d5c8

History | View | Annotate | Download (2.39 KB)

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