/// <summary> /// perform bandpass filter, unlike other bindings instead in-place calculation it returns new array /// </summary> /// <param name="data"></param> /// <param name="sampling_rate"></param> /// <param name="center_freq"></param> /// <param name="band_width"></param> /// <param name="order"></param> /// <param name="filter_type"></param> /// <param name="ripple"></param> /// <returns>filtered data</returns> public static double[] perform_bandpass(double[] data, int sampling_rate, double center_freq, double band_width, int order, int filter_type, double ripple) { double[] filtered_data = new double[data.Length]; Array.Copy(data, filtered_data, data.Length); int res = DataHandlerLibrary.perform_bandpass(filtered_data, data.Length, sampling_rate, center_freq, band_width, order, filter_type, ripple); if (res != (int)CustomExitCodes.STATUS_OK) { throw new BrainFlowException(res); } return(filtered_data); }