Main Content

MATLABSimulink 中的定点数据

Simulink 中的定点数据

您可以使用 Simulink® 中的 fixdt 函数来指定定点数据类型。fixdt 函数会创建一个 Simulink.NumericType 对象。

定点数据类型和定标表示法

Simulink 数据类型名称必须为少于 128 个字符的有效 MATLAB® 标识符。数据类型名称提供有关容器类型、数字编码和定标的信息。

下表对 Simulink 产品中出现的各种表示定点值数据类型和定标的各种符进行了说明。

符号

描述

示例

容器类型

ufix

无符号定点数据类型

ufix8 是 8 位无符号定点数据类型

sfix

有符号定点数据类型

sfix128 是 128 位有符号定点数据类型

fltu

无符号定点数据类型 (ufix) 的定标双精度覆盖

fltu32ufix32 的定标双精度覆盖

flts

有符号定点数据类型 (sfix) 的定标双精度覆盖

flts64sfix64 的定标双精度覆盖

数字编码

e

10^

125e8 等于 125*(10^(8))

n

负值

n31 等于 -31

p

小数点

1p5 等于 1.5

p2 等于 0.2

定标编码

S

斜率

ufix16_S5_B7 是一种 16 位无符号定点数据类型,其 Slope5Bias7

B

偏置

ufix16_S5_B7 是一种 16 位无符号定点数据类型,其 Slope5Bias7

E

固定指数 (2^)

负的固定指数描述小数长度

sfix32_En31 是一种 32 位有符号定点数据类型,其小数长度为 31

F

斜率调整因子

ufix16_F1p5_En50 是一种 16 位无符号定点数据类型,其 SlopeAdjustmentFactor1.5FixedExponent-50

C、c、D 或 d

偏置的压缩编码

注意

如果将此字符向量传递给 slDataTypeAndScale 函数,它将返回有效的 fixdt 数据类型。

没有可用的示例。仅用于向后兼容。

要识别和替换对 slDataTypeAndScale 的调用,请使用 Check for calls to slDataTypeAndScale 模型顾问检查。

T 或 t

斜率的压缩编码

注意

如果将此字符向量传递给 slDataTypeAndScale,它将返回有效的 fixdt 数据类型。

没有可用的示例。仅用于向后兼容。

要识别和替换对 slDataTypeAndScale 的调用,请使用 Check for calls to slDataTypeAndScale 模型顾问检查。

MATLAB 中的定点数据

要将定点数据类型赋给数字或 MATLAB 中的变量,请使用 fi (Fixed-Point Designer) 构造函数。产生的定点值称为 fi 对象。例如,以下代码创建 fi 对象 a 和 b,其属性显示在显示画面上,我们可以在构造变量时指定所有这些属性。请注意,当未指定 FractionLength 属性时,它会自动设置为给定字长的“最佳精度”,保留值的最高有效位。当未指定 WordLength 属性时,它默认为 16 位。

a = fi(pi)
a = 

              3.1416015625

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13
b = fi(0.1)
b = 

        0.0999984741210938

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

从工作区读取定点数据

使用 From Workspace 模块将定点数据从 MATLAB 工作区读入 Simulink 模型。为此,数据必须采用结构体格式,在 values 字段中有 fi 对象。在数组格式中,From Workspace 模块只接受双精度实数数据。

将定点数据写入工作区

您可以通过 To Workspace 模块以数组或结构体格式将模型的定点输出写入 MATLAB 工作区。由 To Workspace 模块以结构体格式写入工作区的定点数据可以由 From Workspace 模块以结构体格式读回到 Simulink 模型中。

定标双精度

定标双精度值混合了浮点数和定点数。Fixed-Point Designer™ 将它们存储为保留定标、符号和字长信息的双精度值。例如,定点数据类型 sfix16_En14 的存储容器是 int16。等效定标双精度数据类型 flts16_En14 的存储容器是浮点 double。Fixed-Point Designer 将定标信息应用于存储的浮点双精度值以获得真实值。以双精度格式存储值几乎总能消除溢出和精度问题。

另请参阅

函数