annotate multithreshold 1.46/testSynapse.m @ 0:f233164f4c86

first commit
author Ray Meddis <rmeddis@essex.ac.uk>
date Fri, 27 May 2011 13:19:21 +0100
parents
children ecad0ea62b43
rev   line source
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);