# IIR Filter design Signature and algorithm unclear #14

Open
opened this Issue Aug 15, 2018 · 1 comment

 This issue is based on discussion in the Mathnet forum. I tried to figure out the actual usage of the IirCoefficients Methods and found a bunch of irregularities or counter intuitive things: Frequency inputs instead of periods is counter intuitive compared to other packages for filter design (MATLAB, Octave and scipy). `width` Parameters for `LowPass ` is a bit unclear. What exactly is the bandwidth of a lowpass filter, if a cutoff frequency is already given? The returned coefficients as an array with `a` beeing the first 3 and `b` beeing the last three values is a bit obscure I find. There are no unit tests or examples for the FIR and IIR methods. The algorithm used to calculate the filter coefficients is not documented. Also I tried plotting the bode plots of the designed lowpass filters and could not figure out, how the given input parameters correspond to the frequencies of the resulting transfer functions. Plot example matrix bandwidth and cutoff frequency varied from 0Hz...100Hz in steps of 20Hz (blue magnitude, green phase): Plot example matrix bandwidth and cutoff frequency equal for range from 0Hz...100Hz with 25 points (blue magnitude, green phase):
 Also as pointed out in the discussion mentioned above, the generated transfer functions are unstable for most input combination. The only stable input combinations I found were. ``````bandwidth == cutoff && (0.22 * samplingFrequency) >= cutoff && (samplingFrequency / 3) < cutoff `````` Also any input with `bandwidth >= samplingFrequency / 2` as well as any input with `cutoff == 0` produces improper filter sizes (numberator length > denominator length).