v2.0.0
Loading...
Searching...
No Matches
UTILSLIB::Csd Class Reference

Cross-Spectral Density (CSD) estimator. More...

#include <csd.h>

Static Public Member Functions

static CsdResult computeMultitaper (const Eigen::MatrixXd &matData, double sfreq, double fmin=0.0, double fmax=-1.0, double halfBandwidth=4.0, int nTapers=-1)
static CsdResult computeFourier (const Eigen::MatrixXd &matData, double sfreq, double fmin=0.0, double fmax=-1.0, int nFft=256, double overlap=0.5)
static CsdResult computeMorlet (const Eigen::MatrixXd &matData, double sfreq, const Eigen::RowVectorXd &frequencies, int nCycles=7)

Detailed Description

Cross-Spectral Density (CSD) estimator.

Provides three methods for computing the CSD matrix between channels: multitaper (DPSS tapers), Fourier (Welch-style segmented), and Morlet wavelet.

// Multitaper CSD: 600 Hz data, 0–60 Hz band, half-bandwidth 4
CsdResult r = Csd::computeMultitaper(matData, 600.0, 0.0, 60.0, 4.0);
// r.matCsd → n_ch × n_ch mean CSD
// r.csdByFreq[k] → n_ch × n_ch at frequency r.vecFreqs[k]
Result of a Cross-Spectral Density computation.
Definition csd.h:69
static CsdResult computeMultitaper(const Eigen::MatrixXd &matData, double sfreq, double fmin=0.0, double fmax=-1.0, double halfBandwidth=4.0, int nTapers=-1)
Definition csd.cpp:77

Definition at line 89 of file csd.h.

Member Function Documentation

◆ computeFourier()

CsdResult Csd::computeFourier ( const Eigen::MatrixXd & matData,
double sfreq,
double fmin = 0.0,
double fmax = -1.0,
int nFft = 256,
double overlap = 0.5 )
static

Compute CSD using Welch-style Fourier segmented estimation.

Parameters
[in]matDataData matrix (n_channels × n_samples).
[in]sfreqSampling frequency in Hz.
[in]fminMinimum frequency of interest in Hz (default 0).
[in]fmaxMaximum frequency in Hz; -1 → Nyquist (default -1).
[in]nFftFFT / segment length in samples (default 256).
[in]overlapFractional overlap between adjacent segments, in [0, 1) (default 0.5).
Returns
CsdResult with per-frequency and mean CSD matrices.

Definition at line 162 of file csd.cpp.

◆ computeMorlet()

CsdResult Csd::computeMorlet ( const Eigen::MatrixXd & matData,
double sfreq,
const Eigen::RowVectorXd & frequencies,
int nCycles = 7 )
static

Compute CSD using Morlet wavelet convolution.

Parameters
[in]matDataData matrix (n_channels × n_samples).
[in]sfreqSampling frequency in Hz.
[in]frequenciesTarget frequencies in Hz.
[in]nCyclesNumber of cycles in the Morlet wavelet (default 7).
Returns
CsdResult with one CSD matrix per target frequency.

Definition at line 253 of file csd.cpp.

◆ computeMultitaper()

CsdResult Csd::computeMultitaper ( const Eigen::MatrixXd & matData,
double sfreq,
double fmin = 0.0,
double fmax = -1.0,
double halfBandwidth = 4.0,
int nTapers = -1 )
static

Compute CSD using multitaper (DPSS) spectral estimation.

Parameters
[in]matDataData matrix (n_channels × n_samples).
[in]sfreqSampling frequency in Hz.
[in]fminMinimum frequency of interest in Hz (default 0).
[in]fmaxMaximum frequency in Hz; -1 → Nyquist (default -1).
[in]halfBandwidthHalf-bandwidth parameter (NW) for DPSS tapers (default 4).
[in]nTapersNumber of tapers; -1 → floor(2*halfBandwidth - 1) (default -1).
Returns
CsdResult with per-frequency and mean CSD matrices.

Definition at line 77 of file csd.cpp.


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