【问题标题】:Fixed point optimum algorithm for different decimal points不同小数点的定点优化算法
【发布时间】:2018-01-22 15:36:36
【问题描述】:

所以我有一个 32 位处理器,我可以用 C 语言编程它需要与定点一起使用以提高速度。

我了解定点表示和基本实现。我正在寻找的是如何组合具有不同小数位数的数字。

假设我将 Q10 + Q10 相加,我将使用 Q10 作为总和。如果我将 Q10 和 Q20 相加会怎样?算法是否考虑了这两个数字并选择适当的 Qx 值以最小化精度损失和溢出?我基本上需要加减乘除。

问题是我的操作可能看起来像:

2*3.14159*50*1e-4*10 + 5.2*10

而且我宁愿避免“手动”进行缩放和技巧。

【问题讨论】:

  • 你如何代表 Q10?
  • 如果您使用具有可变比例的定点表示,那么手动缩放正是您所注册的。即使使用不变的比例,您可能仍然需要为乘法运算进行一些手动缩放。当然,您可以将其包装在一个函数中,但这可能首先会失去定点所提供的任何性能优势。根据您的具体需要,也许宏是避免代码重复的合适工具。
  • 十进制位是矛盾的。

标签: c fixed-point


【解决方案1】:

没有现成的通用处理器可用,但有一个项目声称具有可变精度定点:https://versaweb.dl.sourceforge.net/project/fixedptc/fixedptc.h

对于 PIC micro,有一些库可以处理 8 位大小的不同 Q 算法,如下所述: http://ww1.microchip.com/downloads/en/AppNotes/00617.pdf 此外,您可能会看到此问题以获得更通用的问题描述。 http://www.superkits.net/whitepapers/Fixed%20Point%20Representation%20&%20Fractional%20Math.pdf 是否需要编写这样的库,如果需要,可以通过一些努力来编写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2015-09-23
    • 2014-12-19
    • 2010-12-03
    • 2014-06-05
    相关资源
    最近更新 更多