1
.. currentmodule:: brian
4
pair: example usage; run
5
pair: example usage; PoissonGroup
6
pair: example usage; spike_triggered_average
7
pair: example usage; SpikeMonitor
8
pair: example usage; exp
10
.. _example-misc_spike_triggered_average:
12
Example: spike_triggered_average (misc)
13
=======================================
15
Example of the use of the function spike_triggered_average. A white noise is filtered
16
by a gaussian filter (low pass filter) which output is used to generate spikes (poission process)
17
Those spikes are used in conjunction with the input signal to retrieve the filter function.
22
from brian.hears import *
23
from numpy.random import randn
24
from matplotlib import pyplot
28
stimulus_duration = 15000*ms
29
stimulus = randn(int(stimulus_duration/ dt))
33
filt = exp(-((linspace(0.5,n,n))-(n+5)/2)**2/(n/3));
34
filt = filt/norm(filt)*1000;
35
filtered_stimulus = convolve(stimulus,filt)
38
neuron = PoissonGroup(1,lambda t:filtered_stimulus[int(t/dt)])
40
spikes = SpikeMonitor(neuron)
41
run(stimulus_duration,report='text')
42
spikes = spikes[0] #resulting spikes
44
max_interval = 20*ms #window duration of the spike triggered average
46
sta,time_axis = spike_triggered_average(spikes,stimulus,max_interval,dt,onset=onset,display=True)
50
plot(time_axis,filt/max(filt))
51
plot(time_axis,sta/max(sta))
54
legend(('real filter','estimated filter'))
1
.. currentmodule:: brian
4
pair: example usage; run
5
pair: example usage; PoissonGroup
6
pair: example usage; spike_triggered_average
7
pair: example usage; SpikeMonitor
8
pair: example usage; exp
10
.. _example-misc_spike_triggered_average:
12
Example: spike_triggered_average (misc)
13
=======================================
15
Example of the use of the function spike_triggered_average. A white noise is filtered
16
by a gaussian filter (low pass filter) which output is used to generate spikes (poission process)
17
Those spikes are used in conjunction with the input signal to retrieve the filter function.
22
from brian.hears import *
23
from numpy.random import randn
24
from numpy.linalg import norm
25
from matplotlib import pyplot
29
stimulus_duration = 15000*ms
30
stimulus = randn(int(stimulus_duration/ dt))
34
filt = exp(-((linspace(0.5,n,n))-(n+5)/2)**2/(n/3));
35
filt = filt/norm(filt)*1000;
36
filtered_stimulus = convolve(stimulus,filt)
39
neuron = PoissonGroup(1,lambda t:filtered_stimulus[int(t/dt)])
41
spikes = SpikeMonitor(neuron)
42
run(stimulus_duration,report='text')
43
spikes = spikes[0] #resulting spikes
45
max_interval = 20*ms #window duration of the spike triggered average
47
sta,time_axis = spike_triggered_average(spikes,stimulus,max_interval,dt,onset=onset,display=True)
51
plot(time_axis,filt/max(filt))
52
plot(time_axis,sta/max(sta))
55
legend(('real filter','estimated filter'))