/// <summary> /// perform data downsampling, it just aggregates data without applying lowpass filter /// </summary> /// <param name="data"></param> /// <param name="period"></param> /// <param name="operation"></param> /// <returns>data after downsampling</returns> public static double[] perform_downsampling(double[] data, int period, int operation) { if (period == 0) { throw new BrainFlowException((int)CustomExitCodes.INVALID_ARGUMENTS_ERROR); } if (data.Length / period <= 0) { throw new BrainFlowException((int)CustomExitCodes.INVALID_ARGUMENTS_ERROR); } double[] downsampled_data = new double[data.Length / period]; int res = DataHandlerLibrary.perform_downsampling(data, data.Length, period, operation, downsampled_data); if (res != (int)CustomExitCodes.STATUS_OK) { throw new BrainFlowException(res); } return(downsampled_data); }