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