Mercurial > hg > map
view testPrograms/testSynapse.m @ 38:c2204b18f4a2 tip
End nov big change
author | Ray Meddis <rmeddis@essex.ac.uk> |
---|---|
date | Mon, 28 Nov 2011 13:34:28 +0000 |
parents | 3ea506487b3b |
children |
line wrap: on
line source
function testSynapse(BF,paramsName, AN_spikesOrProbability, paramChanges) % testSynapse tracks the quantity of available transmitter vesicles % the computations are single channel using the first frequency % in the targetFrequency box of the expGUI. % This function uses only probability and HSR fibers. % testSynapse(1000,'Normal',[]) global experiment IHCpreSynapseParams global AN_IHCsynapseParams stimulusParameters global savePavailable saveNavailable savePath=path; addpath (['..' filesep 'utilities'],['..' filesep 'MAP']) if nargin<3 paramChanges=[]; end if length(BF)>1 error('Only one value allowed for BF') end % AN_spikesOrProbability='probability'; % AN_spikesOrProbability='spikes'; % showPlotsAndDetails=0; figure(6),clf plotColors='rbgkrbgkrbgkrbgkrbgkrbgk'; set(gcf,'position',[5 32 264 243]) sampleRate=5e4; dt=1/sampleRate; switch AN_spikesOrProbability case 'probability' maskerLevels=-0:20:100; case 'spikes' maskerLevels=80; end targetFrequency=BF; silenceDuration=0.015; maskerDuration=0.1; recoveryDuration=0.15; rampDuration=0.004; maskerTime=dt:dt:maskerDuration; rampTime=dt:dt:rampDuration; ramp=[0.5*(1+cos(2*pi*rampTime/(2*rampDuration)+pi)) ... ones(1,length(maskerTime)-length(rampTime))]; ramp=ramp.*fliplr(ramp); initialSilence=zeros(1,round(silenceDuration/dt)); recoverySilence=zeros(1,round(recoveryDuration/dt)); signal=sin(2*pi*targetFrequency'*maskerTime); signal= ramp.*signal; signal=[initialSilence signal recoverySilence]; levelCount=0; qtMatrix=[]; for leveldB=maskerLevels levelCount=levelCount+1; amp=28e-6*10^(leveldB/20); inputSignal=amp*signal; MAP1_14(inputSignal, 1/dt, targetFrequency, ... paramsName, AN_spikesOrProbability, paramChanges); % ignore LSR channels (if any) at the top of the matrix switch AN_spikesOrProbability case 'probability' qt=savePavailable(end, :); case 'spikes' qt=saveNavailable; end synapsedt=dt; time=synapsedt:synapsedt:synapsedt*length(qt); figure(6) qtMatrix=[qtMatrix; qt]; plot(time,qt, plotColors(levelCount)) hold on xlim([0 max(time)]) ylim([0 AN_IHCsynapseParams.M]) xlabel ('time') end set(gcf,'name','pre-synaptic available transmitter') title(['pre-synaptic transmitter:' num2str(BF) ' Hz']) ylabel(['q - available vesicles']) legend(strvcat(num2str(maskerLevels')),'location','southeast') legend boxoff grid on switch AN_spikesOrProbability case 'probability' figure(88), [c,H]=contour(time, maskerLevels,qtMatrix,1:12); clabel(c, H); set(gcf,'position',[ 276 31 328 246]) xlabel('time'), ylabel('maskerLevels') title('contour plot of available transmitter') grid on end path(savePath);