public static TimeSeries.DataSequence mFilter(TimeSeries.DataSequence data, int windowSize, FilteringMethod method,
double methodParameter) {
TimeSeries.DataSequence result = new TimeSeries.DataSequence();
RealMatrix dataMat = MatrixUtils.createRealMatrix(data.size(), 1);
int i = 0;
for (TimeSeries.Entry e : data) {
dataMat.setEntry(i, 0, e.value);
i++;
TimeSeries.Entry eCopy = new TimeSeries.Entry(e);
result.add(eCopy);
}
RealMatrix resultMat = SpectralMethods.mFilter(dataMat, windowSize, method, methodParameter);
i = 0;
for (TimeSeries.Entry e : result) {
e.value = (float) resultMat.getEntry(i, 0);
i++;
}
return result;
}
}