主要内容

getFixedPointInfo

得到定点字和分数长度

描述

例子

WLsFLs的= getFixedPointInfo(cicObjnt返回定点段的所有字长和分数长度,以及CIC过滤器系统对象的输出,dsp。CICDecimator而且dsp。CICInterpolator,根据输入的数字类型,nt.对于锁定的对象或当FixedPointDataType属性设置为'指定单词和分数长度',输入数值类型参数,nt,为可选选项。

例子

全部折叠

使用getFixedPointInfo函数,可以确定不动点段的字长度和分数长度以及的输出dsp。CICDecimator而且dsp。CICInterpolator系统对象。筛选器部分和输出的数据类型取决于FixedPointDataType属性的过滤器系统对象™。

完整的精度

创建一个dsp。CICDecimator对象。的默认值NumSections属性是2。这个值表示有两个积分器和梳段。返回的WLs和FLs向量getFixedPointInfo函数各包含五个元素。前两个元素表示两个积分器部分。第三和第四个元素代表两个梳段。最后一个元素表示筛选器输出。

cicD = dsp。CICDecimator
cicD = dsp。CICDecimator: DecimationFactor: 2 differaldelay: 1 NumSections: 2 FixedPointDataType:“全精度”

默认情况下,FixedPointDataType属性设置为“充分精确”.调用getFixedPointInfo函数在此对象上使用输入数值类型,nt,生成以下字长和分数长度向量。

Nt = numerictype(1,16,15)
nt = DataTypeMode:定点:二进制点缩放signness: Signed WordLength: 16 FractionLength: 15
[WLs,FLs] = getFixedPointInfo(cicD,nt)% #好吧
WLs =1×518 18 18 18 18 18 18
FLs的=1×515 15 15 15 15 15

有关如何计算单词长度和分数长度的详细信息,请参见描述输出参数。

如果你锁定蔡先生对象通过向其算法传递输入,则不需要传递nt的论证getFixedPointInfo函数。

输入= int64(randn(8,1))
输入=8x1 int64列向量1 2 -2 1 0 -1 0 0
输出= cicD(输入)
output = 0 1 3 0 DataTypeMode: Fixed-point: binary -point scaling signiness: Signed WordLength: 66 FractionLength: 0 . DataTypeMode: Fixed-point: binary -point scale
[WLs,FLs] = getFixedPointInfo(cicD)% #好吧
WLs =1×566 66 66 66 66 66 66
FLs的=1×50 0 0 0 0 0

输出和节字长是输入字长之和,在本例中为64,节数为2。输出和分段长度为0,因为输入是一个内置整数。

最小节字长

释放对象并更改FixedPointDataType财产“最小节字长度”.当输入为定点数据时,确定截面和输出定点信息,fi (randn(2), 1, 24日15)

释放(蔡先生);蔡先生。FixedPointDataType =“最小节字长度”
cicD = dsp。cicdecimationfactor: 2 differaldelay: 1 NumSections: 2 FixedPointDataType: 'Minimum section word length ' OutputWordLength: 32
inputF = fi(randn(8,2),1,24,15)
inputF = 3.5784 -0.1241 2.7694 1.4897 -1.3499 1.4090 1.4172 0.7254 0.6715 -0.0630 -1.2075 0.7148 0.7172 -0.2050 1.6302 DataTypeMode: Fixed-point: binary point scaling sign度:Signed WordLength: 24 FractionLength: 15
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF))% #好吧
WLs =1×526 26 26 26 32
FLs的=1×515 15 15 15 21

指定字和分数的长度

改变FixedPointDataType财产'指定单词和分数长度'.方法确定不动点信息getFixedPointInfo函数。

蔡先生。FixedPointDataType ='指定单词和分数长度'
cicD = dsp。cicdecimationfactor: 2 differaldelay: 1 NumSections: 2 FixedPointDataType: '指定单词和分数长度' sectionwordlength: [16 16 16 16] sectionfractionlength: 0 OutputWordLength: 32 OutputFractionLength: 0
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF))% #好吧
WLs =1×516 16 16 16 32
FLs的=1×50 0 0 0 0 0

的各自不动点属性来分配节和输出字长度和分数长度蔡先生对象。这些值不是由输入数字类型决定的。要确认,请拨打getFixedPointInfo函数而不传递numerictype输入参数。

[WLs, FLs] = getFixedPointInfo(cicD)% #好吧
WLs =1×516 16 16 16 32
FLs的=1×50 0 0 0 0 0

指定字长

要指定筛选器部分和输出的字长度,请设置FixedPointDataType财产“指定字长”

蔡先生。FixedPointDataType =“指定字长”
cicD = dsp。cicdecimationfactor: 2 differaldelay: 1 NumSections: 2 FixedPointDataType: '指定字长度' sectionwordlength: [16 16 16 16] OutputWordLength: 32

getFixedPointInfo函数需要输入数字类型,因为该信息用于计算节和字分数长度。

[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF))
WLs =1×516 16 16 16 32
FLs的=1×55 5 5 5 21

有关该函数如何计算单词和分数长度的详细信息,请参见描述输出参数

输入参数

全部折叠

CIC过滤器系统对象,指定为adsp。CICDecimatordsp。CICInterpolator系统对象。

输入数据数值类型,指定为numerictype(定点设计师)对象。在System对象解锁时指定此输入FixedPointDataType属性设置为“充分精确”“最小节字长度”,或“指定字长”.如果FixedPointDataType属性设置为'指定单词和分数长度',通过对象参数指定过滤段和输出的字和分数长度。在这种情况下,nt输入是可选的。或者,如果对象是锁定的,则对象的定点数据输入指定输入字长度和分数长度。的nt参数在本例中也是可选的。

例子:numerictype(15) 1, 16日

例子:输入= fi(randn(16,1),1,32,30);numerictype(输入)

输出参数

全部折叠

节和输出字长度,作为行向量返回。前2 ×NumSections行向量中的元素对应CIC滤波器的积分器和梳段的字长。的值NumSections属性指定过滤器的积分器部分或梳状部分中的节数。vector中的最后一个元素对应于对象输出的单词长度。

CIC过滤段的字长和对象输出取决于FixedPointDataType属性。

完整的精度

FixedPointDataType属性设置为“充分精确”,截面和输出字长的计算公式如下:

W l 部分 W l 输入 + N u 年代 e c t W l 输出 W l 输入 + N u 年代 e c t

在那里,

  • 部分——CIC过滤段的字长。

  • 输出——输出数据的字长。

  • 输入——输入数据的字长。

  • NumSect——通过指定的CIC过滤段的数量NumSections财产。

对于锁定的对象,输入继承自传递给对象算法的数据输入。对于未锁定的对象,输入继承自nt论点。

最小节字长

FixedPointDataType属性设置为“最小节字长度”时,分段字长由下式给出:

W l 部分 W l 输入 + N u 年代 e c t

输出字长度是您在中指定的值OutputWordLength属性。

指定字和分数的长度

FixedPointDataType属性设置为'指定单词和分数长度'中指定的节字长度和输出字长度SectionWordLengths而且OutputWordLengthCIC过滤对象的属性。

指定字长

FixedPointDataType属性设置为“指定字长”中指定的节字长度和输出字长度SectionWordLengths而且OutputWordLengthCIC过滤对象的属性。

例子:[20 20 20 20 20 20 20]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

Section和输出分数长度,作为行向量返回。前2 ×NumSections行向量中的元素对应CIC滤波器的积分器和梳状段的分数长度。的价值NumSections属性指定过滤器的积分器部分或梳状部分中的节数。向量中的最后一个元素对应于对象输出的片段长度。

CIC滤波段的分数长度和对象输出取决于FixedPointDataType属性。

完整的精度

FixedPointDataType属性设置为“充分精确”,截面和输出分数长度由下式计算:

F l 部分 W l 部分 W l 输入 F l 输入 + N u 年代 e c t F l 输出 W l 输出 W l 输入 F l 输入 + N u 年代 e c t

对于内置整数数据类型的输入,section和输出分数长度为0。

最小节字长

FixedPointDataType属性设置为“最小节字长度”,截面和输出分数长度,FL部分而且FL输出由下式给出:

F l 部分 W l 部分 W l 输入 F l 输入 + N u 年代 e c t F l 输出 W l 输出 W l 输入 F l 输入 + N u 年代 e c t

对于内置整数数据类型的输入,section和输出分数长度为0。

指定字和分数的长度

FixedPointDataType属性设置为'指定单词和分数长度'中指定的段和输出分数长度SectionFractionLengths而且OutputFractionLength属性。

指定字长

FixedPointDataType属性设置为“指定字长”,截面和输出分数长度,FL部分而且FL输出由下式给出:

F l 部分 W l 部分 W l 输入 F l 输入 + N u 年代 e c t F l 输出 W l 输出 W l 输入 F l 输入 + N u 年代 e c t

例子:[12 12 12 12 12 12 12]

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

参考文献

[1] E.B.霍格纳尔一种用于抽取和插值的经济型数字滤波器。IEEE声学,语音和信号处理汇刊.第29卷第2期,1981年,155-162。

[2]美国迈耶-贝斯公司。现场可编程门阵列数字信号处理.纽约:施普林格,2001。

[3]哈里斯,弗雷德里克J。通信系统的多速率信号处理.印第安纳波利斯:Prentice Hall PTR, 2004。

版本历史

在R2018a中介绍