Function File: [z, p, k] = sos2zp (sos)
Function File: [z, p, k] = sos2zp (sos, g)

Convert series second-order sections to zeros, poles, and gains (pole residues).

INPUTS:

  • sos = matrix of series second-order sections, one per row:
    sos = [B1.' A1.'; ...; BN.' AN.']
    

    where B1.' = [b0 b1 b2] and A1.' = [a0 a1 a2] for section 1, etc.

    a0 is usually equal to 1 because all 2nd order transfer functions can be scaled so that a0 = 1. However, this is not mandatory for this implementation, which supports all kinds of transfer functions, including first order transfer functions. See filter for documentation of the second-order direct-form filter coefficients Bi and Ai.

  • g is an overall gain factor that effectively scales any one of the input Bi vectors. If not given the gain is assumed to be 1.

RETURNED:

  • z = column-vector containing all zeros (roots of B(z))
  • p = column-vector containing all poles (roots of A(z))
  • k = overall gain = B(Inf)

EXAMPLE:

[z, p, k] = sos2zp ([1 0 1, 1 0 -0.81; 1 0 0, 1 0 0.49])
  ⇒ z =
     0 + 1i
     0 - 1i
     0 + 0i
     0 + 0i
  ⇒ p =
    -0.9000 + 0i
     0.9000 + 0i
     0 + 0.7000i
     0 - 0.7000i
  ⇒ k =  1

See also: zp2sos, sos2tf, tf2sos, zp2tf, tf2zp.

Package: signal