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