Convert transfer function filter parameters to zero-pole-gain form
finds the matrix of zeros
k] = tf2zpk(
z, the vector of poles
p, and the associated vector of gains
k from the
transfer function parameters
a. The function
converts a polynomial transfer-function representation
of a single-input/multi-output (SIMO) discrete-time system to a factored transfer function form
tf2zpk when working with transfer functions expressed in
inverse powers (1 + z–1 +
z–2). A similar function,
tf2zp, is more useful for working with positive powers (s2 + s +
1), such as in continuous-time transfer functions.
Poles, Zeros, and Gain of IIR Filter
Design a 3rd-order Butterworth filter with normalized cutoff frequency rad/sample. Find the poles, zeros, and gain of the filter.
[b,a] = butter(3,.4); [z,p,k] = tf2zpk(b,a)
z = 3×1 complex -1.0000 + 0.0000i -1.0000 - 0.0000i -1.0000 + 0.0000i
p = 3×1 complex 0.2094 + 0.5582i 0.2094 - 0.5582i 0.1584 + 0.0000i
k = 0.0985
Plot the poles and zeros to verify that they are where expected.
text(real(z)-0.1,imag(z)-0.1,'\bfZeros','color',[0 0.4 0]) text(real(p)-0.1,imag(p)-0.1,'\bfPoles','color',[0.6 0 0])
b — Transfer function numerator coefficients
vector | matrix
Transfer function numerator coefficients, specified as a vector or matrix. If
b is a matrix, then each row of
corresponds to an output of the system.
b contains the coefficients
in descending powers of z. The number of columns of
b must be equal to the length of
a. If the
numbers differ, make them equal by padding zeros. You can use the function
eqtflength to accomplish this.
a — Transfer function denominator coefficients
Transfer function denominator coefficients, specified as a vector.
a contains the coefficients in descending powers of
z — Zeros
Zeros of the system, returned as a matrix.
z contains the
numerator zeros in its columns.
z has as many columns as there are
p — Poles
Poles of the system, returned as a column vector.
the pole locations of the denominator coefficients of the transfer function
k — Gains
Gains of the system, returned as a column vector.
the gains for each numerator transfer function.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
The complexity of outputs,
k, might be different in MATLAB® and the generated code.
The order of outputs,
p, might be different in MATLAB and the generated code.