关于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条回答
hh312
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的含义就可以了

一周热门 更多>