Documentation |
On this page… |
---|
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
To learn more about these properties, see fi Object Properties in the Fixed-Point Designer™ Reference.
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
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
For more information, see fimath Object 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
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
For more information, see numerictype Object Properties.
There are two ways to specify properties for fi objects in Fixed-Point Designer software. Refer to the following sections:
You can set fi object properties in two ways:
Setting the properties when you create the object
Using direct property referencing
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
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