package org.signalml.plugin.newstager.logic.helper; public class NewStagerFilterHelper { public static double[] LowPassFilter(double signal[], double num[], double den[]) { int blockCount = signal.length; int numLength = num.length; int denLength = den.length; double result[] = new double[blockCount]; for (int i = 0; i < blockCount; ++i) { double value = 0d; for (int k = 0; k < Math.min(blockCount, numLength) && k <= i; ++k) { value += num[k] * signal[i - k]; } for (int k = 1; k < Math.min(blockCount, denLength) && k <= i; ++k) { value -= den[k] * result[i - k]; } result[i] = value / den[0]; } return result; } }