annotate testPrograms/testSynapse.m @ 37:771a643d5c29

mainly nmanuals
author Ray Meddis <rmeddis@essex.ac.uk>
date Thu, 06 Oct 2011 15:43:20 +0100
parents 3ea506487b3b
children c2204b18f4a2
rev   line source
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);