/// <summary> /// Filters entire <paramref name="signal"/> by processing each signal sample in a loop. /// </summary> /// <param name="filter">Online filter</param> /// <param name="signal">Input signal</param> public static double[] FilterOnline(this IOnlineFilter64 filter, double[] signal) { var output = new double[signal.Length]; for (var i = 0; i < signal.Length; i++) { output[i] = filter.Process(signal[i]); } return(output); }
/// <summary> /// Online filtering /// </summary> /// <param name="input"></param> /// <returns></returns> public double Process(double input) { if (_isRight) { _isRight = false; return(_filterRight.Process(input)); } else { _isRight = true; return(_filterLeft.Process(input)); } }
/// <summary> /// Processes one sample. /// </summary> /// <param name="sample">Input sample</param> public double Process(double sample) { if (_isRight) { _isRight = false; return(_filterRight.Process(sample)); } else { _isRight = true; return(_filterLeft.Process(sample)); } }