cost

Computational cost of implementing filter System object

Syntax

``filtcost = cost(rcfilter)``
``filtcost = cost(rcfilter,'Arithmetic',arithType)``

Description

example

````filtcost = cost(rcfilter)` returns a structure of fields that contain information about the computational cost of implementing the specified filter. ```
````filtcost = cost(rcfilter,'Arithmetic',arithType)` specifies the type of arithmetic that the function uses to evaluate the filter response.```

Examples

collapse all

Compute the cost of implementing various root-raised-cosine (RRC) filters that are created by using a `comm.RaisedCosineTransmitFilter` System object™. Increasing the filter span or output samples per symbol increases the cost of implementing the filter.

```rrcFilt = comm.RaisedCosineTransmitFilter( ... "FilterSpanInSymbols",20, ... "OutputSamplesPerSymbol",8); costFilt = cost(rrcFilt)```
```costFilt = struct with fields: NumCoefficients: 161 NumStates: 20 MultiplicationsPerInputSample: 161 AdditionsPerInputSample: 153 ```
```rrcFilt = comm.RaisedCosineTransmitFilter( ... "FilterSpanInSymbols",200, ... "OutputSamplesPerSymbol",8); costFilt = cost(rrcFilt)```
```costFilt = struct with fields: NumCoefficients: 1601 NumStates: 200 MultiplicationsPerInputSample: 1601 AdditionsPerInputSample: 1593 ```
```rrcFilt = comm.RaisedCosineTransmitFilter( ... "FilterSpanInSymbols",200, ... "OutputSamplesPerSymbol",16); costFilt = cost(rrcFilt)```
```costFilt = struct with fields: NumCoefficients: 3201 NumStates: 200 MultiplicationsPerInputSample: 3201 AdditionsPerInputSample: 3185 ```

Input Arguments

collapse all

Filter, specified as one of these System objects.

Arithmetic used in the filter analysis, specified as `'double'`, `'single'`, or `'Fixed'`. When you do not specify the arithmetic type and the filter System object is unlocked, the analysis tool assumes a double-precision filter. When you do not specify the arithmetic type 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 you specify this input as `'Fixed'` and the filter object has the data type of the coefficients set to `'Same word length as input'`, the arithmetic analysis performed depends on whether the System object is unlocked or locked.

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

• If the System object is locked –– When the input data type is `'double'` or `'single'`, the analysis object function cannot determine the data type of the coefficients. The function assumes that the data type of the coefficients is signed, has a 16-bit word length, and is autoscaled. 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 you specify this input 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.

Data Types: `char` | `string`

Output Arguments

collapse all

Cost estimate, returned as a structure containing these fields.

Field

Description

`NumCoefficients`

Number of filter coefficients (excluding coefficients with values 0, 1, or –1)

`NumStates`

Number of filter states

`MultiplicationsPerInputSample`

Number of multiplication operations performed for each input sample

`AdditionsPerInputSample`

Number of addition operations performed for each input sample

Data Types: `struct`

Version History

Introduced in R2013b