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
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
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
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
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 = int16 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 = logical 0