Correlation Library  1.0
CCrossCorrelationBC Class Reference

A class that computes the cross-correlation for a vector of time stamps and a continuous signal (Binary - Continuous). More...

#include <CrossCorrelation-BC.h>

List of all members.

Public Member Functions

 CCrossCorrelationBC (int piCorrelationWindow, int piTrialLength, int &piIsError)
 Constructor.
 ~CCrossCorrelationBC ()
 Destructor.
void ComputeCrossCorrelation (int *piaTimeStampsA, int piNrTimeStampsInA, float *pfaSamplesB, int piNrSamplesInB, int pbNormalizeCorrelogram)
 Compute the cross-correlation of one binary signal with one continuos signal.
float * GetCrossCorrelogram ()
 Returns the buffer with the computed cross-correlogram; returns NULL if there was an error; please check the buffer for NULL before using it!!
int ModifyCorrelationWindow (int piNewCorrelationWindow)
 Set the size of the correlation window; the parameter specifies the correlation window; for example for a window of -100..+100 pass 100 as a parameter;.
int ModifyTrialLength (int piNewTrialLength)
 Set the length of the trial in original sampling units.
int ModifyAllParameters (int piNewCorrelationWindow, int piNewTrialLength)
 Sets all parameters at once.
int GetCorrelationWindow ()
 Get the size of the correlation window.
int GetTrialLength ()
 Get the trial length in original sampling units.

Detailed Description

A class that computes the cross-correlation for a vector of time stamps and a continuous signal (Binary - Continuous).

Cross-correlation is computed in the classical way.
For pairs of spikes and LFP signals in neuroscience, this measure is also known as "spike-triggered LFP average".
Timestamps corresponding to events of one binary signal and one continuous signal must be provided. The time stamps of the binary signal must match the samples of the continuous signal, i.e. the first sample of the continuous signal corresponds to time stamp 0.


Constructor & Destructor Documentation

CCrossCorrelationBC::CCrossCorrelationBC ( int  piCorrelationWindow,
int  piTrialLength,
int &  piIsError 
)

Constructor.

Parameters:
piCorrelationWindow- The size of the cross-correlation window (eg. 80 for a cross-correlation with lags of -80..+80); use the same units as the sampling units
piTrialLength- The size of the trial in original sampling units
piIsError- A return parameter, set to 0 on success. It is set to -1 by the constructor if there is a mismatch of window sizes and the GetCrossCorrelogram() function will return NULL;
Warning:
The sampling frequency of the continuous and binary signals has to be the same! Also the trial lengths have to match!

Member Function Documentation

void CCrossCorrelationBC::ComputeCrossCorrelation ( int *  piaTimeStampsA,
int  piNrTimeStampsInA,
float *  pfaSamplesB,
int  piNrSamplesInB,
int  pbNormalizeCorrelogram 
)

Compute the cross-correlation of one binary signal with one continuos signal.

Parameters:
piaTimeStampsA- The vector holding the time stamps of the binary variable
piNrTimeStampsInA- Number of time stamps in the first vector
pfaSamplesB- The vector holding samples of the continuous signal
piNrSamplesInB- Number of samples in the second vector
pbNormalizeCorrelogram- Set to 1 to normalize the correlogram; ; normalization is made by dividing to the number of time stamps used to compute the correlogram
Warning:
The sampling frequency of the continuous and binary signals has to be the same! Also the trial lengths have to match!
The time stamps of the binary signal must match the samples of the continuous signal, i.e. the first sample of the continuous signal corresponds to time stamp 0.

Get the size of the correlation window.

Returns:
The size of the correlation window

Returns the buffer with the computed cross-correlogram; returns NULL if there was an error; please check the buffer for NULL before using it!!

The size of the cross correlogram buffer is (2*iCorrelationWindow+1), and element with lag 0 is at position iCorrelationWindow.

Returns:
Returns a pointer to the internal cross-correlation buffer. Do not write into the buffer!
The buffer is filled with NAN (Not A Number) = -100000000.0 if one of the input buffers was empty and thus the correlation was not defined; please check in your code for this!!!!

Get the trial length in original sampling units.

Returns:
The length of the trial in sampling units
int CCrossCorrelationBC::ModifyAllParameters ( int  piNewCorrelationWindow,
int  piNewTrialLength 
)

Sets all parameters at once.

Parameters:
piNewCorrelationWindow- The new correlation window
piNewTrialLength- The new length of the trial
Returns:
Returns 0 on success, -1 if the new correlation window is too small; -2 if the trial length is smaller than the correlation window
int CCrossCorrelationBC::ModifyCorrelationWindow ( int  piNewCorrelationWindow)

Set the size of the correlation window; the parameter specifies the correlation window; for example for a window of -100..+100 pass 100 as a parameter;.

Parameters:
piNewCorrelationWindow- Specifies the new correlation window
Returns:
Returns 0 on success, -1 if the window is too small; -2 if the window is larger than the length of the trial;
int CCrossCorrelationBC::ModifyTrialLength ( int  piNewTrialLength)

Set the length of the trial in original sampling units.

Parameters:
piNewTrialLength- The new length of the trial
Returns:
Returns 0 on success and -1 if the trial length is smaller than the correlation window

The documentation for this class was generated from the following files: