rmeddis@38: function testSynapse(BF,paramsName, AN_spikesOrProbability, 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@38: % This function uses only probability and HSR fibers. rmeddis@38: % testSynapse(1000,'Normal',[]) rmeddis@29: rmeddis@38: global experiment IHCpreSynapseParams rmeddis@29: global AN_IHCsynapseParams stimulusParameters rmeddis@38: global savePavailable saveNavailable rmeddis@38: 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@38: if length(BF)>1 rmeddis@38: error('Only one value allowed for BF') rmeddis@38: end rmeddis@38: % AN_spikesOrProbability='probability'; rmeddis@38: % AN_spikesOrProbability='spikes'; rmeddis@38: % showPlotsAndDetails=0; rmeddis@38: 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@38: switch AN_spikesOrProbability rmeddis@38: case 'probability' rmeddis@38: maskerLevels=-0:20:100; rmeddis@38: case 'spikes' rmeddis@38: maskerLevels=80; rmeddis@38: end rmeddis@29: rmeddis@38: targetFrequency=BF; 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@38: MAP1_14(inputSignal, 1/dt, targetFrequency, ... rmeddis@38: paramsName, AN_spikesOrProbability, paramChanges); rmeddis@29: rmeddis@29: % ignore LSR channels (if any) at the top of the matrix rmeddis@38: switch AN_spikesOrProbability rmeddis@38: case 'probability' rmeddis@38: qt=savePavailable(end, :); rmeddis@38: case 'spikes' rmeddis@38: qt=saveNavailable; rmeddis@38: end 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@38: xlabel ('time') rmeddis@29: end rmeddis@29: rmeddis@29: set(gcf,'name','pre-synaptic available transmitter') rmeddis@38: title(['pre-synaptic transmitter:' num2str(BF) ' Hz']) rmeddis@38: ylabel(['q - available vesicles']) rmeddis@29: legend(strvcat(num2str(maskerLevels')),'location','southeast') rmeddis@29: legend boxoff rmeddis@29: grid on rmeddis@29: rmeddis@38: switch AN_spikesOrProbability rmeddis@38: case 'probability' rmeddis@38: figure(88), [c,H]=contour(time, maskerLevels,qtMatrix,1:12); clabel(c, H); rmeddis@38: set(gcf,'position',[ 276 31 328 246]) rmeddis@38: xlabel('time'), ylabel('maskerLevels') rmeddis@38: title('contour plot of available transmitter') rmeddis@38: grid on rmeddis@38: end rmeddis@29: path(savePath);