45#include <QSharedPointer>
46#include <QtConcurrent/QtConcurrent>
53#include <unsupported/Eigen/FFT>
98 QSharedPointer<FIFFLIB::FiffRawData> pFiffRawData,
106 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
107 bool bUseThreads =
true);
123 QSharedPointer<FIFFLIB::FiffRawData> pFiffRawData,
125 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
126 bool bUseThreads =
false);
155 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
156 bool bUseThreads =
true,
157 bool bKeepOverhead =
false);
174 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
175 bool bUseThreads =
true,
176 bool bKeepOverhead =
false);
191 const Eigen::RowVectorXi& vecPicks,
193 bool bUseThreads =
true);
225 const Eigen::MatrixXi& matEvents,
230 float fTBaselineFromS,
232 const QMap<QString,double>& mapReject,
234 const QStringList &lExcludeChs = QStringList(),
235 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi());
247 typedef QSharedPointer<FilterOverlapAdd>
SPtr;
248 typedef QSharedPointer<const FilterOverlapAdd>
ConstSPtr;
269 Eigen::MatrixXd
calculate(
const Eigen::MatrixXd& matData,
277 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
278 bool bFilterEnd =
true,
279 bool bUseThreads =
true,
280 bool bKeepOverhead =
false);
295 Eigen::MatrixXd
calculate(
const Eigen::MatrixXd& matData,
297 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
298 bool bFilterEnd =
true,
299 bool bUseThreads =
true,
300 bool bKeepOverhead =
false);
309 Eigen::MatrixXd m_matOverlapBack;
310 Eigen::MatrixXd m_matOverlapFront;
Full FIFF measurement metadata: everything from FIFFB_MEAS / FIFFB_MEAS_INFO needed to interpret a re...
Single averaged evoked response: time axis, samples, baseline, channel info and processing history.
Linear-phase FIR filter kernel with overlap-add FFT convolution back-end.
Export/import macros and namespace declaration for the DSP library.
FIFF file I/O, in-memory data structures and high-level readers/writers.
DSPSHARED_EXPORT FIFFLIB::FiffEvoked computeFilteredAverage(const FIFFLIB::FiffRawData &raw, const Eigen::MatrixXi &matEvents, float fTMinS, float fTMaxS, qint32 eventType, bool bApplyBaseline, float fTBaselineFromS, float fTBaselineToS, const QMap< QString, double > &mapReject, const UTILSLIB::FilterKernel &filterKernel, const QStringList &lExcludeChs=QStringList(), const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi())
DSPSHARED_EXPORT Eigen::MatrixXd filterData(const Eigen::MatrixXd &matData, int type, double dCenterfreq, double dBandwidth, double dTransition, double dSFreq, int iOrder=1024, int designMethod=UTILSLIB::FilterKernel::m_designMethods.indexOf(UTILSLIB::FilterParameter("Cosine")), const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bUseThreads=true, bool bKeepOverhead=false)
DSPSHARED_EXPORT Eigen::MatrixXd filterDataBlock(const Eigen::MatrixXd &matData, const Eigen::RowVectorXi &vecPicks, const UTILSLIB::FilterKernel &filterKernel, bool bUseThreads=true)
DSPSHARED_EXPORT void filterChannel(FilterObject &channelDataTime)
DSPSHARED_EXPORT bool filterFile(QIODevice &pIODevice, QSharedPointer< FIFFLIB::FiffRawData > pFiffRawData, int type, double dCenterfreq, double dBandwidth, double dTransition, double dSFreq, int iOrder=4096, int designMethod=UTILSLIB::FilterKernel::m_designMethods.indexOf(UTILSLIB::FilterParameter("Cosine")), const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bUseThreads=true)
Named filter-design parameter descriptor holding a human-readable name and description (e....
The FilterKernel class provides methods to create/design a FIR filter kernel.
static QVector< FilterParameter > m_designMethods
Lightweight filter configuration holding kernel coefficients and overlap-add state for one channel.
UTILSLIB::FilterKernel filterKernel
Eigen::RowVectorXd vecData
Applies FIR filtering via FFT-based overlap-add convolution for continuous data streams.
QSharedPointer< const FilterOverlapAdd > ConstSPtr
Eigen::MatrixXd calculate(const Eigen::MatrixXd &matData, const UTILSLIB::FilterKernel &filterKernel, const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bFilterEnd=true, bool bUseThreads=true, bool bKeepOverhead=false)
Eigen::MatrixXd calculate(const Eigen::MatrixXd &matData, int type, double dCenterfreq, double dBandwidth, double dTransition, double dSFreq, int iOrder=1024, int designMethod=UTILSLIB::FilterKernel::m_designMethods.indexOf(UTILSLIB::FilterParameter("Cosine")), const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bFilterEnd=true, bool bUseThreads=true, bool bKeepOverhead=false)
QSharedPointer< FilterOverlapAdd > SPtr
Single averaged evoked response: time axis, data, baseline, channel info and averaging metadata.