59 : m_iCutFrontRaw(cutFront)
60 , m_iCutBackRaw(cutBack)
61 , m_iCutFrontProc(cutFront)
62 , m_iCutBackProc(cutBack)
64 if(originalRawData.rows() != 0 && originalRawData.cols() != 0) {
67 m_timeRawOriginal = originalRawTime;
68 m_timeRawMapped = cutData(m_timeRawOriginal, m_iCutFrontRaw, m_iCutBackRaw);
72 int exp = ceil(MNEMath::log2(originalRawTime.cols()));
73 int length = pow(2, exp+1);
75 m_dataProcOriginal = MatrixXdR::Zero(m_dataRawOriginal.rows(), length);
76 m_dataProcMapped = MatrixXdR::Zero(m_dataRawMapped.rows(), m_dataRawMapped.cols());
79 m_dataRawMean = calculateMatMean(m_dataRawMapped);
80 m_dataProcMean = calculateMatMean(m_dataProcMapped);
89 m_dataRawOriginal = originalRawData;
92 m_dataRawMapped = cutData(m_dataRawOriginal, cutFront, cutBack);
94 if(cutFront != m_iCutFrontRaw)
95 m_iCutFrontRaw = cutFront;
97 if(cutBack != m_iCutBackRaw)
98 m_iCutBackRaw = cutBack;
101 m_dataRawMean = calculateMatMean(m_dataRawMapped);
109 if(originalRawData.cols() != m_dataRawOriginal.cols() || row >= m_dataRawOriginal.rows()){
110 qDebug()<<
"DataPackage::setOrigRawData - cannot set row data to m_dataRawOriginal";
115 m_dataRawOriginal.row(row) = originalRawData;
118 m_dataRawMapped.row(row) = cutData(m_dataRawOriginal, cutFront, cutBack);
120 if(cutFront != m_iCutFrontRaw)
121 m_iCutFrontRaw = cutFront;
123 if(cutBack != m_iCutBackRaw)
124 m_iCutBackRaw = cutBack;
127 m_dataRawMean(row) = calculateRowMean(m_dataRawMapped.row(row));
136 m_dataProcOriginal = originalProcData;
139 m_dataProcMapped = cutData(m_dataProcOriginal, cutFront, cutBack);
141 if(cutFront != m_iCutFrontProc)
142 m_iCutFrontProc = cutFront;
144 if(cutBack != m_iCutBackProc)
145 m_iCutBackProc = cutBack;
148 m_dataProcMean = calculateMatMean(m_dataProcMapped);
157 m_dataProcMapped = cutData(originalProcData, cutFront, cutBack);
159 if(cutFront != m_iCutFrontProc)
160 m_iCutFrontProc = cutFront;
162 if(cutBack != m_iCutBackProc)
163 m_iCutBackProc = cutBack;
166 m_dataProcMean = calculateMatMean(m_dataProcMapped);
174 if(originalProcData.cols() != m_dataProcOriginal.cols() || row >= m_dataProcOriginal.rows()){
175 qDebug()<<
"DataPackage::setOrigProcData - cannot set row data to m_dataProcOriginal";
180 m_dataProcOriginal.row(row) = originalProcData;
183 m_dataProcMapped.row(row) = cutData(originalProcData, cutFront, cutBack);
185 if(cutFront != m_iCutFrontProc)
186 m_iCutFrontProc = cutFront;
188 if(cutBack != m_iCutBackProc)
189 m_iCutBackProc = cutBack;
192 m_dataProcMean(row) = calculateRowMean(m_dataProcMapped.row(row));
200 if(originalProcData.cols()-cutFront-cutBack != m_dataProcMapped.cols() || row >= m_dataProcMapped.rows()){
201 qDebug()<<
"DataPackage::setMappedProcData - cannot set row data to m_dataProcOriginal";
206 m_dataProcMapped.row(row) = cutData(originalProcData, cutFront, cutBack);
208 if(cutFront != m_iCutFrontProc)
209 m_iCutFrontProc = cutFront;
211 if(cutBack != m_iCutBackProc)
212 m_iCutBackProc = cutBack;
215 m_dataProcMean(row) = calculateRowMean(m_dataProcMapped.row(row));
222 return m_dataRawOriginal;
230 return m_dataProcOriginal;
238 return m_dataRawMapped;
246 return m_dataProcMapped;
254 if(row>=m_dataProcMean.rows())
257 return m_dataProcMean(row);
265 if(row>=m_dataRawMean.rows())
268 return m_dataRawMean(row);
276 if(channelNumber >= m_dataRawOriginal.rows()){
277 qDebug()<<
"DataPackage::applyFFTFilter - channel number out of range.";
282 m_dataProcOriginal.row(channelNumber) = filter->applyFFTFilter(m_dataRawOriginal.row(channelNumber)).eval();
284 m_dataProcOriginal.row(channelNumber) = filter->applyFFTFilter(m_dataProcOriginal.row(channelNumber)).eval();
287 m_dataProcMapped = cutData(m_dataProcOriginal, m_iCutFrontProc, m_iCutBackProc);
290 m_dataProcMean(channelNumber) = calculateRowMean(m_dataProcMapped);
296 MatrixXdR DataPackage::cutData(
const MatrixXdR &originalData,
int cutFront,
int cutBack)
298 if(originalData.cols()-cutFront-cutBack < 0 || cutFront>originalData.cols()) {
299 qDebug()<<
"DataPackage::cutData - cutFront or cutBack do not fit. Aborting mapping and returning original data.";
300 MatrixXdR returnMat = originalData;
305 return (MatrixXdR)originalData.block(0, cutFront, originalData.rows(), originalData.cols()-cutFront-cutBack);
311 RowVectorXd DataPackage::cutData(
const RowVectorXd &originalData,
int cutFront,
int cutBack)
313 if(originalData.cols()-cutFront-cutBack < 0 || cutFront>originalData.cols()) {
314 qDebug()<<
"DataPackage::cutData - cutFront or cutBack do not fit. Aborting mapping and returning original data.";
315 RowVectorXd returnVec = originalData;
320 return (RowVectorXd)originalData.segment(cutFront, originalData.cols()-cutFront-cutBack);
326 VectorXd DataPackage::calculateMatMean(
const MatrixXd &dataMat)
328 VectorXd channelMeans(dataMat.rows());
330 for(
int i = 0; i<channelMeans.rows(); i++)
331 channelMeans[i] = dataMat.row(i).mean();
339 double DataPackage::calculateRowMean(
const VectorXd &dataRow)
341 return dataRow.mean();
void setMappedProcData(const MatrixXdR &originalProcData, int cutFront, int cutBack)
const MatrixXdR & dataProc()
Contains the declaration of the DataPackage class.
const MatrixXdR & dataRaw()
void setOrigRawData(const MatrixXdR &originalRawData, int cutFront=0, int cutBack=0)
const MatrixXdR & dataRawOrig()
const MatrixXdR & dataProcOrig()
double dataRawMean(int row)
double dataProcMean(int row)
void applyFFTFilter(int channelNumber, QSharedPointer< FilterOperator > filter, bool useRawData=true)
DataPackage(const MatrixXdR &originalRawData=MatrixXdR(0, 0), const MatrixXdR &originalRawTime=MatrixXdR(0, 0), int cutFront=0, int cutBack=0)
void setOrigProcData(const MatrixXdR &originalProcData, int cutFront=0, int cutBack=0)