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//=============================================================================================================
62{
63 QString outputName;
64 QMap<QString, double> inputWeights;
65};
66
67//=============================================================================================================
84{
85public:
97 static QVector<DerivationRule> buildBipolar(const QStringList& channelNames);
98
109 static QVector<DerivationRule> buildCommonAverage(const QStringList& channelNames);
110
121 static QPair<Eigen::MatrixXd, QStringList> apply(
122 const Eigen::MatrixXd& matData,
123 const QStringList& channelNames,
124 const QVector<DerivationRule>& rules);
125
139 static QVector<DerivationRule> readDefinitionFile(const QString& path);
140
149 static bool writeDefinitionFile(const QString& path, const QVector<DerivationRule>& rules);
150};
151
152} // namespace UTILSLIB
153
154#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 a text definition file.
static bool writeDefinitionFile(const QString &path, const QVector< DerivationRule > &rules)
Write derivation rules to a text definition file.