Documentation

This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

fi Object Properties

Data Properties

The data properties of a `fi` object are always writable.

• `bin` — Stored integer value of a `fi` object in binary

• `data` — Numerical real-world value of a `fi` object

• `dec` — Stored integer value of a `fi` object in decimal

• `double` — Real-world value of a `fi` object, stored as a MATLAB® `double` data type

• `hex` — Stored integer value of a `fi` object in hexadecimal

• `int` — Stored integer value of a `fi` object, stored in a built-in MATLAB integer data type

• `oct` — Stored integer value of a `fi` object in octal

fimath Properties

In general, the `fimath` properties associated with `fi` objects depend on how you create the `fi` object:

• When you specify one or more `fimath` object properties in the `fi` constructor, the resulting `fi` object has a local `fimath` object.

• When you do not specify any `fimath` object properties in the `fi` constructor, the resulting `fi` object has no local `fimath`.

To determine whether a `fi` object has a local `fimath` object, use the `isfimathlocal` function.

The `fimath` properties associated with `fi` objects determine how fixed-point arithmetic is performed. These `fimath` properties can come from a local `fimath` object or from default `fimath` property values. To learn more about `fimath` objects in fixed-point arithmetic, see fimath Rules for Fixed-Point Arithmetic.

The following `fimath` properties are, by transitivity, also properties of the `fi` object. You can set these properties for individual `fi` objects. The following `fimath` properties are always writable.

• `CastBeforeSum` — Whether both operands are cast to the sum data type before addition

 Note:   This property is hidden when the `SumMode` is set to `FullPrecision`.
• `MaxProductWordLength` — Maximum allowable word length for the product data type

• `MaxSumWordLength` — Maximum allowable word length for the sum data type

• `OverflowAction` — Action to take on overflow

• `ProductBias` — Bias of the product data type

• `ProductFixedExponent` — Fixed exponent of the product data type

• `ProductFractionLength` — Fraction length, in bits, of the product data type

• `ProductMode` — Defines how the product data type is determined

• `ProductSlope` — Slope of the product data type

• `ProductSlopeAdjustmentFactor` — Slope adjustment factor of the product data type

• `ProductWordLength` — Word length, in bits, of the product data type

• `RoundingMethod` — Rounding method

• `SumBias` — Bias of the sum data type

• `SumFixedExponent` — Fixed exponent of the sum data type

• `SumFractionLength` — Fraction length, in bits, of the sum data type

• `SumMode` — Defines how the sum data type is determined

• `SumSlope` — Slope of the sum data type

• `SumSlopeAdjustmentFactor` — Slope adjustment factor of the sum data type

• `SumWordLength` — The word length, in bits, of the sum data type

numerictype Properties

When you create a `fi` object, a `numerictype` object is also automatically created as a property of the `fi` object:

`numerictype` — Object containing all the data type information of a `fi` object, Simulink® signal, or model parameter

The following `numerictype` properties are, by transitivity, also properties of a `fi` object. The following properties of the `numerictype` object become read only after you create the `fi` object. However, you can create a copy of a `fi` object with new values specified for the `numerictype` properties:

• `Bias` — Bias of a `fi` object

• `DataType` — Data type category associated with a `fi` object

• `DataTypeMode` — Data type and scaling mode of a `fi` object

• `FixedExponent` — Fixed-point exponent associated with a `fi` object

• `FractionLength` — Fraction length of the stored integer value of a `fi` object in bits

• `Scaling` — Fixed-point scaling mode of a `fi` object

• `Signed` — Whether a `fi` object is signed or unsigned

• `Signedness` — Whether a `fi` object is signed or unsigned

 Note:   `numerictype` objects can have a `Signedness` of `Auto`, but all `fi` objects must be `Signed` or `Unsigned`. If a `numerictype` object with `Auto` `Signedness` is used to create a `fi` object, the `Signedness` property of the `fi` object automatically defaults to `Signed`.
• `Slope` — Slope associated with a `fi` object

• `SlopeAdjustmentFactor` — Slope adjustment associated with a `fi` object

• `WordLength` — Word length of the stored integer value of a `fi` object in bits

There are two ways to specify properties for `fi` objects in Fixed-Point Designer software. Refer to the following sections:

Setting fi Object Properties

You can set `fi` object properties in two ways:

• Setting the properties when you create the object

• Using direct property referencing

Setting Fixed-Point Properties at Object Creation

You can set properties of `fi` objects at the time of object creation by including properties after the arguments of the `fi` constructor function. For example, to set the overflow action to `Wrap` and the rounding method to `Convergent`,

```a = fi(pi, 'OverflowAction', 'Wrap',... 'RoundingMethod', 'Convergent') ```
```a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Convergent OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision ```

To set the stored integer value of a `fi` object, use the parameter/value pair for the `'int'` property when you create the object. For example, create a signed `fi` object with a stored integer value of 4, 16-bit word length, and 15-bit fraction length.

`x = fi(0,1,16,15,'int',4);`

Verify that the `fi` object has the expected integer setting.

`x.int`
```ans = 4```

Using Direct Property Referencing with fi

You can reference directly into a property for setting or retrieving `fi` object property values using MATLAB structure-like referencing. You do so by using a period to index into a property by name.

For example, to get the `WordLength` of `a`,

`a.WordLength`
```ans = 16```

To set the `OverflowAction` of `a`,

`a.OverflowAction = 'Wrap' `
```a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Convergent OverflowAction: wrap ProductMode: FullPrecision SumMode: FullPrecision ```

If you have a `fi` object `b` with a local `fimath` object, you can remove the local `fimath` object and force `b` to use default fimath values:

`b = fi(pi, 1, 'RoundingMethod', 'Floor')`
```b = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Floor OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision ```
```b.fimath = [] ```
```b = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 ```
```isfimathlocal(b) ```
```ans = 0```