rmeddis@15: signalDuration=.1; rmeddis@15: spikeTime= signalDuration/2; rmeddis@15: for sampleRate=[1000 2000]; rmeddis@15: disp(['sample rate= ' num2str(sampleRate)]) rmeddis@15: rmeddis@15: %% testing convolution speculation rmeddis@15: 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: rmeddis@15: %% convolution function rmeddis@15: 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: rmeddis@15: %% normalise conv function rmeddis@15: CNalphaFunction=CNalphaFunction/sum(CNalphaFunction); rmeddis@15: plot(t, CNalphaFunction) rmeddis@15: disp(['area under function= ' num2str(sum(CNalphaFunction))]) rmeddis@15: rmeddis@15: %% adjust for spike current rmeddis@15: CNcurrentPerSpike=2; rmeddis@15: CNalphaFunction=CNalphaFunction*CNcurrentPerSpike; rmeddis@15: plot(t, CNalphaFunction) rmeddis@15: rmeddis@15: %% convolution rmeddis@15: 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: rmeddis@15: end rmeddis@15: rmeddis@15: rmeddis@15: