annotate testPrograms/testSynapse.m @ 38:c2204b18f4a2 tip

End nov big change
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 28 Nov 2011 13:34:28 +0000
parents 3ea506487b3b
children
rev   line source
rmeddis@38 1 function testSynapse(BF,paramsName, AN_spikesOrProbability, 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@38 5 % This function uses only probability and HSR fibers.
rmeddis@38 6 % testSynapse(1000,'Normal',[])
rmeddis@29 7
rmeddis@38 8 global experiment IHCpreSynapseParams
rmeddis@29 9 global AN_IHCsynapseParams stimulusParameters
rmeddis@38 10 global savePavailable saveNavailable
rmeddis@38 11
rmeddis@29 12 savePath=path;
rmeddis@29 13 addpath (['..' filesep 'utilities'],['..' filesep 'MAP'])
rmeddis@29 14
rmeddis@29 15 if nargin<3
rmeddis@29 16 paramChanges=[];
rmeddis@29 17 end
rmeddis@29 18
rmeddis@38 19 if length(BF)>1
rmeddis@38 20 error('Only one value allowed for BF')
rmeddis@38 21 end
rmeddis@38 22 % AN_spikesOrProbability='probability';
rmeddis@38 23 % AN_spikesOrProbability='spikes';
rmeddis@38 24 % showPlotsAndDetails=0;
rmeddis@38 25
rmeddis@29 26 figure(6),clf
rmeddis@29 27 plotColors='rbgkrbgkrbgkrbgkrbgkrbgk';
rmeddis@29 28 set(gcf,'position',[5 32 264 243])
rmeddis@29 29
rmeddis@29 30 sampleRate=5e4; dt=1/sampleRate;
rmeddis@29 31
rmeddis@38 32 switch AN_spikesOrProbability
rmeddis@38 33 case 'probability'
rmeddis@38 34 maskerLevels=-0:20:100;
rmeddis@38 35 case 'spikes'
rmeddis@38 36 maskerLevels=80;
rmeddis@38 37 end
rmeddis@29 38
rmeddis@38 39 targetFrequency=BF;
rmeddis@29 40
rmeddis@29 41 silenceDuration=0.015;
rmeddis@29 42 maskerDuration=0.1;
rmeddis@29 43 recoveryDuration=0.15;
rmeddis@29 44 rampDuration=0.004;
rmeddis@29 45
rmeddis@29 46 maskerTime=dt:dt:maskerDuration;
rmeddis@29 47
rmeddis@29 48 rampTime=dt:dt:rampDuration;
rmeddis@29 49 ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ...
rmeddis@29 50 ones(1,length(maskerTime)-length(rampTime))];
rmeddis@29 51 ramp=ramp.*fliplr(ramp);
rmeddis@29 52
rmeddis@29 53 initialSilence=zeros(1,round(silenceDuration/dt));
rmeddis@29 54 recoverySilence=zeros(1,round(recoveryDuration/dt));
rmeddis@29 55
rmeddis@29 56 signal=sin(2*pi*targetFrequency'*maskerTime);
rmeddis@29 57 signal= ramp.*signal;
rmeddis@29 58 signal=[initialSilence signal recoverySilence];
rmeddis@29 59
rmeddis@29 60 levelCount=0;
rmeddis@29 61 qtMatrix=[];
rmeddis@29 62 for leveldB=maskerLevels
rmeddis@29 63 levelCount=levelCount+1;
rmeddis@29 64
rmeddis@29 65 amp=28e-6*10^(leveldB/20);
rmeddis@29 66 inputSignal=amp*signal;
rmeddis@29 67
rmeddis@38 68 MAP1_14(inputSignal, 1/dt, targetFrequency, ...
rmeddis@38 69 paramsName, AN_spikesOrProbability, paramChanges);
rmeddis@29 70
rmeddis@29 71 % ignore LSR channels (if any) at the top of the matrix
rmeddis@38 72 switch AN_spikesOrProbability
rmeddis@38 73 case 'probability'
rmeddis@38 74 qt=savePavailable(end, :);
rmeddis@38 75 case 'spikes'
rmeddis@38 76 qt=saveNavailable;
rmeddis@38 77 end
rmeddis@29 78 synapsedt=dt;
rmeddis@29 79 time=synapsedt:synapsedt:synapsedt*length(qt);
rmeddis@29 80
rmeddis@29 81 figure(6)
rmeddis@29 82 qtMatrix=[qtMatrix; qt];
rmeddis@29 83 plot(time,qt, plotColors(levelCount))
rmeddis@29 84 hold on
rmeddis@29 85 xlim([0 max(time)])
rmeddis@29 86 ylim([0 AN_IHCsynapseParams.M])
rmeddis@38 87 xlabel ('time')
rmeddis@29 88 end
rmeddis@29 89
rmeddis@29 90 set(gcf,'name','pre-synaptic available transmitter')
rmeddis@38 91 title(['pre-synaptic transmitter:' num2str(BF) ' Hz'])
rmeddis@38 92 ylabel(['q - available vesicles'])
rmeddis@29 93 legend(strvcat(num2str(maskerLevels')),'location','southeast')
rmeddis@29 94 legend boxoff
rmeddis@29 95 grid on
rmeddis@29 96
rmeddis@38 97 switch AN_spikesOrProbability
rmeddis@38 98 case 'probability'
rmeddis@38 99 figure(88), [c,H]=contour(time, maskerLevels,qtMatrix,1:12); clabel(c, H);
rmeddis@38 100 set(gcf,'position',[ 276 31 328 246])
rmeddis@38 101 xlabel('time'), ylabel('maskerLevels')
rmeddis@38 102 title('contour plot of available transmitter')
rmeddis@38 103 grid on
rmeddis@38 104 end
rmeddis@29 105 path(savePath);