# tf

Convert discrete-time filter System object to transfer function

## Syntax

``[num,den] = tf(sysobj)``
``[num,den] = tf(sysobj,'Arithmetic',arithType)``

## Description

example

````[num,den] = tf(sysobj)` converts the discrete-time filter System object™ to numerator and denominator coefficient vectors of the equivalent transfer function.```
````[num,den] = tf(sysobj,'Arithmetic',arithType)` analyzes the filter System object based on the arithmetic specified in `arithType`.For more input options, see `tf` in Signal Processing Toolbox™.```

## Examples

collapse all

Compute the transfer function of an SOS filter using the `tf` function.

Create a fourth-order, lowpass SOS filter object with a normalized cutoff frequency of 0.4.

```[z,p,k] = ellip(4,1,60,0.4); % Set up the filter [sosMatrix,scaleValues] = zp2sos(z,p,k); sosFilt = dsp.SOSFilter(Structure='Direct form I',... Numerator=sosMatrix(:,1:3),Denominator=sosMatrix(:,4:6),... HasScaleValues=true,ScaleValues=scaleValues)```
```sosFilt = dsp.SOSFilter with properties: Structure: 'Direct form I' CoefficientSource: 'Property' Numerator: [2x3 double] Denominator: [2x3 double] HasScaleValues: true ScaleValues: [0.0351 1 1] Show all properties ```

Compute the transfer function of the designed SOS filter. The `tf` function returns the numerator and the denominator coefficient vectors of the filter.

`[num,den] = tf(sosFilt)`
```num = 1×5 0.0351 0.1038 0.1432 0.1038 0.0351 ```
```den = 1×5 1.0000 -1.5676 1.7412 -1.0104 0.3093 ```

## Input Arguments

collapse all

Arithmetic used in the filter analysis, specified as `'double'`, `'single'`, or `'Fixed'`. When the arithmetic input is not specified and the filter System object is unlocked, the analysis tool assumes a double-precision filter. When the arithmetic input is not specified and the System object is locked, the function performs the analysis based on the data type of the locked input.

The `'Fixed'` value applies to filter System objects with fixed-point properties only.

When the `'Arithmetic'` input argument is specified as `'Fixed'` and the filter object has the data type of the coefficients set to `'Same word length as input'`, the arithmetic analysis depends on whether the System object is unlocked or locked.

• unlocked –– The analysis object function cannot determine the coefficients data type. The function assumes that the coefficients data type is signed, has a 16-bit word length, and is auto scaled. The function performs fixed-point analysis based on this assumption.

• locked –– When the input data type is `'double'` or `'single'`, the analysis object function cannot determine the coefficients data type. The function assumes that the data type of the coefficients is signed, has a 16-bit word length, and is auto scaled. The function performs fixed-point analysis based on this assumption.

To check if the System object is locked or unlocked, use the `isLocked` function.

When the arithmetic input is specified as `'Fixed'` and the filter object has the data type of the coefficients set to a custom numeric type, the object function performs fixed-point analysis based on the custom numeric data type.

## Output Arguments

collapse all

Numerator coefficients of the filter, returned as a row vector.

Data Types: `double`

Denominator coefficients of the filter, returned as a row vector.

Data Types: `double`

## Version History

Introduced in R2011a