annotate Copy_of_multithreshold 1.46/testSynapse.m @ 28:02aa9826efe0

mainly multiThreshold
author Ray Meddis <rmeddis@essex.ac.uk>
date Fri, 01 Jul 2011 12:59:47 +0100
parents
children
rev   line source
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);