关于IQmath的问题,请高手帮忙解决

2019-08-06 15:07发布

#define   _IQ1mpyIQX(A, IQA, B, IQB)   __IQxmpy(A, B, (1 + 32 - IQA - IQB))
这个宏定义中__IQxmpy(A, B, (1 + 32 - IQA - IQB))能否详细解释下??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
youhu520
1楼-- · 2019-08-07 11:16
 精彩回答 2  元偷偷看……
dirtwillfly
2楼-- · 2019-08-07 13:09
本帖最后由 dirtwillfly 于 2014-1-23 10:41 编辑
youhu520 发表于 2014-1-23 09:53
谢谢版主,你发的这个资料很不错,有看过,就是不理解函数__IQxmpy(A, B, (1 + 32 - IQA - IQB))的(1 + 3 ...

额,这是不同IQ格式数据的乘法
dirtwillfly
3楼-- · 2019-08-07 15:41
__IQxmpy的源代码我也没找到
youhu520
4楼-- · 2019-08-07 16:34
感谢版主的用心!谢谢!
hh312
5楼-- · 2019-08-07 20:51
个人理解一部分:
A的精度是IQA,B的精度是IQB,返回值的精度是IQ1,那么,如果自己计算的话,结果就是
(A * B) >> (IQA + IQB - 1)
一般A和B要临时变成64位防止溢出,同时要考虑IQA和IQB的和不能小于1,这里就不管了。
从上面的式子已经可以到到  1 + 32 - IQA - IQB 的一部分了,相当于用 32 去减 那个移位的数,32是一个IQ数的最大位数,具体有什么意义,只能看原型函数了,但是没得看,也不管我们事,反正理解IQ的含义就可以了

一周热门 更多>