annotate testPrograms/myConv.m @ 15:35af36fe0a35

dt error in MAP1_14 corrected
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 06 Jun 2011 09:11:29 +0100
parents
children
rev   line source
rmeddis@15 1 signalDuration=.1;
rmeddis@15 2 spikeTime= signalDuration/2;
rmeddis@15 3 for sampleRate=[1000 2000];
rmeddis@15 4 disp(['sample rate= ' num2str(sampleRate)])
rmeddis@15 5
rmeddis@15 6 %% testing convolution speculation
rmeddis@15 7 dt= 1/sampleRate;
rmeddis@15 8 signalLength=round(signalDuration/dt);
rmeddis@15 9 spikeArray=zeros(1,signalLength);
rmeddis@15 10 spikeLocation=round(spikeTime/dt);
rmeddis@15 11 spikeArray(spikeLocation)=1;
rmeddis@15 12 disp(['length of spike array= ' num2str(length(spikeArray))])
rmeddis@15 13 t=dt*(1:length(spikeArray));
rmeddis@15 14 plot(t, spikeArray)
rmeddis@15 15
rmeddis@15 16 %% convolution function
rmeddis@15 17 CNspikeToCurrentTau=0.01;
rmeddis@15 18 t=dt:dt:3*CNspikeToCurrentTau;
rmeddis@15 19 CNalphaFunction=...
rmeddis@15 20 (1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
rmeddis@15 21
rmeddis@15 22 plot(t, CNalphaFunction)
rmeddis@15 23
rmeddis@15 24 %% normalise conv function
rmeddis@15 25 CNalphaFunction=CNalphaFunction/sum(CNalphaFunction);
rmeddis@15 26 plot(t, CNalphaFunction)
rmeddis@15 27 disp(['area under function= ' num2str(sum(CNalphaFunction))])
rmeddis@15 28
rmeddis@15 29 %% adjust for spike current
rmeddis@15 30 CNcurrentPerSpike=2;
rmeddis@15 31 CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
rmeddis@15 32 plot(t, CNalphaFunction)
rmeddis@15 33
rmeddis@15 34 %% convolution
rmeddis@15 35 result=conv(spikeArray,CNalphaFunction);
rmeddis@15 36 t=dt*(1:length(result));
rmeddis@15 37 plot(t, result)
rmeddis@15 38 disp(['area under function= ' num2str(sum(result))])
rmeddis@15 39
rmeddis@15 40 end
rmeddis@15 41
rmeddis@15 42
rmeddis@15 43