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

Channel derivation and re-referencing utilities. More...

#include <channel_derivation.h>

Static Public Member Functions

static QVector< DerivationRulebuildBipolar (const QStringList &channelNames)
 Build bipolar derivation rules from sequential electrode pairs.
static QVector< DerivationRulebuildCommonAverage (const QStringList &channelNames)
 Build common-average reference derivation rules.
static QPair< Eigen::MatrixXd, QStringList > apply (const Eigen::MatrixXd &matData, const QStringList &channelNames, const QVector< DerivationRule > &rules)
 Apply derivation rules to a data matrix.
static QVector< DerivationRulereadDefinitionFile (const QString &path)
 Read derivation rules from a text definition file.
static bool writeDefinitionFile (const QString &path, const QVector< DerivationRule > &rules)
 Write derivation rules to a text definition file.

Detailed Description

Channel derivation and re-referencing utilities.

Provides methods to build bipolar and common-average re-referencing schemes, apply arbitrary linear derivation rules to data matrices, and read/write derivation definition files.

QStringList chNames = {"LH1","LH2","LH3","RA1","RA2"};
auto rules = ChannelDerivation::buildBipolar(chNames);
// rules: LH1-LH2, LH2-LH3, RA1-RA2
auto [matDerived, derivedNames] = ChannelDerivation::apply(matData, chNames, rules);
static QPair< Eigen::MatrixXd, QStringList > apply(const Eigen::MatrixXd &matData, const QStringList &channelNames, const QVector< DerivationRule > &rules)
Apply derivation rules to a data matrix.
static QVector< DerivationRule > buildBipolar(const QStringList &channelNames)
Build bipolar derivation rules from sequential electrode pairs.

Definition at line 93 of file channel_derivation.h.

Member Function Documentation

◆ apply()

QPair< MatrixXd, QStringList > ChannelDerivation::apply ( const Eigen::MatrixXd & matData,
const QStringList & channelNames,
const QVector< DerivationRule > & rules )
static

Apply derivation rules to a data matrix.

Parameters
[in]matDataInput data matrix (n_channels × n_times).
[in]channelNamesChannel names corresponding to rows of matData.
[in]rulesDerivation rules to apply.
Returns
A pair of (derived data matrix, derived channel names). The output matrix has n_rules rows × n_times columns.

Definition at line 144 of file channel_derivation.cpp.

◆ buildBipolar()

QVector< DerivationRule > ChannelDerivation::buildBipolar ( const QStringList & channelNames)
static

Build bipolar derivation rules from sequential electrode pairs.

Channels are grouped by shaft prefix (all leading alphabetic characters and apostrophes before the first digit). Within each group, consecutive pairs are subtracted: channel[i] − channel[i+1].

Parameters
[in]channelNamesList of channel names, e.g. {"LH1","LH2","LH3","RA1","RA2"}.
Returns
Vector of DerivationRule, e.g. LH1-LH2 (+1·LH1, −1·LH2), LH2-LH3, RA1-RA2.

Definition at line 84 of file channel_derivation.cpp.

◆ buildCommonAverage()

QVector< DerivationRule > ChannelDerivation::buildCommonAverage ( const QStringList & channelNames)
static

Build common-average reference derivation rules.

Each output channel equals the original channel minus the mean of all channels: out_i = ch_i − (1/N) Σ ch_j.

Parameters
[in]channelNamesList of channel names.
Returns
Vector of DerivationRule, one per input channel.

Definition at line 116 of file channel_derivation.cpp.

◆ readDefinitionFile()

QVector< DerivationRule > ChannelDerivation::readDefinitionFile ( const QString & path)
static

Read derivation rules from a text definition file.

File format (lines starting with '#' are comments):

# output_name = weight1 * input1 + weight2 * input2 + ...
LH1-LH2 = 1.0 * LH1 + -1.0 * LH2
Parameters
[in]pathPath to the definition file.
Returns
Vector of parsed DerivationRule. Empty on error.

Definition at line 180 of file channel_derivation.cpp.

◆ writeDefinitionFile()

bool ChannelDerivation::writeDefinitionFile ( const QString & path,
const QVector< DerivationRule > & rules )
static

Write derivation rules to a text definition file.

Parameters
[in]pathPath to the output file.
[in]rulesDerivation rules to write.
Returns
True if the file was written successfully.

Definition at line 235 of file channel_derivation.cpp.


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