# filt

Specify discrete transfer functions in DSP format

## Syntax

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

## Description

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

`sys = filt(M) ` specifies a static filter with gain matrix `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.

## Arguments

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.4z−1 + 2z−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 (ij) 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.

## Examples

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```

## Tips

`filt` behaves as `tf` with the `Variable` property set to `'z^-1'`. See `tf` entry below for details.