Specify discrete transfer functions in DSP format

`sys = filt(num,den) `

sys = filt(num,den,Ts) `sys = filt(M) `

In digital signal processing (DSP), it is customary to write
transfer functions as rational expressions in *z*^{−1} and
to order the numerator and denominator terms in *ascending* powers
of *z*^{−1}. For example:

$$H\left({z}^{-1}\right)=\frac{2+{z}^{-1}}{1+0.4{z}^{-1}+2{z}^{-2}}$$

The function `filt`

is provided to facilitate
the specification of transfer functions in DSP format.

`sys = filt(num,den) `

creates
a discrete-time transfer function `sys`

with numerator(s) `num`

and
denominator(s) `den`

. The sample time is left unspecified
(`sys.Ts = -1`

) and the output `sys`

is
a TF object.

`sys = filt(num,den,Ts) `

further specifies the sample time `Ts`

(in seconds).

specifies a static filter with gain matrix `sys = filt(M) `

`M`

.

Any of the previous syntaxes can be followed by property name/property value pairs of the form

'Property',Value

Each pair specifies a particular property of the model, for
example, the input names or the transfer function variable. For information
about the available properties and their values, see the `tf`

reference page.

For SISO transfer functions, `num`

and `den`

are
row vectors containing the numerator and denominator coefficients
ordered in ascending powers of *z*^{−1}.
For example, `den = [1 0.4 2]`

represents the polynomial
1 + 0.4*z*^{−1} + 2*z*^{−2}.

MIMO transfer functions are regarded as arrays of SISO transfer
functions (one per I/O channel), each of which is characterized by
its numerator and denominator. The input arguments `num`

and `den`

are
then cell arrays of row vectors such that:

`num`

and`den`

have as many rows as outputs and as many columns as inputs.Their (

*i*,*j*) entries`num{i,j}`

and`den{i,j}`

specify the numerator and denominator of the transfer function from input`j`

to output`i`

.

If all SISO entries have the same denominator, you can also
set `den`

to the row vector representation of this
common denominator.

Create a two-input digital filter with input names `'channel1'`

and `'channel2'`

:

num = {1 , [1 0.3]}; den = {[1 1 2] ,[5 2]}; H = filt(num,den,'inputname',{'channel1' 'channel2'})

This syntax returns:

Transfer function from input "channel1" to output: 1 ----------------- 1 + z^-1 + 2 z^-2 Transfer function from input "channel2" to output: 1 + 0.3 z^-1 ------------ 5 + 2 z^-1 Sample time: unspecified

Was this topic helpful?