/// <summary> /// Returns the list of IIR coefficients for a generic Butterworth filter. /// </summary> /// <param name="gain">Filter gain.</param> /// <param name="zeros">Filter zeros list.</param> /// <param name="poles">Filter poles list.</param> /// <param name="T">Sampling time (inverse of sampling frequency).</param> /// <returns>The list of IIR coefficients.</returns> private static (double[] numerator, double[] denominator) Coefficients(double gain, Complex[] zeros, Complex[] poles, double T) { (gain, zeros, poles) = BilinearTransform.Apply(gain, zeros, poles, T); double[] numerator = Generate.Map(Helpers.MathFunctions.PolynomialCoefficients(zeros), num => (num * gain).Real); double[] denominator = Generate.Map(Helpers.MathFunctions.PolynomialCoefficients(poles), den => den.Real); return(numerator, denominator); }