36#ifndef FILTER_RTPROCESSING_H
37#define FILTER_RTPROCESSING_H
53#include <QSharedPointer>
54#include <QtConcurrent/QtConcurrent>
61#include <unsupported/Eigen/FFT>
75namespace RTPROCESSINGLIB
81 Eigen::RowVectorXd vecData;
103 QSharedPointer<FIFFLIB::FiffRawData> pFiffRawData,
111 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
112 bool bUseThreads =
true);
128 QSharedPointer<FIFFLIB::FiffRawData> pFiffRawData,
130 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
131 bool bUseThreads =
false);
160 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
161 bool bUseThreads =
true,
162 bool bKeepOverhead =
false);
179 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
180 bool bUseThreads =
true,
181 bool bKeepOverhead =
false);
196 const Eigen::RowVectorXi& vecPicks,
198 bool bUseThreads =
true);
218 typedef QSharedPointer<FilterOverlapAdd>
SPtr;
219 typedef QSharedPointer<const FilterOverlapAdd>
ConstSPtr;
240 Eigen::MatrixXd
calculate(
const Eigen::MatrixXd& matData,
247 int designMethod = FilterKernel::m_designMethods.indexOf(
FilterParameter(
"Cosine")),
248 const Eigen::RowVectorXi &vecPicks = Eigen::RowVectorXi(),
249 bool bFilterEnd =
true,
250 bool bUseThreads =
true,
251 bool bKeepOverhead =
false);
266 Eigen::MatrixXd
calculate(
const Eigen::MatrixXd& mataData,
268 const Eigen::RowVectorXi& vecPicks = Eigen::RowVectorXi(),
269 bool bFilterEnd =
true,
270 bool bUseThreads =
true,
271 bool bKeepOverhead =
false);
280 Eigen::MatrixXd m_matOverlapBack;
281 Eigen::MatrixXd m_matOverlapFront;
realtime library export/import macros.
#define RTPROCESINGSHARED_EXPORT
The FilterKernel class represents a filter object that generates the FIR filter coefficients using Pa...
RTPROCESINGSHARED_EXPORT Eigen::MatrixXd filterData(const Eigen::MatrixXd &matData, int type, double dCenterfreq, double dBandwidth, double dTransition, double dSFreq, int iOrder=1024, int designMethod=FilterKernel::m_designMethods.indexOf(FilterParameter("Cosine")), const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bUseThreads=true, bool bKeepOverhead=false)
RTPROCESINGSHARED_EXPORT bool filterFile(QIODevice &pIODevice, QSharedPointer< FIFFLIB::FiffRawData > pFiffRawData, int type, double dCenterfreq, double dBandwidth, double dTransition, double dSFreq, int iOrder=4096, int designMethod=FilterKernel::m_designMethods.indexOf(FilterParameter("Cosine")), const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bUseThreads=true)
RTPROCESINGSHARED_EXPORT Eigen::MatrixXd filterDataBlock(const Eigen::MatrixXd &mataData, const Eigen::RowVectorXi &vecPicks, const RTPROCESSINGLIB::FilterKernel &filterKernel, bool bUseThreads=true)
RTPROCESINGSHARED_EXPORT void filterChannel(FilterObject &channelDataTime)
FiffInfo class declaration.
Filtering with FFT convolution and the overlap add method for continous data streams.
Eigen::MatrixXd calculate(const Eigen::MatrixXd &mataData, const RTPROCESSINGLIB::FilterKernel &filterKernel, const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bFilterEnd=true, bool bUseThreads=true, bool bKeepOverhead=false)
QSharedPointer< const FilterOverlapAdd > ConstSPtr
QSharedPointer< FilterOverlapAdd > SPtr
Eigen::MatrixXd calculate(const Eigen::MatrixXd &matData, int type, double dCenterfreq, double dBandwidth, double dTransition, double dSFreq, int iOrder=1024, int designMethod=FilterKernel::m_designMethods.indexOf(FilterParameter("Cosine")), const Eigen::RowVectorXi &vecPicks=Eigen::RowVectorXi(), bool bFilterEnd=true, bool bUseThreads=true, bool bKeepOverhead=false)
The FilterParameter class.
The FilterKernel class provides methods to create/design a FIR filter kernel.
static QVector< FilterParameter > m_designMethods