rmeddis@0: function testSynapse rmeddis@0: % testSynapse tracks the quantity of available transmitter vesicles rmeddis@0: % the computations are single channel using the first frequency rmeddis@0: % in the targetFrequency box of the expGUI. rmeddis@0: % For, speed this function uses only probability and HSR fibers. rmeddis@0: % This cannot be changed because of the way AN_IHCsynapse is coded.This). rmeddis@0: rmeddis@0: global experiment method IHCpreSynapseParams rmeddis@0: global AN_IHCsynapseParams stimulusParameters rmeddis@0: savePath=path; rmeddis@0: addpath (['..' filesep 'utilities'],['..' filesep 'MAP']) rmeddis@0: rmeddis@0: figure(6),clf rmeddis@0: plotColors='rbgkrbgkrbgkrbgkrbgkrbgk'; rmeddis@0: set(gcf,'position',[5 32 264 243]) rmeddis@0: rmeddis@0: sampleRate=5e4; dt=1/sampleRate; rmeddis@0: rmeddis@0: maskerLevels=-0:10:100; rmeddis@0: rmeddis@0: BFlist=stimulusParameters.targetFrequency(1); rmeddis@0: targetFrequency=stimulusParameters.targetFrequency; rmeddis@0: targetFrequency=targetFrequency(1); % only one frequency used rmeddis@0: rmeddis@0: showParams=0; rmeddis@0: useEfferent=0; % no efferent rmeddis@0: rmeddis@0: silenceDuration=0.005; rmeddis@0: maskerDuration=0.1; rmeddis@0: recoveryDuration=0.15; rmeddis@0: rampDuration=0.004; rmeddis@0: rmeddis@0: maskerTime=dt:dt:maskerDuration; rmeddis@0: rmeddis@0: rampTime=dt:dt:rampDuration; rmeddis@0: ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ... rmeddis@0: ones(1,length(maskerTime)-length(rampTime))]; rmeddis@0: ramp=ramp.*fliplr(ramp); rmeddis@0: rmeddis@0: initialSilence=zeros(1,round(silenceDuration/dt)); rmeddis@0: recoverySilence=zeros(1,round(recoveryDuration/dt)); rmeddis@0: rmeddis@0: signal=sin(2*pi*targetFrequency'*maskerTime); rmeddis@0: signal= ramp.*signal; rmeddis@0: signal=[initialSilence signal recoverySilence]; rmeddis@0: rmeddis@0: levelCount=0; rmeddis@0: qtMatrix=[]; rmeddis@0: for leveldB=maskerLevels rmeddis@0: levelCount=levelCount+1; rmeddis@0: rmeddis@0: amp=28e-6*10^(leveldB/20); rmeddis@0: inputSignal=amp*signal; rmeddis@0: rmeddis@0: AN_spikesOrProbability='probability'; rmeddis@0: MAPparamsName=experiment.name; rmeddis@0: showPlotsAndDetails=0; rmeddis@0: rmeddis@0: global savePavailable rmeddis@0: rmeddis@0: MAP1_14(inputSignal, 1/dt, targetFrequency, ... rmeddis@0: MAPparamsName, AN_spikesOrProbability); rmeddis@0: rmeddis@0: % ignore LSR channels (if any) at the top of the matrix rmeddis@0: qt=savePavailable(end, :); rmeddis@0: rmeddis@0: synapsedt=dt; rmeddis@0: time=synapsedt:synapsedt:synapsedt*length(qt); rmeddis@0: rmeddis@0: figure(6) rmeddis@0: qtMatrix=[qtMatrix; qt]; rmeddis@0: plot(time,qt, plotColors(levelCount)) rmeddis@0: hold on rmeddis@0: xlim([0 max(time)]) rmeddis@0: ylim([0 AN_IHCsynapseParams.M]) rmeddis@0: end rmeddis@0: rmeddis@0: set(gcf,'name','pre-synaptic available transmitter') rmeddis@0: title(['q - available vesicles:' num2str(BFlist) ' Hz']) rmeddis@0: legend(strvcat(num2str(maskerLevels')),'location','southeast') rmeddis@0: legend boxoff rmeddis@0: grid on rmeddis@0: rmeddis@0: figure(88), [c,H]=contour(time, maskerLevels,qtMatrix); clabel(c, H); rmeddis@9: set(gcf,'position',[ 276 31 328 246]) rmeddis@0: xlabel('time'), ylabel('maskerLevels') rmeddis@0: rmeddis@0: path(savePath);