Convert digital filter second-order section parameters to zero-pole-gain form
[z,p,k] = sos2zp(sos)
[z,p,k] = sos2zp(sos,g)
example
[z,p,k] = sos2zp(sos) returns the zeros, poles, and gain of a system whose second-order section representation is given by sos.
z
p
k
sos
[z,p,k] = sos2zp(sos,g) returns the zeros, poles, and gain of a system whose second-order section representation is given by sos with gain g.
g
collapse all
Compute the zeros, poles, and gain of a simple system in second-order section form.
sos = [1 1 1 1 0 -1; -2 3 1 1 10 1]; [z,p,k] = sos2zp(sos)
z = 4×1 complex -0.5000 + 0.8660i -0.5000 - 0.8660i 1.7808 + 0.0000i -0.2808 + 0.0000i
p = 4×1 -1.0000 1.0000 -9.8990 -0.1010
k = -2
Second-order section representation, specified as a matrix. sos is an L-by-6 matrix
sos=[b01b11b211a11a21b02b12b221a12a22⋮⋮⋮⋮⋮⋮b0Lb1Lb2L1a1La2L]
whose rows contain the numerator and denominator coefficients bik and aik of the second-order sections of H(z):
H(z)=g∏k=1LHk(z)=g∏k=1Lb0k+b1kz−1+b2kz−21+a1kz−1+a2kz−2.
Example: [2 4 2 6 0 2;3 3 0 6 0 0] specifies a third-order Butterworth filter with normalized 3 dB frequency 0.5π rad/sample.
[2 4 2 6 0 2;3 3 0 6 0 0]
Data Types: single | double Complex Number Support: Yes
single
double
Overall system gain, specified as a real scalar.
Data Types: single | double
Zeros of the system, returned as a vector.
Poles of the system, returned as a vector.
Scalar gain of the system, returned as a scalar.
sos2zp finds the poles and zeros of each second-order section by repeatedly calling tf2zp.
sos2zp
tf2zp
sos2ss | sos2tf | ss2zp | tf2zp | tf2zpk | zp2sos
sos2ss
sos2tf
ss2zp
tf2zpk
zp2sos
You have a modified version of this example. Do you want to open this example with your edits?