# sos2tf

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

## Syntax

`[b,a] = sos2tf(sos)[b,a] = sos2tf(sos,g)`

## Description

`sos2tf` converts a second-order section representation of a given digital filter to an equivalent transfer function representation.

`[b,a] = sos2tf(sos)` returns the numerator coefficients `b` and denominator coefficients `a` of the transfer function that describes a discrete-time system given by `sos` in second-order section form. The second-order section format of H(z) is given by

$H\left(z\right)=\prod _{k=1}^{L}{H}_{k}\left(z\right)=\prod _{k=1}^{L}\frac{{b}_{0k}+{b}_{1k}{z}^{-1}+{b}_{2k}{z}^{-2}}{1+{a}_{1k}{z}^{-1}+{a}_{2k}{z}^{-2}}.$

`sos` is an L-by-6 matrix that contains the coefficients of each second-order section stored in its rows.

$\text{sos}=\left[\begin{array}{cccccc}{b}_{01}& {b}_{11}& {b}_{21}& 1& {a}_{11}& {a}_{21}\\ {b}_{02}& {b}_{12}& {b}_{22}& 1& {a}_{12}& {a}_{22}\\ ⋮& ⋮& ⋮& ⋮& ⋮& ⋮\\ {b}_{0L}& {b}_{1L}& {b}_{2L}& 1& {a}_{1L}& {a}_{2L}\end{array}\right].$

Row vectors `b` and `a` contain the numerator and denominator coefficients of H(z) stored in descending powers of z.

$H\left(z\right)=\frac{B\left(z\right)}{A\left(z\right)}=\frac{{b}_{1}+{b}_{2}{z}^{-1}+\cdots +{b}_{n+1}{z}^{-n}}{{a}_{1}+{a}_{2}{z}^{-1}+\cdots +{a}_{m+1}{z}^{-m}}$

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

$H\left(z\right)=g\prod _{k=1}^{L}{H}_{k}\left(z\right).$

## Examples

collapse all

### Transfer Function Representation of a Second-Order Section System

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 = -2 1 2 4 1 a = 1 10 0 -10 -1 ```

collapse all

### 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 roundoff errors may occur when forming the transfer function.