您可以创建fi
对象使用Fixed-Point Designer™软件以下列任何一种方式:
要开始,要创建一个fi
对象的默认数据类型,值为0:
一个= fi (0)
a = 0 DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 16 FractionLength: 15
这个构造函数语法创建一个有符号的fi
对象的值为0,字长为16位,分数长为15位。因为你没有指定任何fimath
对象属性的fi
构造函数,由此产生的fi
对象一个
没有地方fimath
.
看到所有的fi
,你以后
,ufi
构造函数语法,请参阅各自的参考页。
的显示格式fi
对象,请参考定点数据视图.
下面的示例向您展示了几种不同的构造方法fi
对象。对于其他人,更多的基本构造的例子fi
对象,请参阅以下构造函数参考页面的示例部分:
请注意
的fi
构造函数创建fi
对象使用RoundingMethod
的最近的
和一个OverflowAction
的饱和
.如果你构造一个fi
从浮点值,默认值RoundingMethod
和OverflowAction
未使用属性设置。
您可以使用属性名称/属性值对进行设置fi
和fimath
对象的fi
对象:
一个= fi(π,“RoundingMethod”,“地板”,“OverflowAction”,“包装”)
a = 3.1415 DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
您不必指定每一个fimath
对象的fi
构造函数。的fi
对象对所有未指定的对象使用默认值fimath
对象属性。
如果您指定至少一个fimath
对象的fi
构造函数,fi
对象具有局部fimath
对象。的fi
对象对其余未指定的对象使用默认值fimath
对象属性。
如果您没有指定任何fimath
对象属性的fi
对象的构造函数,fi
对象使用默认fimath
值。
你可以用numerictype
对象来定义fi
对象:
T = numerictype
T = DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 16 FractionLength: 15
a = fi(, T)
a = 1.0000 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 15
你也可以用afimath
对象与一个numerictype
对象来定义fi
对象:
F = fimath (“RoundingMethod”,“最近的”,...“OverflowAction”,“饱和”,...“ProductMode”,“FullPrecision”,...“SumMode”,“FullPrecision”)
F = RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
a = fi(pi, T, F)
a = 1.0000 DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 16 FractionLength: 15 RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
请注意
的语法一个= fi(π,T、F)
相当于一个= fi(π,F, T)
.你可以用这两个表述来定义fi
对象使用fimath
对象和一个numerictype
对象。
您可以创建fi
对象使用特定的fimath
对象。当你这样做的时候,一个当地人fimath
对象被赋给fi
对象创建。如果您没有指定任何numerictype
对象的字长fi
对象默认为16位。分数长度由最佳精度缩放决定:
F = fimath (“RoundingMethod”,“最近的”,...“OverflowAction”,“饱和”,...“ProductMode”,“FullPrecision”,...“SumMode”,“FullPrecision”)
F = RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
F.OverflowAction =“包装”
F = RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
a = fi(, F)
a = 3.1416 DataTypeMode: Fixed-point: binary point scaling signdness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
您还可以创建fi
对象的使用fimath
对象,同时指定各种numerictype
属性在创建时:
b = fi(pi, 0, F)
b = 3.1416 DataTypeMode: Fixed-point: binary point scaling signdness: Unsigned WordLength: 16 FractionLength: 14 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision . b = 3.1416 DataTypeMode: Fixed-point: binary point scaling sign: Unsigned WordLength: 16 FractionLength: 14 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
c = fi(pi, 0, 8, F)
c = 3.1406 DataTypeMode:定点:二进制点缩放符号:Unsigned WordLength: 8 FractionLength: 6 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
d = fi(pi, 0, 8, 6, F)
d = 3.1406 DataTypeMode:定点:二进制点缩放signed: Unsigned WordLength: 8 FractionLength: 6 RoundingMethod: Nearest OverflowAction: wrap ProductMode: FullPrecision SumMode: FullPrecision
当你在MATLAB中处理文件时®,你可以建立你的fi
对象的构造函数插入fi构造函数对话框。属性的值和属性fi
对象,则可以插入预填充的fi
对象构造函数在文件中的特定位置。
例如,要创建一个签名fi
对象的值为pi,单词长度为16位,分数长度为13位:
在首页选项卡,文件部分中,点击新>脚本打开MATLAB编辑器。
在编辑器选项卡,编辑部分中,点击在插入按钮组。点击插入fi……打开插入fi构造函数对话框。
属性的编辑框和下拉菜单可指定以下属性fi
对象:
价值=π
数据类型模式=定点:二值点缩放
Signedness=签署
字长=16
部分长度=13
插入的fi
对象构造函数,将光标放在文件中所需的位置,然后单击好吧在插入fi构造函数对话框。点击好吧关闭插入fi构造函数对话框,并自动填充fi
文件中的对象构造函数:
属性的值来自于上次设置它的时间。例如,创建一个numerictype
值为的对象真正的
为签署
属性和的分数长度14
:
T = numerictype (“签署”,真的,“FractionLength”14)
T = DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 16 FractionLength: 14
现在,创建以下内容fi
对象,在其中指定numerictype
财产后的签署
属性,以便得到fi
对象签署:
一个= fi(π,“签署”假的,“numerictype”, T)
a = 1.9999 DataTypeMode:定点:二进制点缩放Signedness: Signed WordLength: 16 FractionLength: 14
对比fi
对象中的fi
对象。的numerictype
属性中指定的之前的签署
属性,因此得到fi
对象是无符号:
b = fi(π,“numerictype”T“签署”假)
b = 3.1416 DataTypeMode:定点:二进制点缩放Signedness: Unsigned WordLength: 16 FractionLength: 14
复制一个fi
对象,只需使用赋值:
一个= fi(π)
a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
b =一个
b = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
通过将算法变量的数据类型保存在一个单独的类型表中,可以编写一个可重用的MATLAB算法。例如,
函数T = mytypes (dt)开关dt情况下“双”结核病=双([]);T.x =双([]);T.y =双([]);情况下“fixed16”肺结核= fi(15)[], 16日;T.x = fi(15)[], 16日;T.y = fi(14)[], 16日;结束结束
将算法中的变量转换为类型表中的数据类型,如手动定点转换最佳实践.
函数[y,z]=myfilter(b,x,z,T)“喜欢”, T.y);为N =1:length(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);