Kernels¶
Definition of a hierarchy of classes for kernel functions to be used in convolution, e.g., for data smoothing (low pass filtering) or firing rate estimation.
Symmetric kernels¶
|
Class for rectangular kernels. |
|
Class for triangular kernels. |
|
Class for Epanechnikov-like kernels. |
|
Class for gaussian kernels. |
|
Class for laplacian kernels. |
Asymmetric kernels¶
|
Class for exponential kernels. |
|
Class for alpha kernels. |
Examples¶
Example 1. Gaussian kernel
>>> import neo
>>> import quantities as pq
>>> from elephant import kernels
>>> kernel = kernels.GaussianKernel(sigma=300 * pq.ms)
>>> kernel
GaussianKernel(sigma=300.0 ms, invert=False)
>>> spiketrain = neo.SpikeTrain([-1, 0, 1], t_start=-1, t_stop=1, units='s')
>>> kernel_pdf = kernel(spiketrain)
>>> kernel_pdf
array([0.00514093, 1.3298076 , 0.00514093]) * 1/s
Cumulative Distribution Function
>>> kernel.cdf(0 * pq.s)
0.5
>>> kernel.cdf(1 * pq.s)
0.9995709396668032
Inverse Cumulative Distribution Function
>>> kernel.icdf(0.5)
array(0.) * ms
>>> kernel.icdf(0.9)
array(384.46546966) * ms
Example 2. Alpha kernel
>>> kernel = kernels.AlphaKernel(sigma=1 * pq.s)
>>> kernel(spiketrain)
array([-0. , 0. , 0.48623347]) * 1/s
>>> kernel.cdf(0 * pq.s)
0.0
>>> kernel.icdf(0.5)
array(1.18677054) * s