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