rmeddis@29
|
1 function vectorStrength=testAN(targetFrequency,BFlist, levels, ...
|
rmeddis@29
|
2 paramsName,paramChanges)
|
rmeddis@29
|
3 % testIHC used either for IHC I/O function ...
|
rmeddis@29
|
4 % or receptive field (doReceptiveFields=1)
|
rmeddis@29
|
5
|
rmeddis@29
|
6 global IHC_VResp_VivoParams IHC_cilia_RPParams IHCpreSynapseParams
|
rmeddis@29
|
7 global AN_IHCsynapseParams
|
rmeddis@29
|
8
|
rmeddis@29
|
9 global ANoutput ANdt CNoutput ICoutput ICmembraneOutput tauCas
|
rmeddis@29
|
10 global ARattenuation MOCattenuation
|
rmeddis@29
|
11
|
rmeddis@29
|
12 dbstop if error
|
rmeddis@29
|
13 restorePath=path;
|
rmeddis@29
|
14
|
rmeddis@29
|
15 addpath (['..' filesep 'MAP'], ['..' filesep 'utilities'], ...
|
rmeddis@29
|
16 ['..' filesep 'parameterStore'], ['..' filesep 'wavFileStore'],...
|
rmeddis@29
|
17 ['..' filesep 'testPrograms'])
|
rmeddis@29
|
18
|
rmeddis@29
|
19 if nargin<5
|
rmeddis@29
|
20 paramChanges=[];
|
rmeddis@29
|
21 end
|
rmeddis@29
|
22
|
rmeddis@29
|
23 if nargin<4
|
rmeddis@29
|
24 paramsName='Normal';
|
rmeddis@29
|
25 end
|
rmeddis@29
|
26
|
rmeddis@29
|
27 if nargin<3
|
rmeddis@29
|
28 levels=-10:10:80;
|
rmeddis@29
|
29 % levels=80:10:90;
|
rmeddis@29
|
30 end
|
rmeddis@29
|
31
|
rmeddis@29
|
32 nLevels=length(levels);
|
rmeddis@29
|
33
|
rmeddis@29
|
34 toneDuration=.2;
|
rmeddis@29
|
35 rampDuration=0.002;
|
rmeddis@29
|
36 silenceDuration=.02;
|
rmeddis@29
|
37 localPSTHbinwidth=0.001;
|
rmeddis@29
|
38
|
rmeddis@29
|
39 % Use only the first frequency in the GUI targetFrequency box to defineBF
|
rmeddis@29
|
40 % targetFrequency=stimulusParameters.targetFrequency(1);
|
rmeddis@29
|
41 % BFlist=targetFrequency;
|
rmeddis@29
|
42
|
rmeddis@29
|
43 AN_HSRonset=zeros(nLevels,1);
|
rmeddis@29
|
44 AN_HSRsaturated=zeros(nLevels,1);
|
rmeddis@29
|
45 AN_LSRonset=zeros(nLevels,1);
|
rmeddis@29
|
46 AN_LSRsaturated=zeros(nLevels,1);
|
rmeddis@29
|
47 CNLSRrate=zeros(nLevels,1);
|
rmeddis@29
|
48 CNHSRsaturated=zeros(nLevels,1);
|
rmeddis@29
|
49 ICHSRsaturated=zeros(nLevels,1);
|
rmeddis@29
|
50 ICLSRsaturated=zeros(nLevels,1);
|
rmeddis@29
|
51 vectorStrength=zeros(nLevels,1);
|
rmeddis@29
|
52
|
rmeddis@29
|
53 AR=zeros(nLevels,1);
|
rmeddis@29
|
54 MOC=zeros(nLevels,1);
|
rmeddis@29
|
55
|
rmeddis@29
|
56 % ANoutput=zeros(200,200);
|
rmeddis@29
|
57
|
rmeddis@29
|
58 figure(15), clf
|
rmeddis@29
|
59 set(gcf,'position',[980 356 401 321])
|
rmeddis@29
|
60 figure(5), clf
|
rmeddis@29
|
61 set(gcf,'position', [980 34 400 295])
|
rmeddis@29
|
62 drawnow
|
rmeddis@29
|
63
|
rmeddis@29
|
64 %% guarantee that the sample rate is at least 10 times the frequency
|
rmeddis@29
|
65 sampleRate=50000;
|
rmeddis@29
|
66 while sampleRate< 10* targetFrequency
|
rmeddis@29
|
67 sampleRate=sampleRate+10000;
|
rmeddis@29
|
68 end
|
rmeddis@29
|
69
|
rmeddis@29
|
70 %% adjust sample rate so that the pure tone stimulus has an integer
|
rmeddis@29
|
71 %% numver of epochs in a period
|
rmeddis@29
|
72 dt=1/sampleRate;
|
rmeddis@29
|
73 period=1/targetFrequency;
|
rmeddis@29
|
74 ANspeedUpFactor=5; %anticipating MAP (needs clearing up)
|
rmeddis@29
|
75 ANdt=dt*ANspeedUpFactor;
|
rmeddis@29
|
76 ANdt=period/round(period/ANdt);
|
rmeddis@29
|
77 dt=ANdt/ANspeedUpFactor;
|
rmeddis@29
|
78 sampleRate=1/dt;
|
rmeddis@29
|
79 epochsPerPeriod=sampleRate*period;
|
rmeddis@29
|
80
|
rmeddis@29
|
81 %% main computational loop (vary level)
|
rmeddis@29
|
82 levelNo=0;
|
rmeddis@29
|
83 for leveldB=levels
|
rmeddis@29
|
84 levelNo=levelNo+1;
|
rmeddis@29
|
85
|
rmeddis@29
|
86 fprintf('%4.0f\t', leveldB)
|
rmeddis@29
|
87 amp=28e-6*10^(leveldB/20);
|
rmeddis@29
|
88
|
rmeddis@29
|
89 time=dt:dt:toneDuration;
|
rmeddis@29
|
90 rampTime=dt:dt:rampDuration;
|
rmeddis@29
|
91 ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ...
|
rmeddis@29
|
92 ones(1,length(time)-length(rampTime))];
|
rmeddis@29
|
93 ramp=ramp.*fliplr(ramp);
|
rmeddis@29
|
94
|
rmeddis@29
|
95 silence=zeros(1,round(silenceDuration/dt));
|
rmeddis@29
|
96
|
rmeddis@29
|
97 % create signal (leveldB/ targetFrequency)
|
rmeddis@29
|
98 inputSignal=amp*sin(2*pi*targetFrequency'*time);
|
rmeddis@29
|
99 inputSignal= ramp.*inputSignal;
|
rmeddis@29
|
100 inputSignal=[silence inputSignal];
|
rmeddis@29
|
101
|
rmeddis@29
|
102 %% run the model
|
rmeddis@29
|
103 AN_spikesOrProbability='spikes';
|
rmeddis@29
|
104 showPlotsAndDetails=0;
|
rmeddis@29
|
105
|
rmeddis@29
|
106
|
rmeddis@29
|
107 MAP1_14(inputSignal, 1/dt, BFlist, ...
|
rmeddis@29
|
108 paramsName, AN_spikesOrProbability, paramChanges);
|
rmeddis@29
|
109
|
rmeddis@29
|
110 nTaus=length(tauCas);
|
rmeddis@29
|
111
|
rmeddis@29
|
112 %LSR (same as HSR if no LSR fibers present)
|
rmeddis@29
|
113 [nANFibers nTimePoints]=size(ANoutput);
|
rmeddis@29
|
114
|
rmeddis@29
|
115 numLSRfibers=nANFibers/nTaus;
|
rmeddis@29
|
116 numHSRfibers=numLSRfibers;
|
rmeddis@29
|
117
|
rmeddis@29
|
118 LSRspikes=ANoutput(1:numLSRfibers,:);
|
rmeddis@29
|
119 PSTH=UTIL_PSTHmaker(LSRspikes, ANdt, localPSTHbinwidth);
|
rmeddis@29
|
120 PSTHLSR=mean(PSTH,1)/localPSTHbinwidth; % across fibers rates
|
rmeddis@29
|
121 PSTHtime=localPSTHbinwidth:localPSTHbinwidth:...
|
rmeddis@29
|
122 localPSTHbinwidth*length(PSTH);
|
rmeddis@29
|
123 AN_LSRonset(levelNo)= max(PSTHLSR); % peak in 5 ms window
|
rmeddis@29
|
124 AN_LSRsaturated(levelNo)= mean(PSTHLSR(round(length(PSTH)/2):end));
|
rmeddis@29
|
125
|
rmeddis@29
|
126 % HSR
|
rmeddis@29
|
127 HSRspikes= ANoutput(end- numHSRfibers+1:end, :);
|
rmeddis@29
|
128 PSTH=UTIL_PSTHmaker(HSRspikes, ANdt, localPSTHbinwidth);
|
rmeddis@29
|
129 PSTH=mean(PSTH,1)/localPSTHbinwidth; % sum across fibers (HSR only)
|
rmeddis@29
|
130 AN_HSRonset(levelNo)= max(PSTH);
|
rmeddis@29
|
131 AN_HSRsaturated(levelNo)= mean(PSTH(round(length(PSTH)/2): end));
|
rmeddis@29
|
132
|
rmeddis@29
|
133 figure(5), subplot(2,2,2)
|
rmeddis@29
|
134 hold off, bar(PSTHtime,PSTH, 'b')
|
rmeddis@29
|
135 hold on, bar(PSTHtime,PSTHLSR,'r')
|
rmeddis@29
|
136 ylim([0 1000])
|
rmeddis@29
|
137 xlim([0 length(PSTH)*localPSTHbinwidth])
|
rmeddis@29
|
138 set(gcf,'name',[num2str(BFlist), ' Hz: ' num2str(leveldB) ' dB']);
|
rmeddis@29
|
139
|
rmeddis@29
|
140 % AN - CV
|
rmeddis@29
|
141 % CV is computed 5 times. Use the middle one (3) as most typical
|
rmeddis@29
|
142 cvANHSR= UTIL_CV(HSRspikes, ANdt);
|
rmeddis@29
|
143
|
rmeddis@29
|
144 % AN - vector strength
|
rmeddis@29
|
145 PSTH=sum(HSRspikes);
|
rmeddis@29
|
146 [PH, binTimes]=UTIL_periodHistogram...
|
rmeddis@29
|
147 (PSTH, ANdt, targetFrequency);
|
rmeddis@29
|
148 VS=UTIL_vectorStrength(PH);
|
rmeddis@29
|
149 vectorStrength(levelNo)=VS;
|
rmeddis@29
|
150 disp(['sat rate= ' num2str(AN_HSRsaturated(levelNo)) ...
|
rmeddis@29
|
151 '; phase-locking VS = ' num2str(VS)])
|
rmeddis@29
|
152 title(['AN HSR: CV=' num2str(cvANHSR(3),'%5.2f') ...
|
rmeddis@29
|
153 'VS=' num2str(VS,'%5.2f')])
|
rmeddis@29
|
154
|
rmeddis@29
|
155 % CN - first-order neurons
|
rmeddis@29
|
156
|
rmeddis@29
|
157 % CN LSR
|
rmeddis@29
|
158 [nCNneurons c]=size(CNoutput);
|
rmeddis@29
|
159 nLSRneurons=round(nCNneurons/nTaus);
|
rmeddis@29
|
160 CNLSRspikes=CNoutput(1:nLSRneurons,:);
|
rmeddis@29
|
161 PSTH=UTIL_PSTHmaker(CNLSRspikes, ANdt, localPSTHbinwidth);
|
rmeddis@29
|
162 PSTH=sum(PSTH)/nLSRneurons;
|
rmeddis@29
|
163 CNLSRrate(levelNo)=mean(PSTH(round(length(PSTH)/2):end))/localPSTHbinwidth;
|
rmeddis@29
|
164
|
rmeddis@29
|
165 %CN HSR
|
rmeddis@29
|
166 MacGregorMultiHSRspikes=...
|
rmeddis@29
|
167 CNoutput(end-nLSRneurons:end,:);
|
rmeddis@29
|
168 PSTH=UTIL_PSTHmaker(MacGregorMultiHSRspikes, ANdt, localPSTHbinwidth);
|
rmeddis@29
|
169 PSTH=sum(PSTH)/nLSRneurons;
|
rmeddis@29
|
170 PSTH=mean(PSTH,1)/localPSTHbinwidth; % sum across fibers (HSR only)
|
rmeddis@29
|
171
|
rmeddis@29
|
172 CNHSRsaturated(levelNo)=mean(PSTH(length(PSTH)/2:end));
|
rmeddis@29
|
173
|
rmeddis@29
|
174 figure(5), subplot(2,2,3)
|
rmeddis@29
|
175 bar(PSTHtime,PSTH)
|
rmeddis@29
|
176 ylim([0 1000])
|
rmeddis@29
|
177 xlim([0 length(PSTH)*localPSTHbinwidth])
|
rmeddis@29
|
178 cvMMHSR= UTIL_CV(MacGregorMultiHSRspikes, ANdt);
|
rmeddis@29
|
179 title(['CN CV= ' num2str(cvMMHSR(3),'%5.2f')])
|
rmeddis@29
|
180
|
rmeddis@29
|
181 % IC LSR
|
rmeddis@29
|
182 [nICneurons c]=size(ICoutput);
|
rmeddis@29
|
183 nLSRneurons=round(nICneurons/nTaus);
|
rmeddis@29
|
184 ICLSRspikes=ICoutput(1:nLSRneurons,:);
|
rmeddis@29
|
185 PSTH=UTIL_PSTHmaker(ICLSRspikes, ANdt, localPSTHbinwidth);
|
rmeddis@29
|
186 ICLSRsaturated(levelNo)=mean(PSTH(round(length(PSTH)/2):end))/localPSTHbinwidth;
|
rmeddis@29
|
187
|
rmeddis@29
|
188 %IC HSR
|
rmeddis@29
|
189 MacGregorMultiHSRspikes=...
|
rmeddis@29
|
190 ICoutput(end-nLSRneurons:end,:);
|
rmeddis@29
|
191 PSTH=UTIL_PSTHmaker(MacGregorMultiHSRspikes, ANdt, localPSTHbinwidth);
|
rmeddis@29
|
192 PSTH=sum(PSTH)/nLSRneurons;
|
rmeddis@29
|
193 PSTH=mean(PSTH,1)/localPSTHbinwidth; % sum across fibers (HSR only)
|
rmeddis@29
|
194
|
rmeddis@29
|
195 ICHSRsaturated(levelNo)=mean(PSTH(length(PSTH)/2:end));
|
rmeddis@29
|
196
|
rmeddis@29
|
197 AR(levelNo)=min(ARattenuation);
|
rmeddis@29
|
198 MOC(levelNo)=min(MOCattenuation(length(MOCattenuation)/2:end));
|
rmeddis@29
|
199
|
rmeddis@29
|
200 time=dt:dt:dt*size(ICmembraneOutput,2);
|
rmeddis@29
|
201 figure(5), subplot(2,2,4)
|
rmeddis@29
|
202 plot(time,ICmembraneOutput(2, 1:end),'k')
|
rmeddis@29
|
203 ylim([-0.07 0])
|
rmeddis@29
|
204 xlim([0 max(time)])
|
rmeddis@29
|
205 title(['IC ' num2str(leveldB,'%4.0f') 'dB'])
|
rmeddis@29
|
206 drawnow
|
rmeddis@29
|
207
|
rmeddis@29
|
208 figure(5), subplot(2,2,1)
|
rmeddis@29
|
209 plot(20*log10(MOC), 'k'),
|
rmeddis@29
|
210 title(' MOC'), ylabel('dB attenuation')
|
rmeddis@29
|
211 ylim([-30 0])
|
rmeddis@29
|
212
|
rmeddis@29
|
213
|
rmeddis@29
|
214 end % level
|
rmeddis@29
|
215 figure(5), subplot(2,2,1)
|
rmeddis@29
|
216 plot(levels,20*log10(MOC), 'k'),
|
rmeddis@29
|
217 title(' MOC'), ylabel('dB attenuation')
|
rmeddis@29
|
218 ylim([-30 0])
|
rmeddis@29
|
219 xlim([0 max(levels)])
|
rmeddis@29
|
220
|
rmeddis@29
|
221 fprintf('\n')
|
rmeddis@29
|
222 toneDuration=2;
|
rmeddis@29
|
223 rampDuration=0.004;
|
rmeddis@29
|
224 silenceDuration=.02;
|
rmeddis@29
|
225 nRepeats=200; % no. of AN fibers
|
rmeddis@29
|
226 fprintf('toneDuration %6.3f\n', toneDuration)
|
rmeddis@29
|
227 fprintf(' %6.0f AN fibers (repeats)\n', nRepeats)
|
rmeddis@29
|
228 fprintf('levels')
|
rmeddis@29
|
229 fprintf('%6.2f\t', levels)
|
rmeddis@29
|
230 fprintf('\n')
|
rmeddis@29
|
231
|
rmeddis@29
|
232
|
rmeddis@29
|
233 % ---------------------------------------------------- display parameters
|
rmeddis@29
|
234
|
rmeddis@29
|
235 figure(15), clf
|
rmeddis@29
|
236 nRows=2; nCols=2;
|
rmeddis@29
|
237
|
rmeddis@29
|
238 % AN rate - level ONSET functions
|
rmeddis@29
|
239 subplot(nRows,nCols,1)
|
rmeddis@29
|
240 plot(levels,AN_LSRonset,'ro'), hold on
|
rmeddis@29
|
241 plot(levels,AN_HSRonset,'ko'), hold off
|
rmeddis@29
|
242 ylim([0 1000]), xlim([min(levels) max(levels)])
|
rmeddis@29
|
243 ttl=['tauCa= ' num2str(IHCpreSynapseParams.tauCa)];
|
rmeddis@29
|
244 title( ttl)
|
rmeddis@29
|
245 xlabel('level dB SPL'), ylabel('peak rate (sp/s)'), grid on
|
rmeddis@29
|
246 text(0, 800, 'AN onset', 'fontsize', 16)
|
rmeddis@29
|
247
|
rmeddis@29
|
248 % AN rate - level ADAPTED function
|
rmeddis@29
|
249 subplot(nRows,nCols,2)
|
rmeddis@29
|
250 plot(levels,AN_LSRsaturated, 'ro'), hold on
|
rmeddis@29
|
251 plot(levels,AN_HSRsaturated, 'ko'), hold off
|
rmeddis@29
|
252 ylim([0 400])
|
rmeddis@29
|
253 set(gca,'ytick',0:50:300)
|
rmeddis@29
|
254 xlim([min(levels) max(levels)])
|
rmeddis@29
|
255 set(gca,'xtick',[levels(1):20:levels(end)])
|
rmeddis@29
|
256 % grid on
|
rmeddis@29
|
257 ttl=[ 'spont=' num2str(mean(AN_HSRsaturated(1,:)),'%4.0f')...
|
rmeddis@29
|
258 ' sat=' num2str(mean(AN_HSRsaturated(end,1)),'%4.0f')];
|
rmeddis@29
|
259 title( ttl)
|
rmeddis@29
|
260 xlabel('level dB SPL'), ylabel ('adapted rate (sp/s)')
|
rmeddis@29
|
261 text(0, 340, 'AN adapted', 'fontsize', 16), grid on
|
rmeddis@29
|
262
|
rmeddis@29
|
263 % CN rate - level ADAPTED function
|
rmeddis@29
|
264 subplot(nRows,nCols,3)
|
rmeddis@29
|
265 plot(levels,CNLSRrate, 'ro'), hold on
|
rmeddis@29
|
266 plot(levels,CNHSRsaturated, 'ko'), hold off
|
rmeddis@29
|
267 ylim([0 400])
|
rmeddis@29
|
268 set(gca,'ytick',0:50:300)
|
rmeddis@29
|
269 xlim([min(levels) max(levels)])
|
rmeddis@29
|
270 set(gca,'xtick',[levels(1):20:levels(end)])
|
rmeddis@29
|
271 % grid on
|
rmeddis@29
|
272 ttl=[ 'spont=' num2str(mean(CNHSRsaturated(1,:)),'%4.0f') ' sat=' ...
|
rmeddis@29
|
273 num2str(mean(CNHSRsaturated(end,1)),'%4.0f')];
|
rmeddis@29
|
274 title( ttl)
|
rmeddis@29
|
275 xlabel('level dB SPL'), ylabel ('adapted rate (sp/s)')
|
rmeddis@29
|
276 text(0, 350, 'CN', 'fontsize', 16), grid on
|
rmeddis@29
|
277
|
rmeddis@29
|
278 % IC rate - level ADAPTED function
|
rmeddis@29
|
279 subplot(nRows,nCols,4)
|
rmeddis@29
|
280 plot(levels,ICLSRsaturated, 'ro'), hold on
|
rmeddis@29
|
281 plot(levels,ICHSRsaturated, 'ko'), hold off
|
rmeddis@29
|
282 ylim([0 400])
|
rmeddis@29
|
283 set(gca,'ytick',0:50:300)
|
rmeddis@29
|
284 xlim([min(levels) max(levels)])
|
rmeddis@29
|
285 set(gca,'xtick',[levels(1):20:levels(end)]), grid on
|
rmeddis@29
|
286
|
rmeddis@29
|
287
|
rmeddis@29
|
288 ttl=['spont=' num2str(mean(ICHSRsaturated(1,:)),'%4.0f') ...
|
rmeddis@29
|
289 ' sat=' num2str(mean(ICHSRsaturated(end,1)),'%4.0f')];
|
rmeddis@29
|
290 title( ttl)
|
rmeddis@29
|
291 xlabel('level dB SPL'), ylabel ('adapted rate (sp/s)')
|
rmeddis@29
|
292 text(0, 350, 'IC', 'fontsize', 16)
|
rmeddis@29
|
293 set(gcf,'name',' AN CN IC rate/level')
|
rmeddis@29
|
294
|
rmeddis@29
|
295 peakVectorStrength=max(vectorStrength);
|
rmeddis@29
|
296
|
rmeddis@29
|
297 fprintf('\n')
|
rmeddis@29
|
298 disp('levels vectorStrength')
|
rmeddis@29
|
299 fprintf('%3.0f \t %6.4f \n', [levels; vectorStrength'])
|
rmeddis@29
|
300 fprintf('\n')
|
rmeddis@29
|
301 fprintf('Phase locking, max vector strength=\t %6.4f\n\n',...
|
rmeddis@29
|
302 max(vectorStrength))
|
rmeddis@29
|
303
|
rmeddis@29
|
304 allData=[ levels' AN_HSRonset AN_HSRsaturated...
|
rmeddis@29
|
305 AN_LSRonset AN_LSRsaturated ...
|
rmeddis@29
|
306 CNHSRsaturated CNLSRrate...
|
rmeddis@29
|
307 ICHSRsaturated ICLSRsaturated];
|
rmeddis@29
|
308 fprintf('\n levels \tANHSR Onset \tANHSR adapted\tANLSR Onset \tANLSR adapted\tCNHSR\tCNLSR\tICHSR \tICLSR \n');
|
rmeddis@29
|
309 UTIL_printTabTable(round(allData))
|
rmeddis@29
|
310 fprintf('VS (phase locking)= \t%6.4f\n\n',...
|
rmeddis@29
|
311 max(vectorStrength))
|
rmeddis@29
|
312
|
rmeddis@29
|
313 UTIL_showStruct(IHC_cilia_RPParams, 'IHC_cilia_RPParams')
|
rmeddis@29
|
314 UTIL_showStruct(IHCpreSynapseParams, 'IHCpreSynapseParams')
|
rmeddis@29
|
315 UTIL_showStruct(AN_IHCsynapseParams, 'AN_IHCsynapseParams')
|
rmeddis@29
|
316
|
rmeddis@29
|
317 fprintf('\n')
|
rmeddis@29
|
318 disp('levels vectorStrength')
|
rmeddis@29
|
319 fprintf('%3.0f \t %6.4f \n', [levels; vectorStrength'])
|
rmeddis@29
|
320 fprintf('\n')
|
rmeddis@29
|
321 fprintf('Phase locking, max vector strength= \t%6.4f\n\n',...
|
rmeddis@29
|
322 max(vectorStrength))
|
rmeddis@29
|
323
|
rmeddis@29
|
324 allData=[ levels' AN_HSRonset AN_HSRsaturated...
|
rmeddis@29
|
325 AN_LSRonset AN_LSRsaturated ...
|
rmeddis@29
|
326 CNHSRsaturated CNLSRrate...
|
rmeddis@29
|
327 ICHSRsaturated ICLSRsaturated];
|
rmeddis@29
|
328 fprintf('\n levels \tANHSR Onset \tANHSR adapted\tANLSR Onset \tANLSR adapted\tCNHSR\tCNLSR\tICHSR \tICLSR \n');
|
rmeddis@29
|
329 UTIL_printTabTable(round(allData))
|
rmeddis@29
|
330 fprintf('VS (phase locking)= \t%6.4f\n\n',...
|
rmeddis@29
|
331 max(vectorStrength))
|
rmeddis@29
|
332
|
rmeddis@29
|
333 path(restorePath) |