v2.0.0
Loading...
Searching...
No Matches
channel_derivation.h
Go to the documentation of this file.
1//=============================================================================================================
24
25#ifndef CHANNEL_DERIVATION_H
26#define CHANNEL_DERIVATION_H
27
28//=============================================================================================================
29// INCLUDES
30//=============================================================================================================
31
32#include "dsp_global.h"
33
34//=============================================================================================================
35// QT INCLUDES
36//=============================================================================================================
37
38#include <QMap>
39#include <QPair>
40#include <QString>
41#include <QStringList>
42#include <QVector>
43
44//=============================================================================================================
45// EIGEN INCLUDES
46//=============================================================================================================
47
48#include <Eigen/Core>
49
50//=============================================================================================================
51// DEFINE NAMESPACE UTILSLIB
52//=============================================================================================================
53
54namespace UTILSLIB
55{
56
57//=============================================================================================================
64{
65 QString outputName;
66 QMap<QString, double> inputWeights;
67};
68
69//=============================================================================================================
80{
81public:
93 static QVector<DerivationRule> buildBipolar(const QStringList& channelNames);
94
105 static QVector<DerivationRule> buildCommonAverage(const QStringList& channelNames);
106
117 static QPair<Eigen::MatrixXd, QStringList> apply(
118 const Eigen::MatrixXd& matData,
119 const QStringList& channelNames,
120 const QVector<DerivationRule>& rules);
121
135 static QVector<DerivationRule> readDefinitionFile(const QString& path);
136
145 static bool writeDefinitionFile(const QString& path, const QVector<DerivationRule>& rules);
146};
147
148} // namespace UTILSLIB
149
150#endif // CHANNEL_DERIVATION_H
Export/import macros and namespace declaration for the DSP library.
#define DSPSHARED_EXPORT
Definition dsp_global.h:50
Shared utilities (I/O helpers, spectral analysis, layout management, warp algorithms).
A single derivation rule mapping input channels (with weights) to one output channel.
QString outputName
Name of the derived output channel.
QMap< QString, double > inputWeights
Map of input channel name → weight.
Channel derivation and re-referencing utilities.
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 > buildCommonAverage(const QStringList &channelNames)
Build common-average reference derivation rules.
static QVector< DerivationRule > buildBipolar(const QStringList &channelNames)
Build bipolar derivation rules from sequential electrode pairs.
static QVector< DerivationRule > readDefinitionFile(const QString &path)
Read derivation rules from an MNE-C derivation text file (MNELIB::MNEDerivSet::readText).
static bool writeDefinitionFile(const QString &path, const QVector< DerivationRule > &rules)
Write derivation rules in MNE-C derivation text syntax, readable by readDefinitionFile and mne_make_d...