correlomatrix_detector – Device for measuring the covariance matrix from several inputs
=======================================================================================
Description
+++++++++++
The ``correlomatrix_detector`` is a device that receives spikes from several pools
of spike inputs and calculates the covariance matrix of inter-spike intervals
(raw auto and cross correlation) binned to bins of duration ``delta_tau``, which
defaults to 5 times the simulation resolution. The histogram is only recorded for
non-negative time lags. The negative part can be obtained by the symmetry of
the covariance matrix :math:` C(t) = C^T(-t)`.
The result can be obtained from the node's status dictionary under the key
``count_covariance``.
In parallel it records a weighted histogram, where the connection weight are
used to weight every count, which is available under the key ``/covariance``.
Both are matrices of size ``N_channels x N_channels``, with each entry :math:`C_{ij}` being
a vector of size :math:`\tau_{max}/\delta_\tau + 1` containing the (weighted) histogram
for non-negative time lags.
The bins are centered around the time difference they represent, and are
left-closed and right-open in the lower triangular part of the matrix. On the
diagonal and in the upper triangular part the intervals are left-open and
right-closed. This ensures proper counting of events at the border of bins,
allowing consistent integration of a histogram over negative and positive
time lags by stacking two parts of the histogram
.. math::
(C(t)=[C[i][j][::-1],C[j][i][1:]]).
In this case one needs to exclude :math:`C[j][i][0]` to avoid counting the zero-lag
bin twice.
The ``correlomatrix_detector`` has a variable number of inputs which can be set
via ``SetStatus`` under the key ``N_channels``. All incoming connections to a
specified receptor will be pooled.
Correlomatrix detectors ignore any connection delays.
Parameters
++++++++++
================ ========= ====================================================
Tstart real Time when to start counting events. This time should
be set to at least start + tau_max in order to avoid
edge effects of the correlation counts.
Tstop real Time when to stop counting events. This time should
be set to at most Tsim - tau_max, where Tsim is the
duration of simulation, in order to avoid edge
effects of the correlation counts.
delta_tau ms Bin width. This has to be an odd multiple of
the resolution, to allow the symmetry between
positive and negative time-lags. Defaults to 5 times
the simulation resolution.
tau_max ms One-sided width. In the lower triagnular part
events with differences in [0, tau_max+delta_tau/2)
are counted. On the diagonal and in the upper
triangular part events with differences in
(0, tau_max+delta_tau/2]. Defaults to 10 times the
value of delta_tau.
N_channels integer The number of pools. This defines the range of
receptor_type. Default is 1.
Setting N_channels clears count_covariance,
covariance and n_events.
covariance 3D matrix of read-only -raw, weighted, auto/cross
matrix of correlation
integers
count_covariance 3D matrix of read-only -raw, auto/cross correlation
matrix of counts
integers
n_events list of number of events from all sources
integers
================ ========= ====================================================
Receives
++++++++
SpikeEvent
See also
++++++++
:doc:`Device `, :doc:`Detector `
Examples using this model
+++++++++++++++++++++++++
.. listexamples:: correlomatrix_detector