bundles / scipy 1.17.1 / scipy / signal / _filter_design / tf2zpk
function
scipy.signal._filter_design:tf2zpk
Signature
def tf2zpk ( b , a ) Summary
Return zero, pole, gain (z, p, k) representation from a numerator, denominator representation of a linear filter.
Parameters
b: array_likeNumerator polynomial coefficients.
a: array_likeDenominator polynomial coefficients.
Returns
z: ndarrayZeros of the transfer function.
p: ndarrayPoles of the transfer function.
k: floatSystem gain.
Notes
If some values of b are too close to 0, they are removed. In that case, a BadCoefficients warning is emitted.
The b and a arrays are interpreted as coefficients for positive, descending powers of the transfer function variable. So the inputs and can represent an analog filter of the form:
or a discrete-time filter of the form:
This "positive powers" form is found more commonly in controls engineering. If M and N are equal (which is true for all filters generated by the bilinear transform), then this happens to be equivalent to the "negative powers" discrete-time form preferred in DSP:
Although this is true for common filters, remember that this is not true in the general case. If M and N are not equal, the discrete-time transfer function coefficients must first be converted to the "positive powers" form before finding the poles and zeros.
Array API Standard Support
tf2zpk has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variable SCIPY_ARRAY_API=1 and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.
==================== ==================== ==================== Library CPU GPU ==================== ==================== ==================== NumPy ✅ n/a CuPy n/a ✅ PyTorch ✅ ⛔ JAX ⚠️ no JIT ⛔ Dask ⚠️ computes graph n/a ==================== ==================== ====================
See
dev-arrayapifor more information.
Examples
Find the zeroes, poles and gain of a filter with the transfer function .. math:: H(s) = \frac{3s^2}{s^2 + 5s + 13}from scipy.signal import tf2zpk
✓tf2zpk([3, 0, 0], [1, 5, 13])
✗Aliases
-
scipy.signal.tf2zpk