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
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
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 = 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