## Documentation Center |

Specify discrete transfer functions in DSP format

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

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:

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).

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

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 Sampling time: unspecified

Was this topic helpful?