# Is gradient vector of pole zero carry usful information?

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.

• 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/… Commented Nov 21, 2019 at 20:24

## 1 Answer

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
• 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. Commented Oct 22, 2019 at 20:14