Quantcast

Documentation Center

  • Trial Software
  • Product Updates

sfi

Construct signed fixed-point numeric object

Syntax

a = sfi
a = sfi(v)
a = sfi(v,w)
a = sfi(v,w,f)
a = sfi(v,w,slope,bias)
a = sfi(v,w,slopeadjustmentfactor,fixedexponent,bias)

Description

You can use the sfi constructor function in the following ways:

  • a = sfi is the default constructor and returns a signed fi object with no value, 16-bit word length, and 15-bit fraction length.

  • a = sfi(v) returns a signed fixed-point object with value v, 16-bit word length, and best-precision fraction length.

  • a = sfi(v,w) returns a signed fixed-point object with value v, word length w, and best-precision fraction length.

  • a = sfi(v,w,f) returns a signed fixed-point object with value v, word length w, and fraction length f.

  • a = sfi(v,w,slope,bias) returns a signed fixed-point object with value v, word length w, slope, and bias.

  • a = sfi(v,w,slopeadjustmentfactor,fixedexponent,bias) returns a signed fixed-point object with value v, word length w, slopeadjustmentfactor, fixedexponent, and bias.

fi objects created by the sfi constructor function have the following general types of properties:

These properties are described in detail in fi Object Properties in the Properties Reference.

    Note:   fi objects created by the sfi constructor function have no local fimath.

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

  • 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. You can also use int8, int16, int32, int64, uint8, uint16, uint32, and uint64 to get the stored integer value of a fi object in these formats

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

These properties are described in detail in fi Object Properties.

fimath Properties

When you create a fi object with the sfi constructor function, that fi object does not have a local fimath object. You can attach a fimath object to that fi object if you do not want to use the default fimath settings. For more information, see fimath Object Construction in the Fixed-Point Designer™ documentation.

  • fimath — fixed-point math object

The following fimath properties are always writable and, by transitivity, are also properties of a fi object.

  • 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.

  • 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

These properties are described in detail in fimath Object Properties.

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

  • SlopeAdjustmentFactor — Slope adjustment 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

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

For further details on these properties, see numerictype Object Properties.

Examples

Example 1

For example, the following creates a signed fi object with a value of pi, a word length of 8 bits, and a fraction length of 3 bits:

a = sfi(pi,8,3)

a =
 
    3.1250

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 3

Default fimath properties are associated with a. When a fi object does not have a local fimath object, no fimath object properties are displayed in its output. To determine whether a fi object has a local fimath object, use the isfimathlocal function.

isfimathlocal(a)

ans =
     0

A returned value of 0 means the fi object does not have a local fimath object. When the isfimathlocal function returns a 1, the fi object has a local fimath object.

Example 2

The value v can also be an array:

a = sfi((magic(3)/10),16,12) 

a =
 
    0.8000    0.1001    0.6001
    0.3000    0.5000    0.7000
    0.3999    0.8999    0.2000

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 12

Example 3

If you omit the argument f, it is set automatically to the best precision possible:

a = sfi(pi,8) 

a =
 
    3.1563

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 5

Example 4

If you omit w and f, they are set automatically to 16 bits and the best precision possible, respectively:

a = sfi(pi) 

a =
 
    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

See Also

| | | | | |

Was this topic helpful?