rmeddis@22
|
1 function method=MAPparamsNormal ...
|
rmeddis@22
|
2 (BFlist, sampleRate, showParams)
|
rmeddis@22
|
3 % MAPparams<> establishes a complete set of MAP parameters
|
rmeddis@22
|
4 % Parameter file names must be of the form <MAPparams> <name>
|
rmeddis@22
|
5 %
|
rmeddis@22
|
6 % input arguments
|
rmeddis@22
|
7 % BFlist (optional) specifies the desired list of channel BFs
|
rmeddis@22
|
8 % otherwise defaults set below
|
rmeddis@22
|
9 % sampleRate (optional), default is 50000.
|
rmeddis@22
|
10 % showParams (optional) =1 prints out the complete set of parameters
|
rmeddis@22
|
11 % output argument
|
rmeddis@22
|
12 % method passes a miscelleny of values
|
rmeddis@22
|
13
|
rmeddis@22
|
14 global inputStimulusParams OMEParams DRNLParams
|
rmeddis@22
|
15 global IHC_VResp_VivoParams IHCpreSynapseParams AN_IHCsynapseParams
|
rmeddis@22
|
16 global MacGregorParams MacGregorMultiParams filteredSACFParams
|
rmeddis@22
|
17 global experiment % used by calls from multiThreshold only
|
rmeddis@22
|
18 global IHC_cilia_RPParams
|
rmeddis@22
|
19
|
rmeddis@22
|
20 currentFile=mfilename; % i.e. the name of this mfile
|
rmeddis@22
|
21 method.parameterSource=currentFile(10:end); % for the record
|
rmeddis@22
|
22
|
rmeddis@22
|
23 efferentDelay=0.010;
|
rmeddis@22
|
24 method.segmentDuration=efferentDelay;
|
rmeddis@22
|
25
|
rmeddis@22
|
26 if nargin<3, showParams=0; end
|
rmeddis@22
|
27 if nargin<2, sampleRate=50000; end
|
rmeddis@22
|
28 if nargin<1 || BFlist(1)<0 % if BFlist= -1, set BFlist to default
|
rmeddis@22
|
29 lowestBF=250; highestBF= 8000; numChannels=21;
|
rmeddis@22
|
30 % 21 chs (250-8k)includes BFs at 250 500 1000 2000 4000 8000
|
rmeddis@22
|
31 BFlist=round(logspace(log10(lowestBF),log10(highestBF),numChannels));
|
rmeddis@22
|
32 end
|
rmeddis@22
|
33 % BFlist=1000;
|
rmeddis@22
|
34
|
rmeddis@22
|
35 % preserve for backward campatibility
|
rmeddis@22
|
36 method.nonlinCF=BFlist;
|
rmeddis@22
|
37 method.dt=1/sampleRate;
|
rmeddis@22
|
38
|
rmeddis@22
|
39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
rmeddis@22
|
40 % set model parameters
|
rmeddis@22
|
41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
rmeddis@22
|
42
|
rmeddis@22
|
43 %% #1 inputStimulus
|
rmeddis@22
|
44 inputStimulusParams=[];
|
rmeddis@22
|
45 inputStimulusParams.sampleRate= sampleRate;
|
rmeddis@22
|
46
|
rmeddis@22
|
47 %% #2 outerMiddleEar
|
rmeddis@22
|
48 OMEParams=[]; % clear the structure first
|
rmeddis@22
|
49 % outer ear resonances band pass filter [gain lp order hp]
|
rmeddis@22
|
50 OMEParams.externalResonanceFilters= [ 10 1 1000 4000];
|
rmeddis@22
|
51
|
rmeddis@22
|
52 % highpass stapes filter
|
rmeddis@22
|
53 % Huber gives 2e-9 m at 80 dB and 1 kHz (2e-13 at 0 dB SPL)
|
rmeddis@22
|
54 OMEParams.OMEstapesLPcutoff= 1000;
|
rmeddis@22
|
55 OMEParams.stapesScalar= 45e-9;
|
rmeddis@22
|
56
|
rmeddis@22
|
57 % Acoustic reflex: maximum attenuation should be around 25 dB Price (1966)
|
rmeddis@22
|
58 % i.e. a minimum ratio of 0.056.
|
rmeddis@22
|
59 % 'spikes' model: AR based on brainstem spiking activity (LSR)
|
rmeddis@22
|
60 OMEParams.rateToAttenuationFactor=0.004; % * N(all ICspikes)
|
rmeddis@22
|
61 % OMEParams.rateToAttenuationFactor=0; % * N(all ICspikes)
|
rmeddis@22
|
62
|
rmeddis@22
|
63 % 'probability model': Ar based on AN firing probabilities (LSR)
|
rmeddis@22
|
64 OMEParams.rateToAttenuationFactorProb=0.003;% * N(all ANrates)
|
rmeddis@22
|
65 % OMEParams.rateToAttenuationFactorProb=0;% * N(all ANrates)
|
rmeddis@22
|
66
|
rmeddis@22
|
67 % asymptote should be around 100-200 ms
|
rmeddis@22
|
68 OMEParams.ARtau=.05; % AR smoothing function
|
rmeddis@22
|
69 % delay must be longer than the segment length
|
rmeddis@22
|
70 OMEParams.ARdelay=efferentDelay; %Moss gives 8.5 ms latency
|
rmeddis@22
|
71 OMEParams.ARrateThreshold=0;
|
rmeddis@22
|
72
|
rmeddis@22
|
73 %% #3 DRNL
|
rmeddis@22
|
74 DRNLParams=[]; % clear the structure first
|
rmeddis@22
|
75 DRNLParams.BFlist=BFlist;
|
rmeddis@22
|
76
|
rmeddis@22
|
77 % DRNL nonlinear path
|
rmeddis@22
|
78 DRNLParams.a=3e4; % nonlinear path gain (below compression threshold)
|
rmeddis@22
|
79 <<<<<<< HEAD
|
rmeddis@22
|
80 DRNLParams.a=3e2; % DRNL.a=0 means no OHCs (no nonlinear path)
|
rmeddis@22
|
81 =======
|
rmeddis@22
|
82 DRNLParams.a=5e2; % DRNL.a=0 means no OHCs (no nonlinear path)
|
rmeddis@22
|
83 >>>>>>> 77bdf847c4be95767d3ea519d77878f9414a2686
|
rmeddis@22
|
84
|
rmeddis@22
|
85 DRNLParams.b=8e-6; % *compression threshold raised compression
|
rmeddis@22
|
86 % DRNLParams.b=1; % b=1 means no compression
|
rmeddis@22
|
87
|
rmeddis@22
|
88 DRNLParams.c=0.2; % compression exponent
|
rmeddis@22
|
89 % nonlinear filters
|
rmeddis@22
|
90 DRNLParams.nonlinCFs=BFlist;
|
rmeddis@22
|
91 DRNLParams.nonlinOrder= 3; % order of nonlinear gammatone filters
|
rmeddis@22
|
92 p=0.2895; q=170; % human (% p=0.14; q=366; % cat)
|
rmeddis@22
|
93 DRNLParams.nlBWs= p * BFlist + q;
|
rmeddis@22
|
94 DRNLParams.p=p; DRNLParams.q=q; % save p and q for printing only
|
rmeddis@22
|
95
|
rmeddis@22
|
96 % DRNL linear path:
|
rmeddis@22
|
97 DRNLParams.g=100; % linear path gain factor
|
rmeddis@22
|
98 % linCF is not necessarily the same as nonlinCF
|
rmeddis@22
|
99 minLinCF=153.13; coeffLinCF=0.7341; % linCF>nonlinBF for BF < 1 kHz
|
rmeddis@22
|
100 DRNLParams.linCFs=minLinCF+coeffLinCF*BFlist;
|
rmeddis@22
|
101 DRNLParams.linOrder= 3; % order of linear gammatone filters
|
rmeddis@22
|
102 minLinBW=100; coeffLinBW=0.6531;
|
rmeddis@22
|
103 DRNLParams.linBWs=minLinBW + coeffLinBW*BFlist; % bandwidths of linear filters
|
rmeddis@22
|
104
|
rmeddis@22
|
105 % DRNL MOC efferents
|
rmeddis@22
|
106 DRNLParams.MOCdelay = efferentDelay; % must be < segment length!
|
rmeddis@22
|
107 % 'spikes' model: MOC based on brainstem spiking activity (HSR)
|
rmeddis@22
|
108 DRNLParams.rateToAttenuationFactor = .009; % strength of MOC
|
rmeddis@22
|
109 DRNLParams.rateToAttenuationFactor = .004; % strength of MOC
|
rmeddis@22
|
110 % DRNLParams.rateToAttenuationFactor = 0; % strength of MOC
|
rmeddis@22
|
111
|
rmeddis@22
|
112 % 'probability' model: MOC based on AN spiking activity (HSR)
|
rmeddis@22
|
113 <<<<<<< HEAD
|
rmeddis@22
|
114 DRNLParams.rateToAttenuationFactorProb = .007; % strength of MOC
|
rmeddis@22
|
115 DRNLParams.rateToAttenuationFactorProb = .002; % strength of MOC
|
rmeddis@22
|
116 % DRNLParams.rateToAttenuationFactorProb = .0; % strength of MOC
|
rmeddis@22
|
117 DRNLParams.MOCtau =.03; % smoothing for MOC
|
rmeddis@22
|
118 =======
|
rmeddis@22
|
119 DRNLParams.rateToAttenuationFactorProb = .004; % strength of MOC
|
rmeddis@22
|
120 % DRNLParams.rateToAttenuationFactorProb = .0; % strength of MOC
|
rmeddis@22
|
121 DRNLParams.MOCtau =.1; % smoothing for MOC
|
rmeddis@22
|
122 >>>>>>> 77bdf847c4be95767d3ea519d77878f9414a2686
|
rmeddis@22
|
123 DRNLParams.MOCrateThreshold =50; % set to AN rate threshold
|
rmeddis@22
|
124
|
rmeddis@22
|
125
|
rmeddis@22
|
126 %% #4 IHC_cilia_RPParams
|
rmeddis@22
|
127
|
rmeddis@22
|
128 IHC_cilia_RPParams.tc= 0.0003; % 0.0003 filter time simulates viscocity
|
rmeddis@22
|
129 % IHC_cilia_RPParams.tc= 0.0005; % 0.0003 filter time simulates viscocity
|
rmeddis@22
|
130 IHC_cilia_RPParams.C= 0.05; % 0.1 scalar (C_cilia )
|
rmeddis@22
|
131 IHC_cilia_RPParams.u0= 5e-9;
|
rmeddis@22
|
132 IHC_cilia_RPParams.s0= 30e-9;
|
rmeddis@22
|
133 IHC_cilia_RPParams.u1= 1e-9;
|
rmeddis@22
|
134 IHC_cilia_RPParams.s1= 1e-9;
|
rmeddis@22
|
135
|
rmeddis@22
|
136 IHC_cilia_RPParams.Gmax= 5e-9; % 2.5e-9 maximum conductance (Siemens)
|
rmeddis@22
|
137 IHC_cilia_RPParams.Ga= 1e-9; % 4.3e-9 fixed apical membrane conductance
|
rmeddis@22
|
138
|
rmeddis@22
|
139 % #5 IHC_RP
|
rmeddis@22
|
140 IHC_cilia_RPParams.Cab= 4e-012; % IHC capacitance (F)
|
rmeddis@22
|
141 IHC_cilia_RPParams.Cab= 1e-012; % IHC capacitance (F)
|
rmeddis@22
|
142 IHC_cilia_RPParams.Et= 0.100; % endocochlear potential (V)
|
rmeddis@22
|
143
|
rmeddis@22
|
144 IHC_cilia_RPParams.Gk= 2e-008; % 1e-8 potassium conductance (S)
|
rmeddis@22
|
145 IHC_cilia_RPParams.Ek= -0.08; % -0.084 K equilibrium potential
|
rmeddis@22
|
146 IHC_cilia_RPParams.Rpc= 0.04; % combined resistances
|
rmeddis@22
|
147
|
rmeddis@22
|
148
|
rmeddis@22
|
149 %% #5 IHCpreSynapse
|
rmeddis@22
|
150 IHCpreSynapseParams=[];
|
rmeddis@22
|
151 IHCpreSynapseParams.GmaxCa= 14e-9;% maximum calcium conductance
|
rmeddis@22
|
152 IHCpreSynapseParams.GmaxCa= 12e-9;% maximum calcium conductance
|
rmeddis@22
|
153 IHCpreSynapseParams.ECa= 0.066; % calcium equilibrium potential
|
rmeddis@22
|
154 IHCpreSynapseParams.beta= 400; % determine Ca channel opening
|
rmeddis@22
|
155 IHCpreSynapseParams.gamma= 100; % determine Ca channel opening
|
rmeddis@22
|
156 IHCpreSynapseParams.tauM= 0.00005; % membrane time constant ?0.1ms
|
rmeddis@22
|
157 IHCpreSynapseParams.power= 3;
|
rmeddis@22
|
158 % reminder: changing z has a strong effect on HF thresholds (like Et)
|
rmeddis@22
|
159 IHCpreSynapseParams.z= 2e42; % scalar Ca -> vesicle release rate
|
rmeddis@22
|
160
|
rmeddis@22
|
161 LSRtauCa=35e-6; HSRtauCa=85e-6; % seconds
|
rmeddis@22
|
162 % LSRtauCa=35e-6; HSRtauCa=70e-6; % seconds
|
rmeddis@22
|
163 IHCpreSynapseParams.tauCa= [LSRtauCa HSRtauCa]; %LSR and HSR fiber
|
rmeddis@22
|
164
|
rmeddis@22
|
165 %% #6 AN_IHCsynapse
|
rmeddis@22
|
166 % c=kym/(y(l+r)+kl) (spontaneous rate)
|
rmeddis@22
|
167 % c=(approx) ym/l (saturated rate)
|
rmeddis@22
|
168 AN_IHCsynapseParams=[]; % clear the structure first
|
rmeddis@22
|
169 AN_IHCsynapseParams.M= 12; % maximum vesicles at synapse
|
rmeddis@22
|
170 AN_IHCsynapseParams.y= 4; % depleted vesicle replacement rate
|
rmeddis@22
|
171 AN_IHCsynapseParams.y= 6; % depleted vesicle replacement rate
|
rmeddis@22
|
172
|
rmeddis@22
|
173 AN_IHCsynapseParams.x= 30; % replenishment from re-uptake store
|
rmeddis@22
|
174 AN_IHCsynapseParams.x= 60; % replenishment from re-uptake store
|
rmeddis@22
|
175
|
rmeddis@22
|
176 % reduce l to increase saturated rate
|
rmeddis@22
|
177 AN_IHCsynapseParams.l= 100; % *loss rate of vesicles from the cleft
|
rmeddis@22
|
178 AN_IHCsynapseParams.l= 250; % *loss rate of vesicles from the cleft
|
rmeddis@22
|
179
|
rmeddis@22
|
180 AN_IHCsynapseParams.r= 500; % *reuptake rate from cleft into cell
|
rmeddis@22
|
181 % AN_IHCsynapseParams.r= 300; % *reuptake rate from cleft into cell
|
rmeddis@22
|
182
|
rmeddis@22
|
183 AN_IHCsynapseParams.refractory_period= 0.00075;
|
rmeddis@22
|
184 % number of AN fibers at each BF (used only for spike generation)
|
rmeddis@22
|
185 AN_IHCsynapseParams.numFibers= 100;
|
rmeddis@22
|
186 AN_IHCsynapseParams.TWdelay=0.004; % ?delay before stimulus first spike
|
rmeddis@22
|
187
|
rmeddis@22
|
188 AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
|
rmeddis@22
|
189
|
rmeddis@22
|
190 %% #7 MacGregorMulti (first order brainstem neurons)
|
rmeddis@22
|
191 MacGregorMultiParams=[];
|
rmeddis@22
|
192 MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
|
rmeddis@22
|
193 switch MacGregorMultiType
|
rmeddis@22
|
194 case 'primary-like'
|
rmeddis@22
|
195 MacGregorMultiParams.nNeuronsPerBF= 10; % N neurons per BF
|
rmeddis@22
|
196 MacGregorMultiParams.type = 'primary-like cell';
|
rmeddis@22
|
197 MacGregorMultiParams.fibersPerNeuron=4; % N input fibers
|
rmeddis@22
|
198 MacGregorMultiParams.dendriteLPfreq=200; % dendritic filter
|
rmeddis@22
|
199 MacGregorMultiParams.currentPerSpike=0.11e-6; % (A) per spike
|
rmeddis@22
|
200 MacGregorMultiParams.Cap=4.55e-9; % cell capacitance (Siemens)
|
rmeddis@22
|
201 MacGregorMultiParams.tauM=5e-4; % membrane time constant (s)
|
rmeddis@22
|
202 MacGregorMultiParams.Ek=-0.01; % K+ eq. potential (V)
|
rmeddis@22
|
203 MacGregorMultiParams.dGkSpike=3.64e-5; % K+ cond.shift on spike,S
|
rmeddis@22
|
204 MacGregorMultiParams.tauGk= 0.0012; % K+ conductance tau (s)
|
rmeddis@22
|
205 MacGregorMultiParams.Th0= 0.01; % equilibrium threshold (V)
|
rmeddis@22
|
206 MacGregorMultiParams.c= 0.01; % threshold shift on spike, (V)
|
rmeddis@22
|
207 MacGregorMultiParams.tauTh= 0.015; % variable threshold tau
|
rmeddis@22
|
208 MacGregorMultiParams.Er=-0.06; % resting potential (V)
|
rmeddis@22
|
209 MacGregorMultiParams.Eb=0.06; % spike height (V)
|
rmeddis@22
|
210
|
rmeddis@22
|
211 case 'chopper'
|
rmeddis@22
|
212 MacGregorMultiParams.nNeuronsPerBF= 10; % N neurons per BF
|
rmeddis@22
|
213 MacGregorMultiParams.type = 'chopper cell';
|
rmeddis@22
|
214 MacGregorMultiParams.fibersPerNeuron=10; % N input fibers
|
rmeddis@22
|
215 % MacGregorMultiParams.fibersPerNeuron=6; % N input fibers
|
rmeddis@22
|
216
|
rmeddis@22
|
217 MacGregorMultiParams.dendriteLPfreq=50; % dendritic filter
|
rmeddis@22
|
218 MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
|
rmeddis@22
|
219 MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
|
rmeddis@22
|
220
|
rmeddis@22
|
221 MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
|
rmeddis@22
|
222 MacGregorMultiParams.tauM=0.002; % membrane time constant (s)
|
rmeddis@22
|
223 MacGregorMultiParams.Ek=-0.01; % K+ eq. potential (V)
|
rmeddis@22
|
224 MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
|
rmeddis@22
|
225 MacGregorMultiParams.tauGk= 0.0005;% K+ conductance tau (s)
|
rmeddis@22
|
226 MacGregorMultiParams.Th0= 0.01; % equilibrium threshold (V)
|
rmeddis@22
|
227 MacGregorMultiParams.c= 0; % threshold shift on spike, (V)
|
rmeddis@22
|
228 MacGregorMultiParams.tauTh= 0.02; % variable threshold tau
|
rmeddis@22
|
229 MacGregorMultiParams.Er=-0.06; % resting potential (V)
|
rmeddis@22
|
230 MacGregorMultiParams.Eb=0.06; % spike height (V)
|
rmeddis@22
|
231 MacGregorMultiParams.PSTHbinWidth= 1e-4;
|
rmeddis@22
|
232 end
|
rmeddis@22
|
233
|
rmeddis@22
|
234 %% #8 MacGregor (second-order neuron). Only one per channel
|
rmeddis@22
|
235 MacGregorParams=[]; % clear the structure first
|
rmeddis@22
|
236 MacGregorParams.type = 'chopper cell';
|
rmeddis@22
|
237 MacGregorParams.fibersPerNeuron=10; % N input fibers
|
rmeddis@22
|
238 MacGregorParams.dendriteLPfreq=100; % dendritic filter
|
rmeddis@22
|
239 MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
|
rmeddis@22
|
240 MacGregorParams.currentPerSpike=30e-9;% *(A) per spike
|
rmeddis@22
|
241
|
rmeddis@22
|
242 MacGregorParams.Cap=16.7e-9; % cell capacitance (Siemens)
|
rmeddis@22
|
243 MacGregorParams.tauM=0.002; % membrane time constant (s)
|
rmeddis@22
|
244 MacGregorParams.Ek=-0.01; % K+ eq. potential (V)
|
rmeddis@22
|
245 MacGregorParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
|
rmeddis@22
|
246 MacGregorParams.tauGk= 0.0005; % K+ conductance tau (s)
|
rmeddis@22
|
247 MacGregorParams.Th0= 0.01; % equilibrium threshold (V)
|
rmeddis@22
|
248 MacGregorParams.c= 0; % threshold shift on spike, (V)
|
rmeddis@22
|
249 MacGregorParams.tauTh= 0.02; % variable threshold tau
|
rmeddis@22
|
250 MacGregorParams.Er=-0.06; % resting potential (V)
|
rmeddis@22
|
251 MacGregorParams.Eb=0.06; % spike height (V)
|
rmeddis@22
|
252 MacGregorParams.debugging=0; % (special)
|
rmeddis@22
|
253 % wideband accepts input from all channels (of same fiber type)
|
rmeddis@22
|
254 % use wideband to create inhibitory units
|
rmeddis@22
|
255 MacGregorParams.wideband=0; % special for wideband units
|
rmeddis@22
|
256 % MacGregorParams.saveAllData=0;
|
rmeddis@22
|
257
|
rmeddis@22
|
258 %% #9 filteredSACF
|
rmeddis@22
|
259 minPitch= 300; maxPitch= 3000; numPitches=60; % specify lags
|
rmeddis@22
|
260 pitches=100*log10(logspace(minPitch/100, maxPitch/100, numPitches));
|
rmeddis@22
|
261 filteredSACFParams.lags=1./pitches; % autocorrelation lags vector
|
rmeddis@22
|
262 filteredSACFParams.acfTau= .003; % time constant of running ACF
|
rmeddis@22
|
263 filteredSACFParams.lambda= 0.12; % slower filter to smooth ACF
|
rmeddis@22
|
264 filteredSACFParams.plotFilteredSACF=1; % 0 plots unfiltered ACFs
|
rmeddis@22
|
265 filteredSACFParams.plotACFs=0; % special plot (see code)
|
rmeddis@22
|
266 % filteredSACFParams.usePressnitzer=0; % attenuates ACF at long lags
|
rmeddis@22
|
267 filteredSACFParams.lagsProcedure= 'useAllLags';
|
rmeddis@22
|
268 % filteredSACFParams.lagsProcedure= 'useBernsteinLagWeights';
|
rmeddis@22
|
269 % filteredSACFParams.lagsProcedure= 'omitShortLags';
|
rmeddis@22
|
270 filteredSACFParams.criterionForOmittingLags=3;
|
rmeddis@22
|
271
|
rmeddis@22
|
272 % checks
|
rmeddis@22
|
273 if AN_IHCsynapseParams.numFibers<MacGregorMultiParams.fibersPerNeuron
|
rmeddis@22
|
274 error('MacGregorMulti: too few input fibers for input to MacG unit')
|
rmeddis@22
|
275 end
|
rmeddis@22
|
276
|
rmeddis@22
|
277
|
rmeddis@22
|
278 %% write all parameters to the command window
|
rmeddis@22
|
279 % showParams is currently set at the top of htis function
|
rmeddis@22
|
280 if showParams
|
rmeddis@22
|
281 fprintf('\n %%%%%%%%\n')
|
rmeddis@22
|
282 fprintf('\n%s\n', method.parameterSource)
|
rmeddis@22
|
283 fprintf('\n')
|
rmeddis@22
|
284 nm=UTIL_paramsList(whos);
|
rmeddis@22
|
285 for i=1:length(nm)
|
rmeddis@22
|
286 % eval(['UTIL_showStruct(' nm{i} ', ''' nm{i} ''')'])
|
rmeddis@22
|
287 if ~strcmp(nm(i), 'method')
|
rmeddis@22
|
288 eval(['UTIL_showStructureSummary(' nm{i} ', ''' nm{i} ''', 10)'])
|
rmeddis@22
|
289 end
|
rmeddis@22
|
290 end
|
rmeddis@22
|
291 end
|
rmeddis@22
|
292
|
rmeddis@22
|
293
|
rmeddis@22
|
294
|
rmeddis@22
|
295 % ********************************************************************** comparison data
|
rmeddis@22
|
296 % store individual data here for display on the multiThreshold GUI (if used)
|
rmeddis@22
|
297 % the final value in each vector is an identifier (BF or duration))
|
rmeddis@22
|
298 if isstruct(experiment)
|
rmeddis@22
|
299 switch experiment.paradigm
|
rmeddis@22
|
300 case {'IFMC','IFMC_8ms'}
|
rmeddis@22
|
301 % based on MPa
|
rmeddis@22
|
302 comparisonData=[
|
rmeddis@22
|
303 66 51 49 48 46 45 54 250;
|
rmeddis@22
|
304 60 54 46 42 39 49 65 500;
|
rmeddis@22
|
305 64 51 38 32 33 59 75 1000;
|
rmeddis@22
|
306 59 51 36 30 41 81 93 2000;
|
rmeddis@22
|
307 71 63 53 44 36 76 95 4000;
|
rmeddis@22
|
308 70 64 43 35 35 66 88 6000;
|
rmeddis@22
|
309 110 110 110 110 110 110 110 8000;
|
rmeddis@22
|
310 ];
|
rmeddis@22
|
311 if length(BFlist)==1 && ~isempty(comparisonData)
|
rmeddis@22
|
312 availableFrequencies=comparisonData(:,end)';
|
rmeddis@22
|
313 findRow= find(BFlist==availableFrequencies);
|
rmeddis@22
|
314 if ~isempty (findRow)
|
rmeddis@22
|
315 experiment.comparisonData=comparisonData(findRow,:);
|
rmeddis@22
|
316 end
|
rmeddis@22
|
317 end
|
rmeddis@22
|
318
|
rmeddis@22
|
319 case {'TMC','TMC_8ms'}
|
rmeddis@22
|
320 % based on MPa
|
rmeddis@22
|
321 comparisonData=[
|
rmeddis@22
|
322 48 58 63 68 75 80 85 92 99 250;
|
rmeddis@22
|
323 33 39 40 49 52 61 64 77 79 500;
|
rmeddis@22
|
324 39 42 50 81 83 92 96 97 110 1000;
|
rmeddis@22
|
325 24 26 32 37 46 51 59 71 78 2000;
|
rmeddis@22
|
326 65 68 77 85 91 93 110 110 110 4000;
|
rmeddis@22
|
327 20 19 26 44 80 95 96 110 110 6000;
|
rmeddis@22
|
328 ];
|
rmeddis@22
|
329 if length(BFlist)==1 && ~isempty(comparisonData)
|
rmeddis@22
|
330 availableFrequencies=comparisonData(:,end)';
|
rmeddis@22
|
331 findRow= find(BFlist==availableFrequencies);
|
rmeddis@22
|
332 if ~isempty (findRow)
|
rmeddis@22
|
333 experiment.comparisonData=comparisonData(findRow,:);
|
rmeddis@22
|
334 end
|
rmeddis@22
|
335 end
|
rmeddis@22
|
336
|
rmeddis@22
|
337 case { 'absThreshold', 'absThreshold_8'}
|
rmeddis@22
|
338 % MPa thresholds
|
rmeddis@22
|
339 experiment.comparisonData=[
|
rmeddis@22
|
340 32 26 16 18 22 22 0.008;
|
rmeddis@22
|
341 16 13 6 9 15 11 0.500
|
rmeddis@22
|
342 ];
|
rmeddis@22
|
343
|
rmeddis@22
|
344
|
rmeddis@22
|
345 otherwise
|
rmeddis@22
|
346 experiment.comparisonData=[];
|
rmeddis@22
|
347 end
|
rmeddis@22
|
348 end
|
rmeddis@22
|
349
|
rmeddis@22
|
350
|