Main Content

cost

Computational cost of implementing filter System object

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

Introduced in R2013b