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.

  • 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

Note

For information about the display format of fi objects, refer to Display Settings.

For examples of casting, see Cast fi Objects.

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

Extended Capabilities

HDL Code Generation
Generate Verilog and VHDL code for FPGA and ASIC designs using HDL Coder™.

Introduced in R2009b