IQ格式数据在汇编语言中是如何实现的,同时对于IQ格式数据的乘除法又是如何实现的,比如,a=iq20(0.25) b=iq24(0.01) 那么a*b ;a/b 以及a+b分别在数据格式上有什么不同,假如我要将结果用iq22表示又该如何实现!
请各位指教。谢谢
Young Hu:
IQ格式是通过移位实现的,您可以参考IQmath的文档学习参考一下!
IQ格式数据在汇编语言中是如何实现的,同时对于IQ格式数据的乘除法又是如何实现的,比如,a=iq20(0.25) b=iq24(0.01) 那么a*b ;a/b 以及a+b分别在数据格式上有什么不同,假如我要将结果用iq22表示又该如何实现!
请各位指教。谢谢
yong ouyang1:
回复 Young Hu:
整体上我大概理解,我理解成 数据换成IQ格式时,是将数据左移N位,也就是理解成将数据乘以2的N次方。是不是这样?
我想问的是细节问题,比如一个iq20格式的数据乘以一个iq24格式的数据;
问题:1) 其结果是什么格式?
2) 其过程,是先将数据转换成相同格式再计算,还是先计算再对结果进行格式转换?
3) 对于问题1的附加,要是将结果的格式转换成iq22,该如何实现?
4) 麻烦分析下面程序的处理是否正确。
MOVW DP,#_Temp1 MOVL XT,@_Temp1 ;Q20 MOVW DP,#_Temp2 ;Q24 IMPYL P,XT,@_Temp2 ;P = Temp1 * _Temp2[31:0] QMPYL ACC,XT,@_Temp2 ;ACC = _Temp1 * _Temp2[63:32] LSL64 ACC:P,#6 ;ACC->Q22 MOVW DP,#_Temp3 MOVL @_Temp3,ACC ;Q22
IQ格式数据在汇编语言中是如何实现的,同时对于IQ格式数据的乘除法又是如何实现的,比如,a=iq20(0.25) b=iq24(0.01) 那么a*b ;a/b 以及a+b分别在数据格式上有什么不同,假如我要将结果用iq22表示又该如何实现!
请各位指教。谢谢
Bruce Wei:
回复 yong ouyang1:
一个原则,Qn就是把1分成2^n次方份。理解这个就可以了。
IQ格式数据在汇编语言中是如何实现的,同时对于IQ格式数据的乘除法又是如何实现的,比如,a=iq20(0.25) b=iq24(0.01) 那么a*b ;a/b 以及a+b分别在数据格式上有什么不同,假如我要将结果用iq22表示又该如何实现!
请各位指教。谢谢
yong ouyang1:
回复 Bruce Wei:
嗯。能理解。