45#include <QSharedPointer>
46#include <QtConcurrent/QtConcurrent>
53#include <unsupported/Eigen/FFT>
100 QSharedPointer<FIFFLIB::FiffRawData> pFiffRawData,
108 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
109 bool bUseThreads =
true);
125 QSharedPointer<FIFFLIB::FiffRawData> pFiffRawData,
127 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
128 bool bUseThreads =
false);
157 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
158 bool bUseThreads =
true,
159 bool bKeepOverhead =
false);
176 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
177 bool bUseThreads =
true,
178 bool bKeepOverhead =
false);
193 const Eigen::RowVectorXi& vecPicks,
195 bool bUseThreads =
true);
227 const Eigen::MatrixXi& matEvents,
232 float fTBaselineFromS,
234 const QMap<QString, double>& mapReject,
236 const QStringList& lExcludeChs = QStringList(),
237 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi());
251 typedef QSharedPointer<FilterOverlapAdd>
SPtr;
252 typedef QSharedPointer<const FilterOverlapAdd>
ConstSPtr;
273 Eigen::MatrixXd
calculate(
const Eigen::MatrixXd& matData,
281 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
282 bool bFilterEnd =
true,
283 bool bUseThreads =
true,
284 bool bKeepOverhead =
false);
299 Eigen::MatrixXd
calculate(
const Eigen::MatrixXd& matData,
301 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
302 bool bFilterEnd =
true,
303 bool bUseThreads =
true,
304 bool bKeepOverhead =
false);
313 Eigen::MatrixXd m_matOverlapBack;
314 Eigen::MatrixXd m_matOverlapFront;
Single averaged evoked response: time axis, samples, baseline, channel info and processing history.
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.
Linear-phase FIR filter kernel with overlap-add FFT convolution back-end.
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.
Continuous FIFF raw recording: FiffInfo plus a random-access directory of FIFF_DATA_BUFFER tags.