当前位置:   article > 正文

Fixed-Point Precision Control学习

Fixed-Point Precision Control学习

以Matlab自带例子示例,走一遍定点化流程,并针对各种方法写总结。

open(‘pwm_intersective_filter’)

选取PWM_intersective子模块进行定点化工具使用。

半自动化定点

1.第一步准备,记得保存、记录数据、数据命名、选取子系统。

2.第二步收集范围,选取双精度数据输入。

3.第三步手动设置参数,字长大小。小数长度默认是4,安全裕度是可以溢出,保护位。

You can also use this option for FPGA targets where you can choose any world length up to 128 bits.

4.最后点击应用数据类型。可以看到定点化已经应用上去了。(变体,挖坑)

5.结果定点前后对比,部分数据存在溢出。这些应该没有设置误差容限。

具体的数据前后对比图,绿色是自己设置误差容限,蓝色是浮点,红色是定点结果。

后续讨论

尽管定点化已经完成,但是还有一些坑没有填。

比如:fixdt(0,25,51)这种定点化方式很怪异。

尽管小数部分长度为 51 位,但由于总位宽为 25 位,这意味着实际数值会被截断或舍入,以适应总位宽的限制。下面是这个数据类型的一些特性:

  • 高精度小数表示:尽管只有 25 位,但它可以表示非常精细的小数值。
  • 数值范围有限:总位宽只有 25 位,因此它可以表示的最大整数值受到限制。
  1. a = fi(3.141592653589793, 0, 25, 51);
  2. disp(a);
  3. disp(bin(a));
  4. disp(double(a));

 这个输出展示了定点数的高精度小数表示,尽管只有 25 位总位宽,它依然能够非常精确地表示 pi。虽然 fixdt(0, 25, 51) 似乎有些不寻常,但它允许非常高的分辨率表示,用于表示非常小的数值。这种设置在某些精度要求极高的仿真或信号处理中非常有用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/821425
推荐阅读
相关标签
  

闽ICP备14008679号