Introduction - If you have any usage issues, please Google them yourself
This is a quasiconvex problem and can be solved using a bisection.
minimize filter order n
s.t. 1/delta <= H(w) <= delta for w in the passband
|H(w)| <= atten_level for w in the stopband
where H is the frequency response function and variable is
the filter impulse response h (and its order/length).
Data is delta (max passband ripple) and atten_level (max stopband
attenuation level).