# ss

Convert discrete-time filter System object to state-space representation

## Syntax

``[A,B,C,D] = ss(sysobj)``
``[A,B,C,D] = ss(sysobj,Arithmetic=arithType)``

## Description

example

````[A,B,C,D] = ss(sysobj)` converts a filter System object™ to state-space representation given by: $\begin{array}{l}x\left(k+1\right)=Ax\left(k\right)+Bu\left(k\right),\\ y\left(k\right)=Cx\left(k\right)+Du\left(k\right),\end{array}$where x is the state vector, u is the input vector, and y is the output vector.```
````[A,B,C,D] = ss(sysobj,Arithmetic=arithType)` analyzes the filter System object based on the arithmetic specified in `arithType`.For more input options, see `ss` in Signal Processing Toolbox™.```

## Examples

collapse all

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

```[z,p,k] = ellip(4,1,60,.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] Use get to show all properties ```

Convert the designed filter into state-space form using the `ss` function.

`[A,B,C,D] = ss(sosFilt)`
```A = 8×8 0 0 0 0 0 0 0 0 1.0000 0 0 0 0 0 0 0 1.8116 1.0000 1.0095 -0.3954 0 0 0 0 0 0 1.0000 0 0 0 0 0 1.8116 1.0000 1.0095 -0.3954 0 0 0 0 0 0 0 0 1.0000 0 0 0 1.8116 1.0000 1.0095 -0.3954 1.1484 1.0000 0.5581 -0.7823 0 0 0 0 0 0 1.0000 0 ```
```B = 8×1 0.0351 0 0.0351 0 0.0351 0 0.0351 0 ```
```C = 1×8 1.8116 1.0000 1.0095 -0.3954 1.1484 1.0000 0.5581 -0.7823 ```
```D = 0.0351 ```

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

State matrix, returned as an N-by-N matrix, where N is the filter order.

Data Types: `double`

Input matrix, returned as an N-by-1 column vector, indicating that the number of inputs to the linear system is 1. N is the filter order.

Data Types: `double`

Output matrix, returned as a 1-by-N row vector, indicating that the number of outputs of the linear system is 1. N is the filter order.

Data Types: `double`

Feedthrough matrix, returned as a scalar, indicating that the number of inputs and outputs of the linear system is 1.

Data Types: `double`

## Version History

Introduced in R2011a

expand all