为什么模型的加权样万博1manbetx本块有时使用定点数据类型的输出?

4视图(30天)
在仿真万博1manbetx软件中,我想要一个信号的样本时间和使用在其他计算这个值。加权样本时间块这通过一个信号作为输入,然后输出样本的值作为另一个信号。但有时我很惊讶的数据类型用于输出信号。特别是,为什么输出信号有时使用定点数据类型?

接受的答案

安迪·巴特利特
安迪·巴特利特 2021年12月23日
编辑:安迪·巴特利特 2021年12月23日
加权样本块多态的时间
加权样本时间数学块数值类型多态。对于输入,它支持浮点类型如双打万博1manbetx和单打,uint8和int16整数类型,定点sfix16_En7和ufix32_En33等类型。
通过内部继承规则
当块输出数据类型设置为“继承:继承通过内部规则”,基于输入输出类型自动确定类型,样品时间,重量参数,和其他因素。“内部规定”试图选择一个类型,将良好的准确性和效率的MathWorks编码器生成的代码块。
当输入双或单浮点,内部规则选择的输出也将双或单。但当输入整数或定点,“内部规定”将寻求为输出定点数据类型,使良好的精度。在某些情况下,所选择的定点类型相当于一个内置整数类型像int32在这种情况下,输出将内置整数类型。
示例样本时间1/3
让我们考虑这样一种情况,当信号的输入加权样本块样品时间1/3。让我们考虑这样一种情况,当加权样本块被配置为以下。
操作:Ts只
重量值:1
输出通过内部数据类型:继承:继承规则
下面的图像显示的输出加权样本时间四个不同的输入数据类型。
看显示块注意样品时间1/3已经捕获到5或更多的在所有四个情况下精度的小数位数。还要注意的输入和输出数据类型的四个加权样本块的时间。
注意的输入类型uint8和uint32定点输出数据类型。为什么没有输出整数输入吗?简单,如果输出是一个整数的样品时间是量子化的1/3秒0秒。所以在整数,样品时间会用零表示数字的准确性。代表样本时间0将是无用的。使用定点精度较好。
整数输入,输出类型使用浮点?为什么不原因是为了更好地支持生成的代码的效率,特别是针对万博1manbetx嵌入式处理器没有浮点硬件支持。如果输入不使用浮点数,输出也会远离浮点。通过利用定点缩放图像显示,一些整数比特可以近似1/3相当准确。
控制输出类型
如果类型选择“继承:继承通过内部规则”不符合您的需求,那么您可以使用一个不同的“输出数据类型”参数设置和控制类型。最有效的方法是使用“通过反向传播继承”
输出数据类型:继承:继承:继承通过反向传播
然后用另一块设置输出信号的数据类型。
控制信号的数据类型的一种方法从另一个块是下降信号规范块通过信号和显式地设置所需的数据类型规范。
另一种方法是动态的数据类型设置输出信号使用的数据类型重复块或数据类型传播块。我们将会看到下一节的前一个例子。
用重量来改变单位整数是有用的
前一节中描述了如何控制样本的输出数据类型时间数学块。但如果我们做了,那么我们就会有问题像一个样品时间的1/3秒无用地量子化的整数值0。
避免灾难性的量化和使用输出一个整数,你需要改变单位。如果你改变毫秒,需要量化1000/3整数。如果你改变微秒,那么你需要量化100000/3整数。
加权样本时间块“重量价值”参数可以用来手动转换到毫秒,微秒,或纳秒,但在1 e3的重量下降,1 e6,或者1 e9分别。
下图展示了这种方法。输出设置为匹配输入数据类型使用“通过反向传播继承”和数据类型重复块。四个加权样本时间块设置的重量值1,1 e3, e9 1 e6, 1。所以单位的输出是其次,毫秒、微秒,分别和纳秒。我添加了信号规范块和组通过他们的单位,但这不是必要的。我添加了单位和显示他们加强关键技术用于制造纯整数可行。
显示器显示,秒导致一个完全无用的准确性。随着使用的单位越来越细,准确性越来越好。但是记住,整数变大。如果你让单位太细,需要整数会效率低下大或溢出所使用的整数类型。例如,使用皮秒将溢出一个无符号32位整数类型。
定点和整数
这个例子展示了内置整数类型的输出可以工作得很好。但是让我们与之形成对比的是,默认情况下,使用定点类型。
自动选择定点类型的精度达到5位数16位输出和10位数为32位的情况。手动选择重量和单位变化达到3、6和9位数整数的准确性。定点默认自动实现最高精度。
自动定点选型将确保溢出不会发生。手册的情况下,用户需要注意避免溢出。
定点情况下允许用户仍留在原单位和效率高、准确性。所需的手动方法改变信号的单位。呆在单位的能力者优先的工程师使用定点的模型是一个主要的优势。
手动改变单位的下游信号通常会需要进一步手动更改。定点,下游块可能还需要应对变化,但这些变化是由仿真软件自动处理和编码人员。万博1manbetx例如,如果一个信号改为7分位而不是8分位,那么下游添加块会自动处理这种变化。此外,仿真软件和程序员也设万博1manbetx计成自动处理诸如对齐的二进制点最小、最快的代码。
当你看生成的C或HDL代码使用定点仿真软件模型类型,你会发现代码是整数操作水平较低。万博1manbetx概念,你可以用纯整数模型仿真软件的一切,但是会有很多负担你正确地管理所有的细节和re-ma万博1manbetxnage模型进行更改。定点设计师的类型系统自动处理原始的细节和变化。
如果浮点好,只是预制的
在某些情况下,当嵌入microprocess你是针对没有浮点硬件单元,使用浮点数可以是一个很大的负效率。但是在其他情况下,使用浮点很好。如果你乐于使用浮点代表样本的时间,那么另一种方法是可能的。简单数据类型转换块下滑的信号线通往加权样本块的时间。然后设置的输出数据类型转换双或单块。加权样本的输出时间块“通过内部继承规则”将相同类型的浮点输入。
尝试在自己的连接
这个答案的截图是使用R2019b创建附加的模型。请与他们玩耍,看到尝试讨论的概念。
问候,
安迪

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!