主要内容

构造fi对象的方法

类型的fi构造函数

您可以创建fi对象使用定点设计师™软件在下列方面:

  • 您可以使用fi构造函数创建一个fi对象。

  • 您可以使用你以后构造函数创建一个新的签名fi对象。

  • 您可以使用ufi构造函数创建一个新的无符号fi对象。

  • 您可以使用任何的fi构造函数复制现有的功能fi对象。

首先,创建一个fi对象的默认数据类型和值0:

一个= fi (0)
= 0 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 15

这个构造函数语法创建一个签名fi对象的值为0,字长16位,分数的15位长度。因为你没有指定任何fimath对象属性的fi构造函数,由此产生的fi对象一个没有地方fimath

看到的所有fi,你以后,ufi构造函数的语法,请参阅相应的参考页。

信息的显示格式fi对象,请参考定点数据视图

对象构造的例子

以下示例向您展示几个不同的构造方法fi对象。对于其他,更基本的构造的例子fi对象,看到下面的示例部分构造函数参考页面:

请注意

fi构造函数创建fi对象使用RoundingMethod最近的和一个OverflowAction饱和。如果你构建一个fi从浮点值,默认RoundingMethodOverflowAction属性设置不习惯。

构建一个fi对象与属性名称/属性值对

您可以使用属性名称/属性值对集合fifimath当你创建一个对象属性fi对象:

一个= fi(π,“RoundingMethod”,“地板”,“OverflowAction”,“包装”)
= 3.1415 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13 RoundingMethod:地板OverflowAction:包装ProductMode: FullPrecision SumMode: FullPrecision

你不需要指定每个fimath对象属性的fi构造函数。的fi所有未指明的对象使用默认值fimath对象属性。

  • 如果你指定至少一个fimath对象属性的fi构造函数,fi对象有一个地方fimath对象。的fi剩余的未指定的对象使用默认值fimath对象属性。

  • 如果你不指定任何fimath对象属性的fi对象的构造函数,fi对象使用默认fimath值。

构建一个fi对象使用numerictype对象

您可以使用一个numerictype对象定义一个fi对象:

T = numerictype
T = DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 15
= fi(π,T)
= 1.0000 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 15

你也可以使用fimath对象与一个numerictype对象定义一个fi对象:

F = fimath (“RoundingMethod”,“最近的”,“OverflowAction”,“饱和”,“ProductMode”,“FullPrecision”,“SumMode”,“FullPrecision”)
F = RoundingMethod:最近的OverflowAction:饱和ProductMode: FullPrecision SumMode: FullPrecision
一个= fi(π,T、F)
= 1.0000 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 15 RoundingMethod:最近OverflowAction:饱和ProductMode: FullPrecision SumMode: FullPrecision

请注意

的语法一个= fi(π,T、F)相当于一个= fi(π,F, T)。您可以使用这两个语句定义fi对象使用fimath对象和一个numerictype对象。

构建一个fi对象使用fimath对象

您可以创建一个fi使用特定的对象fimath对象。当你这样做的时候,一个地方fimath对象被分配到fi对象创建。如果你不指定任何numerictype对象属性,这个词的长度fi对象默认为16位。部分的长度是由最佳精度缩放:

F = fimath (“RoundingMethod”,“最近的”,“OverflowAction”,“饱和”,“ProductMode”,“FullPrecision”,“SumMode”,“FullPrecision”)
F = RoundingMethod:最近的OverflowAction:饱和ProductMode: FullPrecision SumMode: FullPrecision
F。OverflowAction =“包装”
F = RoundingMethod:最近的OverflowAction:包装ProductMode: FullPrecision SumMode: FullPrecision
一个= fi(π,F)
= 3.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13 RoundingMethod:最近OverflowAction:包装ProductMode: FullPrecision SumMode: FullPrecision

您还可以创建fi对象的使用fimath对象时指定不同numerictype属性在创建时:

b = fi(π0 F)
b = 3.1416 DataTypeMode:定点:二进制扩展Signedness:无符号字:16 FractionLength: 14 RoundingMethod:最近OverflowAction:包装ProductMode: FullPrecision SumMode: FullPrecision
c = fi(π,0 8 F)
c = 3.1406 DataTypeMode:定点:二进制扩展Signedness:无符号字:8 FractionLength: 6 RoundingMethod:最近OverflowAction:包装ProductMode: FullPrecision SumMode: FullPrecision
d = fi(π0 8 6 F)
d = 3.1406 DataTypeMode:定点:二进制扩展Signedness:无符号字:8 FractionLength: 6 RoundingMethod:最近OverflowAction:包装ProductMode: FullPrecision SumMode: FullPrecision

在GUI构建fi对象构造函数

当你在MATLAB处理文件®,你可以建立你的fi对象构造函数使用插入fi构造函数对话框。在指定的值和属性fi对象对话框,您可以插入填充fi对象构造方法在你的文件在一个特定的位置。

例如,要创建一个签名fi对象的值π,字长16位和一小部分的长度13位:

  1. 选项卡,文件部分中,点击>脚本MATLAB编辑器打开。

  2. 编辑器选项卡,编辑部分中,点击插入按钮组。点击插入fi……打开插入fi构造函数对话框。

  3. 使用编辑框和下拉菜单指定的以下属性fi对象:

    • 价值=π

    • 数据类型模式=定点:二进制扩展点

    • Signedness=签署

    • 字长=16

    • 部分长度=13

  4. 插入的fi对象构造方法在你的文件中,将光标置于所需的文件位置,然后单击好吧插入fi构造函数对话框。点击好吧关闭插入fi构造函数对话框并自动填充fi对象构造方法在你的文件:

确定属性优先级

一个属性的值是来自最后一次设置。例如,创建一个numerictype对象的值真正的签署财产和一小部分的长度14:

T = numerictype (“签署”,真的,“FractionLength”14)
T = DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 14

现在,创建以下fi你指定的对象numerictype财产签署属性,这样产生的fi对象签署:

一个= fi(π,“签署”假的,“numerictype”,T)
= 1.9999 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 14

对比fi对象的代码示例fi对象在下面的代码示例。的numerictype属性指定在下面的代码示例之前签署财产,所以由此产生fi对象是无符号:

b = fi(π,“numerictype”T“签署”假)
b = 3.1416 DataTypeMode:定点:二进制扩展Signedness:无符号字:16 FractionLength: 14

复制一个fi对象

复制一个fi对象,简单地使用任务:

一个= fi(π)
= 3.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13
b =一个
b = 3.1416 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 13

创建fi对象类型中使用的表

您可以编写一个可重用的MATLAB算法通过保持算法的数据类型变量在一个单独的类型表。例如,

函数T = mytypes (dt)开关dt情况下“双”T。b =双([]);T。双(x = []);T。双(y = []);情况下“fixed16”T。b = fi(15)[], 16日;T。x = fi([], 16日15);T。y = fi(14)[], 16日;结束结束

在算法的数据类型的变量的类型表中描述手工定点转换的最佳实践

函数[y, z] = myfilter (b, x, z, T) y = 0(大小(x),“喜欢”,T.y);n = 1:长度(x) z (:) = [x (n);z (1: end-1)];y (n) = b * z;结束结束

在一个单独的测试文件,设置输入数据给到你的算法,并指定数据类型的输入。

%测试输入0.25 b = fir1(11日);t = linspace(0, 10 *π,256);x =罪((π/ 16)* t。^ 2);%线性啁啾%将输入T = mytypes (“fixed16”);b =投(b,“喜欢”、肺结核);x =投(x,“喜欢”,T.x);z = 0(大小(b),“喜欢”,T.x);运行%[y, z] = myfilter (b, x, z, T);