package org.signalml.plugin.newartifact.logic.algorithm; import org.signalml.plugin.newartifact.data.NewArtifactConstants; public class PreprocessHelper { public static void Preprocess(double signal[][], NewArtifactConstants constants) { int tailLength = constants.getPaddingLength(); int blockLength = constants.getBlockLength(); double min, max; double rangeMin; double value; int rangeMinPos = 0; while (true) { rangeMin = Double.POSITIVE_INFINITY; for (int i = 0; i < signal.length; ++i) { min = Double.POSITIVE_INFINITY; max = Double.NEGATIVE_INFINITY; for (int j = tailLength; j < tailLength + blockLength; ++j) { value = signal[i][j]; if (value < min) { min = value; } if (value > max) { max = value; } } if (max - min < rangeMin) { rangeMin = max - min; rangeMinPos = i; } } if (rangeMin != 0.0) { break; } signal[rangeMinPos][tailLength] = 1; for (int j = tailLength + 1; j < tailLength + blockLength; ++j) { signal[rangeMinPos][j] = 0; } } } }