这个示例向您展示了如何使用广义定点数据类型模拟一个连续的真实世界的双精度信号。使用fxpdemo_dbl2fix
模型中,您可以探索定点设计器™软件的许多重要特性,包括
数据类型
扩展
舍入
将最小和最大模拟值记录到工作空间
溢出处理
要打开模型,在MATLAB中®命令行,输入
fxpdemo_dbl2fix
在本例中,配置信号发生器块输出一个正弦信号,其振幅在间隔上定义5 [5]
.的信号发生器块总是输出双精度数字。
的Dbl-to-FixPt
数据类型转换块将双精度数从信号发生器块转换为定点设计器数据类型之一。为简单起见,在本例中输出信号的大小为5位。
的FixPt-to-Dbl
数据类型转换块将一个定点设计器数据类型转换为Simulink金宝app®数据类型。在本例中,它输出双精度数。
当使用仅为二进制点的缩放时,您的目标是找到最优的2的幂指数E,定义为扩展.对于这个缩放模式,分数阶斜率F为1,没有偏倚。
将模型设置为只使用二进制点缩放:
配置信号发生器块输出一个正弦信号,其振幅在间隔上定义5 [5]
.
双击信号发生器块,以打开块的参数对话框。
设置波形参数正弦
.
设置振幅参数5
.
点击好吧.
配置数据类型转换(Dbl-to-FixPt)块。
双击Dbl-to-FixPt块,以打开块的参数对话框。
验证输出数据类型参数是fixdt(1、5、2)
.这指定了一个5位带符号的带缩放的定点数2 ^ 2
,它将二进制点放在最右边位的左边两位。因此,最大值为011.11 = 3.75,最小值为100.00 = -4.00,精度为(1/2)2= 0.25。
验证整数舍入模式参数设置为地板上
.这将把定点结果舍入到负无穷。
选择饱和整数溢出复选框,以防止块在溢出时缠绕。
点击好吧.
为了模拟模型,在模拟选项卡上,单击运行.
的范围给出了理想和定点仿真结果。
仿真结果表明了该方法的量化效果定点算法的效果。使用精度为(1/2)的5位字2= 0.25产生的离散输出不跨越输入信号的整个范围。
若要使用仅二进制点缩放来跨越5位输入信号的完整范围,请将输出缩放设置为2 ^ 1
.这将二进制点放在最右边位的左边一位,最大值为0111.1 = 7.5,最小值为1000.0 = -8.0。但是,精度降低到(1/2)1= 0.5。如果您希望使用仅二进制点缩放来跨越5位输入信号的完整范围,那么您唯一的选择就是牺牲精度。因此,输出缩放为2 ^ 1
,它将二进制点放在最右边位的左边一位。这种缩放的最大值为0111.1 = 7.5,最小值为1000.0 = -8.0,精度为(1/2)1= 0.5。
要查看将精度降低到0.5的效果,请设置输出数据类型参数。Dbl-to-FixPt
数据类型转换块fixdt(1、5、1)
然后重新运行模拟。
当使用[斜率偏差]缩放时,您的目标是找到最佳分数斜率F和固定的2次方指数E,定义为扩展.这个例子没有偏差,因为正弦波是在区间上定义的5 [5]
.
要求斜率,首先假设-2的指数是固定的2次方。为了找到分数斜率,用正弦波的最大值除以缩放的5位数的最大值。结果是5.00/3.75 = 1.3333。斜率(和精度)是1.3333(0.25)= 0.3333。通过输入表达式将[Slope Bias]缩放指定为[0.3333 0]fixdt(1、5,0.3333,0)
的值输出数据类型参数。
您还可以指定一个固定的2次方指数-1和相应的分数斜率0.6667。得到的斜率是一样的,因为E减少了1位但是F增加1位。定点设计器软件将自动存储F如1.3332和E为-2,因为1≤归一化条件F< 2。
建立模型使用[Slope Bias]缩放:
的范围给出了理想和定点仿真结果。
如果您不知道斜率,则可以根据公式选择缩放比例,从而获得合理的模拟结果
在哪里
max_value是否要模拟最大值
min_value是否要模拟最小值
ws字的大小是以位为单位的吗
2ws- 1为带size的单词的最大值ws
对于本例,该公式产生的斜率为0.32258。