Second-order (biquadratic) IIR digital filtering
y = sosfilt(sos,x)
y = sosfilt(sos,x,dim)
y = sosfilt(sos,x)
applies
the second-order section digital filter sos
to
the vector x
. The output, y
,
is the same length as x
.
Note:
If either input to |
sos
represents the second-order section digital
filter H(z)
$$H(z)={\displaystyle \prod _{k=1}^{L}{H}_{k}(z)={\displaystyle \prod _{k=1}^{L}\frac{{b}_{0k}+{b}_{1k}{z}^{-1}+{b}_{2k}{z}^{-2}}{1+{a}_{1k}{z}^{-1}+{a}_{2k}{z}^{-2}}}}$$
by an L-by-6 matrix containing the coefficients of each second-order section 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}\\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {b}_{0L}& {b}_{1L}& {b}_{2L}& 1& {a}_{1L}& {a}_{2L}\end{array}\right]$$
If x
is a matrix, sosfilt
applies
the filter to each column of x
independently. The
output y
is a matrix of the same size, containing
the filtered data corresponding to each column of x
.
If x
is a multidimensional array, sosfilt
filters
along the first nonsingleton dimension. The output y
is
a multidimensional array of the same size as x
,
containing the filtered data corresponding to each row and column
of x
.
The second order sections matrix, sos
, the
input signal, x
, or both can be double or single
precision. If at least one input is single precision, filtering is
done with single precision arithmetic.
y = sosfilt(sos,x,dim)
operates
along the dimension dim
.
[1] Orfanidis, S.J., Introduction to Signal Processing, Prentice-Hall, Englewood Cliffs, NJ, 1996.
filter
| medfilt1
| sgolayfilt