主要内容

fimath属性使用定点算术

fimath定点运算规则

fimath属性定义的规则执行算术运算fi对象。的fimath属性管理定点算术运算可以来自当地fimath对象或fimath默认值。

确定一个fi对象有一个地方fimath对象,使用isfimathlocal函数。

下面的章节将讨论如何做fi对象与当地fimath对象与fi没有地方fimath对象。

二元运算

在二进制定点等操作c = a + b以下规则适用于:

  • 如果两个一个b没有地方fimath,操作使用默认fimath值来执行定点算术。输出fi对象c也没有地方fimath。

  • 如果任何一一个b有一个地方fimath对象,操作使用fimath对象执行定点算术。输出fi对象c有相同的地方fimath对象作为输入。

一元操作

在一元定点等操作b = abs (a)以下规则适用于:

  • 如果一个没有当地fimath,操作使用默认fimath值执行定点算术。输出fi对象b没有地方fimath。

  • 如果一个有一个地方fimath对象,操作使用fimath对象执行定点算术。输出fi对象b有相同的地方fimath对象作为输入一个

当你指定一个fimath对象的函数调用一个一元定点操作,操作使用fimath对象指定执行定点算术。例如,当你使用一个语法等b = abs (F)b =√, F),腹肌√6操作使用fimath对象F计算中间量。输出fi对象b总是没有当地fimath。

连接操作

在定点连接等操作c = [b],c = [a, b]c = bitconcat (a, b)以下规则适用于:

  • fimath最左侧的属性fi确定对象的操作fimath输出的属性fi对象c

例如,考虑以下场景的操作d = (a b c):

  • 如果一个是一个fi对象没有当地fimath输出fi对象d也没有地方fimath。

  • 如果一个有一个地方fimath对象,输出fi对象d有相同的地方fimath对象。

  • 如果一个不是一个fi对象,输出fi对象d继承了fimath下最左侧的属性fi对象。例如,如果b是一个fi对象与当地fimath对象,输出fi对象d有相同的地方fimath对象作为输入fi对象b

fimath对象操作:添加、mpy子

的输出fimath对象操作添加,mpy,总是没有当地fimath。的操作使用fimath对象指定的函数调用,但输出fi对象从来没有一个地方fimath对象。

MATLAB功能块操作

定点操作与MATLAB功能块使用相同的规则在MATLAB定点操作®

所有输入信号MATLAB功能块,你对待fi与任何您指定的对象MATLAB功能块fimath参数。当你设定这个参数MATLAB一样,你的fi没有地方fimath对象。当你设置MATLAB功能块fimath参数指定其他,你可以定义你自己的组fimath所有的属性fiMATLAB功能块中的对象关联。你只可以选择治疗定点输入信号fi对象或定点和整数作为输入信号fi对象。看到使用fimath对象在MATLAB函数块

二进制小数点算术

fimath对象封装的数学性质定点设计师™软件。

fi只有一个本地对象fimath当您显式地指定对象fimath属性fi构造函数。当你使用你以后ufi构造函数或不指定任何fimath属性fi构造函数,由此产生的fi对象没有任何当地fimath和使用默认fimath值。

一个= fi(π)
= 3.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13
一个。fimath isfimathlocal (a)
ans = RoundingMethod:最近的OverflowAction:饱和ProductMode: FullPrecision SumMode: FullPrecision ans =逻辑0

执行算术与+,- - - - - -,. *,或*在两个fi操作数与当地fimath对象,当地fimath对象必须是相同的。如果其中一个fi操作数没有地方fimath,fimath两个操作数的属性不需要是相同的。看到fimath定点运算规则为更多的信息。

一个= fi (pi);b = fi (8);isequal (a。fimath,b。fimath)
ans =逻辑1
a + b
ans = 11.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:19 FractionLength: 13

执行算术与+,- - - - - -,. *,或*,两个fi操作数必须具有相同的数据类型。例如,您可以添加两个fi对象的数据类型,但是你不能添加一个对象的数据类型和一个数据类型:

一个= fi (3“数据类型”,“双”)
一个= 3 DataTypeMode:双
b = fi(27日“数据类型”,“双”)
b = 27 DataTypeMode:双
a + b
ans = 30 DataTypeMode:双
c = fi (12,“数据类型”,“单一”)
c = 12 DataTypeMode:单身
a + c
错误使用+(24)行数学操作不允许fi对象与不同的数据类型。

定点fi对象操作数不需要有相同的比例。您可以执行二进制数学操作fi定点数据类型和对象fi对象与一个按比例缩小的双打数据类型。从这个意义上说,按比例缩小的双重数据类型作为定点数据类型:

一个= fi(π)
= 3.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13
b = fi(魔法(2),“DataTypeMode”,“双扩展:二进制点缩放”)
b = 1 3 4 2 DataTypeMode:扩展双:二进制扩展Signedness:签了字:16 FractionLength: 12
a + b
ans = 4.1416 6.1416 7.1416 5.1416 DataTypeMode:扩展双:二进制扩展Signedness:签了字:18 FractionLength: 13

使用函数执行部门与双打、单身或二进制的地方只有缩放fi对象。

(斜率偏见)算法

使用本地定点设计软件支持定点算术金宝appfimath所有二进制对象或违约fimath仅仅表明信号。工具箱还支持算法(斜率偏见)信号具金宝app有以下限制:

  • (斜率偏见)信号必须是真实的。

  • 你必须设置SumModeProductMode管理的属性fimath“SpecifyPrecision”分别为总和和乘法操作。

  • 你必须设置CastBeforeSum财产的管理fimath“真正的”

  • 定点设计师不支持金宝app函数(斜率偏见)信号。

f = fimath (“SumMode”,“SpecifyPrecision”,“SumFractionLength”,16)
f = RoundingMethod:最近的OverflowAction:饱和ProductMode: FullPrecision SumMode: SpecifyPrecision SumWordLength: 32 SumFractionLength: 16 CastBeforeSum:真的
一个= fi(π,“fimath”f)
= 3.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13 RoundingMethod:最近OverflowAction:饱和ProductMode: FullPrecision SumMode: SpecifyPrecision SumWordLength: 32 SumFractionLength: 16 CastBeforeSum:真的
真的,b = fi(22日16日2 ^ 8,3,“fimath”f)
b = 22 DataTypeMode:定点:斜坡和偏见缩放Signedness:签了字:16斜率:0.00390625偏见:3 RoundingMethod:最近OverflowAction:饱和ProductMode: FullPrecision SumMode: SpecifyPrecision SumWordLength: 32 SumFractionLength: 16 CastBeforeSum:真的
a + b
ans = 25.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:32 FractionLength: 16 RoundingMethod:最近OverflowAction:饱和ProductMode: FullPrecision SumMode: SpecifyPrecision SumWordLength: 32 SumFractionLength: 16 CastBeforeSum:真的

设置SumModeProductMode属性SpecifyPrecision是互斥的,只有当执行*矩阵之间的操作。在这种情况下,您必须设置SumModeProductMode属性SpecifyPrecision(斜率偏见)信号。这样做是必要的,因为*操作执行金额和乘法操作来计算结果。