IIR filter using biquadratic structures
The BiquadFilter
object implements an IIR
filter structure using biquadratic or second–order sections
(SOS).
To implement an IIR filter structure using biquadratic or SOS:
Define and set up your biquadratic IIR filter. See Construction.
Call step
to implement the IIR filter
according to the properties of dsp.BiquadFilter
.
The behavior of step
is specific to each object in
the toolbox.
Starting in R2016b, instead of using the step
method
to perform the operation defined by the System
object™, you can
call the object with arguments, as if it were a function. For example, y
= step(obj,x)
and y = obj(x)
perform
equivalent operations.
biquad = dsp.BiquadFilter
returns a biquadratic IIR (SOS) filter
System
object, biquad
, which independently filters
each channel of the input over time using the SOS section[1 0.3 0.4 1 0.1
0.2]
with a directform II transposed structure.
biquad = dsp.BiquadFilter('
returns a biquadratic filter object, PropertyName
',PropertyValue
,
...)biquad
,
with each property set to the specified value.
biquad = dsp.BiquadFilter(sosmatrix,scalevalues,...
'
returns a biquadratic filter object, with the PropertyName
',PropertyValue
,...)SOSMatrix
property
set to sosmatrix
, the ScaleValues
property set
to scalevalues
, and other specified properties set to the specified
values.

Filter structure Specify the filter structure as one of  

SOS matrix source Specify the source of the SOS matrix as one of  

SOS matrix Specify the secondorder section (SOS) matrix as an Nby6 matrix, where N is the number of
sections in the filter. The default is $$H(z)=\frac{{\displaystyle \sum _{k=0}^{2}{b}_{k}}{z}^{k}}{1{\displaystyle \sum _{l=1}^{2}{a}_{l}}{z}^{l}}$$ SOSMatrixSource
property to Property . The leading denominator coefficient
of the biquad filter, a_{0}, equals 1 for each filter section, regardless of the
specified value.


Scale values for each biquad section Specify the scale values to apply before and after each section
of a biquad filter. This property applies only when you set the 

Initial conditions for direct form II structures Specify the initial conditions of the filter states when the When you specify a scalar value, the biquad filter initializes all delay elements in the filter to that value. When you specify a vector of length equal to the number of delay elements in the filter, each vector element specifies a unique initial condition for the corresponding delay element. The biquad filter applies the same vector of initial conditions
to each channel of the input signal. When you specify a vector of
length equal to the product of the number of input channels and the
number of delay elements in the filter, each element specifies a unique
initial condition for the corresponding delay element in the corresponding
channel. When you specify a matrix with the same number of rows as
the number of delay elements in the filter, and one column for each
channel of the input signal, each element specifies a unique initial
condition for the corresponding delay element in the corresponding
channel. The default is the scalar 

Initial conditions on zeros side Specify the initial conditions of the filter states on the side of the filter structure with
the zeros. This property applies only when you set the
The biquad filter applies the same vector of initial conditions
to each channel of the input signal. When you specify a vector of
length equal to the product of the number of input channels and the
number of delay elements on the zeros side in the filter, each element
specifies a unique initial condition for the corresponding delay element
on the zeros side in the corresponding channel. When you specify a
matrix with the same number of rows as the number of delay elements
on the zeros side in the filter, and one column for each channel of
the input signal, each element specifies a unique initial condition
for the corresponding delay element on the zeros side in the corresponding
channel. The default is the scalar 

Initial conditions on poles side Specify the initial conditions of the filter states on the side of the filter structure with
the poles. This property only applies when you set the
The object applies the same vector of initial conditions to
each channel of the input signal. When you specify a vector of length
equal to the product of the number of input channels and the number
of delay elements on the poles side in the filter, each element specifies
a unique initial condition for the corresponding delay element on
the poles side in the corresponding channel. When you specify a matrix
with the same number of rows as the number of delay elements on the
poles side in the filter, and one column for each channel of the input
signal, each element specifies a unique initial condition for the
corresponding delay element on the poles side in the corresponding
channel. The default is the scalar 

Optimize unity scale values When this Boolean property is set to 

How to specify scale values Select how to specify scale values. This property applies only when the

freqz  Frequency response 
fvtool  Open filter visualization tool 
impz  Impulse response 
phasez  Unwrapped phase response 
reset  Reset states of biquad filter object 
step  Filter input with biquad filter object 
More Analysis Methods for Filter System Objects.
Common to All System Objects  

clone  Create System object with same property values 
getNumInputs  Expected number of inputs to a System object 
getNumOutputs  Expected number of outputs of a System object 
isLocked  Check locked states of a System object (logical) 
release  Allow System object property value changes 
This object implements the algorithm, inputs, and outputs described on the Biquad Filter block reference page. The object properties correspond to the block parameters, except:
Coefficient source
Action when the a0 values of the SOS matrix
are not one – the biquad filter object assumes the
zerothorder denominator coefficient equals 1 regardless of the specified
value. The biquad filter object does not support the Error
or Warn
options
found in the corresponding block.
Both this object and its corresponding block support variablesize input. This means that the step method can handle an input which is changing in size.