rmeddis@29
|
1 function testSynapse(BFlist,paramsName, paramChanges)
|
rmeddis@29
|
2 % testSynapse tracks the quantity of available transmitter vesicles
|
rmeddis@29
|
3 % the computations are single channel using the first frequency
|
rmeddis@29
|
4 % in the targetFrequency box of the expGUI.
|
rmeddis@29
|
5 % For, speed this function uses only probability and HSR fibers.
|
rmeddis@29
|
6 % This cannot be changed because of the way AN_IHCsynapse is coded.This).
|
rmeddis@29
|
7
|
rmeddis@29
|
8 global experiment method IHCpreSynapseParams
|
rmeddis@29
|
9 global AN_IHCsynapseParams stimulusParameters
|
rmeddis@29
|
10 savePath=path;
|
rmeddis@29
|
11 addpath (['..' filesep 'utilities'],['..' filesep 'MAP'])
|
rmeddis@29
|
12
|
rmeddis@29
|
13 if nargin<3
|
rmeddis@29
|
14 paramChanges=[];
|
rmeddis@29
|
15 end
|
rmeddis@29
|
16
|
rmeddis@29
|
17 figure(6),clf
|
rmeddis@29
|
18 plotColors='rbgkrbgkrbgkrbgkrbgkrbgk';
|
rmeddis@29
|
19 set(gcf,'position',[5 32 264 243])
|
rmeddis@29
|
20
|
rmeddis@29
|
21 sampleRate=5e4; dt=1/sampleRate;
|
rmeddis@29
|
22
|
rmeddis@29
|
23 maskerLevels=-0:10:100;
|
rmeddis@29
|
24
|
rmeddis@29
|
25 targetFrequency=BFlist;
|
rmeddis@29
|
26
|
rmeddis@29
|
27 silenceDuration=0.015;
|
rmeddis@29
|
28 maskerDuration=0.1;
|
rmeddis@29
|
29 recoveryDuration=0.15;
|
rmeddis@29
|
30 rampDuration=0.004;
|
rmeddis@29
|
31
|
rmeddis@29
|
32 maskerTime=dt:dt:maskerDuration;
|
rmeddis@29
|
33
|
rmeddis@29
|
34 rampTime=dt:dt:rampDuration;
|
rmeddis@29
|
35 ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ...
|
rmeddis@29
|
36 ones(1,length(maskerTime)-length(rampTime))];
|
rmeddis@29
|
37 ramp=ramp.*fliplr(ramp);
|
rmeddis@29
|
38
|
rmeddis@29
|
39 initialSilence=zeros(1,round(silenceDuration/dt));
|
rmeddis@29
|
40 recoverySilence=zeros(1,round(recoveryDuration/dt));
|
rmeddis@29
|
41
|
rmeddis@29
|
42 signal=sin(2*pi*targetFrequency'*maskerTime);
|
rmeddis@29
|
43 signal= ramp.*signal;
|
rmeddis@29
|
44 signal=[initialSilence signal recoverySilence];
|
rmeddis@29
|
45
|
rmeddis@29
|
46 levelCount=0;
|
rmeddis@29
|
47 qtMatrix=[];
|
rmeddis@29
|
48 for leveldB=maskerLevels
|
rmeddis@29
|
49 levelCount=levelCount+1;
|
rmeddis@29
|
50
|
rmeddis@29
|
51 amp=28e-6*10^(leveldB/20);
|
rmeddis@29
|
52 inputSignal=amp*signal;
|
rmeddis@29
|
53
|
rmeddis@29
|
54 AN_spikesOrProbability='probability';
|
rmeddis@29
|
55 showPlotsAndDetails=0;
|
rmeddis@29
|
56
|
rmeddis@29
|
57 global savePavailable
|
rmeddis@29
|
58
|
rmeddis@29
|
59 MAP1_14(inputSignal, 1/dt, targetFrequency, ...
|
rmeddis@29
|
60 paramsName, AN_spikesOrProbability, paramChanges);
|
rmeddis@29
|
61
|
rmeddis@29
|
62 % ignore LSR channels (if any) at the top of the matrix
|
rmeddis@29
|
63 qt=savePavailable(end, :);
|
rmeddis@29
|
64
|
rmeddis@29
|
65 synapsedt=dt;
|
rmeddis@29
|
66 time=synapsedt:synapsedt:synapsedt*length(qt);
|
rmeddis@29
|
67
|
rmeddis@29
|
68 figure(6)
|
rmeddis@29
|
69 qtMatrix=[qtMatrix; qt];
|
rmeddis@29
|
70 plot(time,qt, plotColors(levelCount))
|
rmeddis@29
|
71 hold on
|
rmeddis@29
|
72 xlim([0 max(time)])
|
rmeddis@29
|
73 ylim([0 AN_IHCsynapseParams.M])
|
rmeddis@29
|
74 end
|
rmeddis@29
|
75
|
rmeddis@29
|
76 set(gcf,'name','pre-synaptic available transmitter')
|
rmeddis@29
|
77 title(['q - available vesicles:' num2str(BFlist) ' Hz'])
|
rmeddis@29
|
78 legend(strvcat(num2str(maskerLevels')),'location','southeast')
|
rmeddis@29
|
79 legend boxoff
|
rmeddis@29
|
80 grid on
|
rmeddis@29
|
81
|
rmeddis@36
|
82 figure(88), [c,H]=contour(time, maskerLevels,qtMatrix,1:12); clabel(c, H);
|
rmeddis@29
|
83 set(gcf,'position',[ 276 31 328 246])
|
rmeddis@29
|
84 xlabel('time'), ylabel('maskerLevels')
|
rmeddis@29
|
85 title('contour plot of available transmitter')
|
rmeddis@36
|
86 grid on
|
rmeddis@29
|
87 path(savePath);
|