主要内容

最大化精度

精度受坡度的限制。为了达到最大的精度,你应该使斜率尽可能小,同时保持足够大的范围。偏差与斜率协调调整。

假设实际值的最大值和最小值由马克斯(V分钟(V,分别。根据物理原理或工程考虑,这些极限可能是已知的。为了使精度最大化,必须确定舍入方案以及溢出是否饱和或绕流。为了简化问题,本示例假设真实世界的最小值对应于编码后的最小值,真实世界的最大值对应于编码后的最大值。使用中描述的编码方案扩展,这些值由

最大值 V F 2 E 最大值 + B 最小值 V F 2 E 最小值 + B

求斜率,就得到

F 2 E 最大值 V 最小值 V 最大值 最小值 最大值 V 最小值 V 2 w 年代 1

此公式与舍入和溢出问题无关,仅取决于字长,ws

尾数为零的Pad

以零结尾的填充涉及用额外的位扩展数字的最低有效位(LSB)。这种方法需要从低精度到高精度。

例如,假设两个数相减。首先,指数必须对齐,这通常涉及将较小值的数字右移。在执行这种移位时,有效数字可能会向右“脱落”。但是,当附加适当数目的额外位时,结果的精度是最大的。考虑两个8位的定点数,它们的值很接近,并且彼此相减:

1.0000000 × 2 1.1111111 × 2 1

在哪里是整数。要执行此操作,指数必须相等:

1.0000000 × 2 0.1111111 × 2 0.0000001 × 2

如果上面的数字被两个零填充,下面的数字被一个零填充,那么上面的方程就变成

1 × 2 0.111111110 × 2 0.000000010 × 2

这就产生了更精确的结果。在Simulink中使用尾随零的填充的一个例子金宝app®模型如所示数字控制器的实现

常数缩放最佳精度

以下定点Simulink块为值为常量向量或矩阵的缩放金宝app参数提供了一种模式:

这种缩放模式是基于仅二进制点缩放的。使用此模式,可以缩放常量向量或矩阵,以便基于向量或矩阵中最大值的最佳精度找到公共二进制点。

“最佳精度的常量缩放”仅适用于具有未指定缩放比例的定点数据类型。所有其他定点数据类型都使用其指定的缩放比例。您可以使用数据类型的助理(见使用数据类型助手指定数据类型)在块对话框上启用最佳精度缩放模式。

  1. 在块对话框中,单击显示数据类型助手按钮

    数据类型的助理出现。

  2. 数据类型的助理,并从模式列表中,选择不动点

    数据类型的助理显示与定点数据类型关联的其他选项。

  3. 扩展列表中,选择最好的精度

要理解如何使用这种缩放模式,请考虑一个3×3的双倍矩阵,M,定义为

3.3333e-003 3.3333e-004 3.3333e-005 3.3333e-002 3.3333e-004 3.3333e-004 3.3333e-004 3.3333e-002 3.3333e-004

现在假设你指定M为获得参数用于增益块。这里描述了指定自己的缩放和使用常量缩放模式的结果:

  • 指定的比例

    假设矩阵元素被转换为带符号的10位广义不动点数据类型,具有仅为二进制点的缩放2-7(也就是说,二进制位位于最右位的左边7位)。有了这种数据格式,M就变成

    00 00 00 00 00

    请注意,许多矩阵元素为零,对于非零条目,缩放值与原始值不同。这是因为双精度转换为固定大小的二进制字,每个元素的精度有限。转换数据类型越大、越精确,缩放值与原始值的匹配越紧密锿。

  • 常数缩放最佳精度

    如果M是基于它的最大矩阵值进行缩放,你得到

    2.9297e-003 00 3.3203e-002 2.9297e-003 0 3.3301e-001 3.3203e-002

    最佳精度将自动选择使量化误差最小化的分数长度。即使对于给定的单词长度,精度是最大化的,量化错误仍然会发生。在这个例子中,一些元素仍然量化为零。

相关话题