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.
root / MAP / old MAP files / MAPrunner.m @ 38:c2204b18f4a2
History | View | Annotate | Download (2.39 KB)
| 1 | 38:c2204b18f4a2 | 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) |