simulink之Fixed-Point Numbers

Fixed-Point Numbers

定点数及其数据类型的特征在于它们的字大小(以位为单位)、二进制点以及它们是有符号的还是无符号的。定点设计器™ 软件支持整数和定点数。这些数据类型之间的主要区别在于它们的二进制点。

注意:定点数字的字大小最多可达128位。

二进制定点数的常见表示形式,有符号或无符号,如下图所示。

bi 是二进制位。

ws是以位为单位的字长。

最高有效位(MSB)是最左边的位。

最低有效位(LSB)是最右边的位。

二进制点显示在LSB左侧的四个位置。

Signed Fixed-Point Numbers

计算机硬件通常以三种不同的方式表示二进制定点数的否定:符号、一的补码和二的补码。二的补码是有符号定点数的首选表示形式,并受定点设计器软件的支持。

使用二的补码的取反包括一个位反转(转换为一的补码),然后加一。例如,000101的二元补码是111011。

定点值是有符号的还是无符号的,通常不会在二进制字内显式编码;也就是说,没有符号位。相反,符号信息是在计算机体系结构中隐式定义的。

Binary Point

二进制点是对定点数字进行缩放的方法。通常是软件来确定二进制点。当执行诸如加法或减法之类的基本数学函数时,无论比例因子的值如何,硬件都使用相同的逻辑电路。本质上,逻辑电路不知道比例因子。他们正在执行有符号或无符号定点二进制代数,就好像二进制点在b0的右边一样。

定点设计器支持一般的二进制点缩放。V是真实世界的值,Q是存储的整数值,E等于-FractionLength。换句说,RealWorldValue=StoredInteger*2^-FractionLength。

FractionLength定义存储整数值的缩放比例。字长度限制存储的整数可以取的值,但不限制FractionLength可以取的数值。软件不会根据存储的整数Q的字长来限制指数E的值。因为E等于-FractionLength,所以没有必要将二进制点限制为与分数连续;分数长度可以是负的或者大于单词长度。

例如,一个由三个无符号位组成的字通常以以下方式之一用科学记数法表示。

如果指数大于0或小于-3,则表示将包含许多零。

然而,这些额外的零永远不会变为一,所以它们不会出现在硬件中。此外,与浮点指数不同,定点指数永远不会出现在硬件中,因此定点指数不受有限位数的限制。

RealWorldValue=存储整数2^-分数长度。在这种情况下,
RealWorldValue=5
2^-10=0.0048882125。因为分数长度比单词长度长2位,所以存储的整数的二进制值是x.xx00000101,其中x是隐式零的占位符。0.0000000101(二进制)相当于0.00488828125(十进制)。

Scaling

定点数字的动态范围远小于具有等效字大小的浮点数。为了避免溢出条件并最大限度地减少量化误差,必须缩放定点数。

使用定点设计器软件,您可以选择由其二进制点定义缩放比例的定点数据类型,也可以选择适合您需要的任意线性缩放比例。本节介绍可用于定点数据类型的缩放选项。

您可以通过一般的斜率和偏差编码方案来表示定点数
slope分为两部分:

2的E次方指定二进制点。E是两个指数的固定幂。

F是slope调整系数。1<=F<2.

注:S和B是常数,不会直接显示在计算机硬件中。只有量化值Q被存储在计算机存储器中。

Binary-Point-Only Scaling

仅二进制点或二次幂缩放涉及在定点字内移动二进制点。这种缩放模式的优点是最小化处理器算术运算的数量。

对于仅二进制点缩放,一般斜率和偏差公式的分量具有以下值:

量化的真实世界数字的缩放由斜率S定义,其被限制为2的幂。两个指数的幂的负值称为分数长度。小数长度是二进制点右侧的位数。对于仅二进制点缩放,将定点数据类型指定为

signed types --- fixdt(1, WordLength, FractionLength)

unsigned types --- fixdt(0, WordLength, FractionLength)

整数是定点数据类型的一种特殊情况。整数具有斜率为1、偏置为0的平标度,或者等于分数长度为0。将整数指定为

signed integer --- fixdt(1, WordLength, 0)

unsigned integer --- fixdt(0, WordLength, 0)

Slope and Bias Scaling

按斜率和偏移量缩放时,量化的真实世界数的斜率S和偏移量B可以取任何值。 Slope必须是正数。使用 Slope和Bias ,将定点数据类型指定为

fixdt(Signed, WordLength, Slope, Bias)

Unspecified Scaling

指定具有未指定缩放比例的定点数据类型为

fixdt(Signed, WordLength)

Simulink®信号、参数和状态不得具有未指定的缩放比例。如果未指定缩放比例,则必须使用其他机制(如自动最佳精度缩放)来确定Simulink软件使用的缩放比例。

相关推荐
好奇龙猫2 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
sp_fyf_20242 小时前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
香菜大丸3 小时前
链表的归并排序
数据结构·算法·链表
jrrz08283 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time3 小时前
golang学习2
算法
南宫生4 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步5 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
Ni-Guvara5 小时前
函数对象笔记
c++·算法
泉崎5 小时前
11.7比赛总结
数据结构·算法
你好helloworld5 小时前
滑动窗口最大值
数据结构·算法·leetcode