v2.0.0
Loading...
Searching...
No Matches
channel_derivation.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef CHANNEL_DERIVATION_H
36#define CHANNEL_DERIVATION_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "dsp_global.h"
43
44//=============================================================================================================
45// QT INCLUDES
46//=============================================================================================================
47
48#include <QMap>
49#include <QPair>
50#include <QString>
51#include <QStringList>
52#include <QVector>
53
54//=============================================================================================================
55// EIGEN INCLUDES
56//=============================================================================================================
57
58#include <Eigen/Core>
59
60//=============================================================================================================
61// DEFINE NAMESPACE UTILSLIB
62//=============================================================================================================
63
64namespace UTILSLIB
65{
66
67//=============================================================================================================
72{
73 QString outputName;
74 QMap<QString, double> inputWeights;
75};
76
77//=============================================================================================================
94{
95public:
107 static QVector<DerivationRule> buildBipolar(const QStringList& channelNames);
108
119 static QVector<DerivationRule> buildCommonAverage(const QStringList& channelNames);
120
131 static QPair<Eigen::MatrixXd, QStringList> apply(
132 const Eigen::MatrixXd& matData,
133 const QStringList& channelNames,
134 const QVector<DerivationRule>& rules);
135
149 static QVector<DerivationRule> readDefinitionFile(const QString& path);
150
159 static bool writeDefinitionFile(const QString& path, const QVector<DerivationRule>& rules);
160};
161
162} // namespace UTILSLIB
163
164#endif // CHANNEL_DERIVATION_H
dsp library export/import macros.
#define DSPSHARED_EXPORT
Definition dsp_global.h:56
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 a text definition file.
static bool writeDefinitionFile(const QString &path, const QVector< DerivationRule > &rules)
Write derivation rules to a text definition file.