Consider a transfer function (TF) with $n$ number of poles $(p_1,..p_n)$ and $m$ number of zeros $(z_1,..z_n)$. One can write the magnitude of the frequency responce of the TF in terms of poles and zeros.

This means one can take partial derivative of the magnitude of the TF with respect to each pole and zero for a paticular frequency. Now consider $f_1$ is the frequency at which TF is deviated most from the desired responce. Thus one can change the poles and zeros based on the gradient of the magnitude of TF at $f_1$ and optimize the poles and zeros for $f_1$. Can one can keep doing this procedure for each frequency until a desired result is obtained? Is this a valid process of filter design?

Any comment would be appreciated.

  • $\begingroup$ Gain (k) is also a required parameter for computing the system's frequency response. In this example, recursion coefficients are used as parameters instead of poles, zeros, and gain - dsp.stackexchange.com/questions/19225/… $\endgroup$
    – igorinov
    Commented Nov 21, 2019 at 20:24

1 Answer 1


Does gradient vector of pole zero carry useful information?

Yes. The partial derivatives can be used in creating iterative search algorithms for fitting IIR filters to arbitrary targets. Examples of algorithms that use the derivatives are Steepest Descent or Conjugate Gradient.

It's not a trivial process though and there are lot of details to be worked out.

  • Poles, zeros and transfer function targets are all complex, so you either need to work with complex derivatives are use a suitable real-valued representation (real/imag, magnitude/phase, etc.).
  • It's important to formulate a suitable error criteria that properly reflects the requirements and trade-offs for your specific application,
  • The search algorithms often get stuck in local minima
  • Log spaced frequency grids may have to be pre-warped to straighten out the error surface a bit.
  • Many search algorithm have "heuristic" parameters that are hard to get right
  • $\begingroup$ May I ask, if the procedure can fit arbitray targets than is there a function/procedure already available in matlab or any other filter design software? The process you mentioned need to be done only once hence, one can develop only this tool (if this process can fit arbitrary spectrum), why do we need any other filter design technique. $\endgroup$
    – Creator
    Commented Oct 22, 2019 at 20:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.