# 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 \(C_{ij}\) being
a vector of size \(\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

In this case one needs to exclude \(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 integers |
matrix of read-only -raw, weighted, auto/cross correlation |

count_covariance |
3D matrix of integers |
matrix of read-only -raw, auto/cross correlation counts |

n_events |
list of integers |
number of events from all sources |

## Receives¶

SpikeEvent