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
所有的属性fi
MATLAB功能块中的对象关联。你只可以选择治疗定点输入信号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有以下限制:
(斜率偏见)信号必须是真实的。
你必须设置
SumMode
和ProductMode
管理的属性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:真的
设置SumMode
和ProductMode
属性SpecifyPrecision
是互斥的,只有当执行*
矩阵之间的操作。在这种情况下,您必须设置SumMode
和ProductMode
属性SpecifyPrecision
(斜率偏见)信号。这样做是必要的,因为*
操作执行金额和乘法操作来计算结果。