v2.0.0
Loading...
Searching...
No Matches
sss.h
Go to the documentation of this file.
1//=============================================================================================================
47
48#ifndef SSS_DSP_H
49#define SSS_DSP_H
50
51//=============================================================================================================
52// INCLUDES
53//=============================================================================================================
54
55#include "dsp_global.h"
56
57#include <fiff/fiff_info.h>
58
59//=============================================================================================================
60// EIGEN INCLUDES
61//=============================================================================================================
62
63#include <Eigen/Core>
64
65//=============================================================================================================
66// QT INCLUDES
67//=============================================================================================================
68
69#include <QVector>
70
71//=============================================================================================================
72// DEFINE NAMESPACE UTILSLIB
73//=============================================================================================================
74
75namespace UTILSLIB
76{
77
78//=============================================================================================================
85{
86 int iOrderIn = 8;
87 int iOrderOut = 3;
88 Eigen::Vector3d origin{0.0, 0.0, 0.04};
89 double dRegIn = 1e-5;
90};
91
92//=============================================================================================================
103{
104public:
106
107 //=========================================================================================================
113 struct Basis
114 {
115 Eigen::MatrixXd matSin;
116 Eigen::MatrixXd matSout;
117 Eigen::MatrixXd matProjIn;
118 Eigen::MatrixXd matPinvAll;
119 QVector<int> megChannelIdx;
120 int iOrderIn = 8;
121 int iOrderOut = 3;
122 int iNin = 0;
123 int iNout = 0;
124 };
125
126 //=========================================================================================================
138 static Basis computeBasis(const FIFFLIB::FiffInfo& fiffInfo,
139 const Params& params = Params());
140
141 //=========================================================================================================
151 static Eigen::MatrixXd apply(const Eigen::MatrixXd& matData,
152 const Basis& basis);
153
154 //=========================================================================================================
170 static Eigen::MatrixXd applyTemporal(const Eigen::MatrixXd& matData,
171 const Basis& basis,
172 int iBufferLength = 10000,
173 double dCorrLimit = 0.98);
174
175private:
176 //=========================================================================================================
191 static void computeNormALP(int lmax,
192 double cosTheta,
193 double sinTheta,
194 Eigen::MatrixXd& P,
195 Eigen::MatrixXd& dP);
196
197 //=========================================================================================================
218 static Eigen::Vector3d basisGradCart(int l,
219 int m,
220 bool bInternal,
221 const Eigen::Vector3d& rPos,
222 const Eigen::MatrixXd& P,
223 const Eigen::MatrixXd& dP,
224 double cosTheta,
225 double sinTheta,
226 double cosPhi,
227 double sinPhi);
228};
229
230} // namespace UTILSLIB
231
232#endif // SSS_DSP_H
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
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).
Configuration parameters for SSS/tSSS (defined outside class to work around a Clang default-argument/...
Definition sss.h:85
double dRegIn
Definition sss.h:89
Eigen::Vector3d origin
Definition sss.h:88
Implements Signal Space Separation (SSS) and temporal SSS (tSSS) for MEG data.
Definition sss.h:103
SSSParams Params
Definition sss.h:105
static Basis computeBasis(const FIFFLIB::FiffInfo &fiffInfo, const Params &params=Params())
Definition sss.cpp:251
static Eigen::MatrixXd apply(const Eigen::MatrixXd &matData, const Basis &basis)
Definition sss.cpp:362
static Eigen::MatrixXd applyTemporal(const Eigen::MatrixXd &matData, const Basis &basis, int iBufferLength=10000, double dCorrLimit=0.98)
Definition sss.cpp:390
Precomputed SSS basis and projectors for a given sensor array.
Definition sss.h:114
Eigen::MatrixXd matSout
Definition sss.h:116
Eigen::MatrixXd matSin
Definition sss.h:115
Eigen::MatrixXd matPinvAll
Definition sss.h:118
QVector< int > megChannelIdx
Definition sss.h:119
Eigen::MatrixXd matProjIn
Definition sss.h:117
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...
Definition fiff_info.h:90