rmeddis@15: rmeddis@15: rmeddis@15: rmeddis@15: rmeddis@15: rmeddis@15: rmeddis@15: rmeddis@15: myConv rmeddis@15: rmeddis@15: rmeddis@15: rmeddis@15: rmeddis@15:
rmeddis@15:

Contents

rmeddis@15:
rmeddis@15: rmeddis@15:
signalDuration=.1;
rmeddis@15: spikeTime= signalDuration/2;
rmeddis@15: for sampleRate=[1000 2000];
rmeddis@15: 
    disp(['sample rate= ' num2str(sampleRate)])
rmeddis@15: 
sample rate= 1000
rmeddis@15: 
sample rate= 2000
rmeddis@15: 

testing convolution speculation

dt= 1/sampleRate;
rmeddis@15: signalLength=round(signalDuration/dt);
rmeddis@15: spikeArray=zeros(1,signalLength);
rmeddis@15: spikeLocation=round(spikeTime/dt);
rmeddis@15: spikeArray(spikeLocation)=1;
rmeddis@15: disp(['length of spike array= ' num2str(length(spikeArray))])
rmeddis@15: t=dt*(1:length(spikeArray));
rmeddis@15: plot(t, spikeArray)
rmeddis@15: 
length of spike array= 100
rmeddis@15: 
length of spike array= 200
rmeddis@15: 

convolution function

CNspikeToCurrentTau=0.01;
rmeddis@15: t=dt:dt:3*CNspikeToCurrentTau;
rmeddis@15: CNalphaFunction=...
rmeddis@15:     (1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
rmeddis@15: 
rmeddis@15: plot(t, CNalphaFunction)
rmeddis@15: 

normalise conv function

CNalphaFunction=CNalphaFunction/sum(CNalphaFunction);
rmeddis@15: plot(t, CNalphaFunction)
rmeddis@15: disp(['area under function= ' num2str(sum(CNalphaFunction))])
rmeddis@15: 
area under function= 1
rmeddis@15: 
area under function= 1
rmeddis@15: 

adjust for spike current

CNcurrentPerSpike=2;
rmeddis@15: CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
rmeddis@15: plot(t, CNalphaFunction)
rmeddis@15: 

convolution

result=conv(spikeArray,CNalphaFunction);
rmeddis@15: t=dt*(1:length(result));
rmeddis@15: plot(t, result)
rmeddis@15: disp(['area under function= ' num2str(sum(result))])
rmeddis@15: 
area under function= 2
rmeddis@15: 
area under function= 2
rmeddis@15: 
end
rmeddis@15: 
rmeddis@15:
rmeddis@15: rmeddis@15: rmeddis@15: