Main Content

sos2tf

Convert digital filter second-order section data to transfer function form

Description

[b,a] = sos2tf(sos) returns the transfer function coefficients of a discrete-time system described in second-order section form by sos.

example

[b,a] = sos2tf(sos,g) returns the transfer function coefficients of a discrete-time system described in second-order section form by sos with gain g.

Examples

collapse all

Compute the transfer function representation of a simple second-order section system.

sos = [1  1  1  1  0 -1; -2  3  1  1 10  1];
[b,a] = sos2tf(sos)
b = 1×5

    -2     1     2     4     1

a = 1×5

     1    10     0   -10    -1

Input Arguments

collapse all

Second-order section representation, specified as a matrix. sos is an L-by-6 matrix

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

whose rows contain the numerator and denominator coefficients bik and aik of the second-order sections of H(z):

H(z)=gk=1LHk(z)=gk=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2.

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.

Data Types: double
Complex Number Support: Yes

Overall system gain, specified as a real scalar.

Data Types: double

Output Arguments

collapse all

Transfer function coefficients, returned as row vectors. b and a contain the numerator and denominator coefficients of H(z) stored in descending powers of z:

H(z)=B(z)A(z)=b1+b2z1++bn+1zna1+a2z1++am+1zm.

Algorithms

sos2tf uses the conv function to multiply all of the numerator and denominator second-order polynomials together. For higher order filters (possibly starting as low as order 8), numerical problems due to round-off errors may occur when forming the transfer function.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced before R2006a