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