IQmath的速度到底有多快?各种疑惑

虽说_IQsin用到了bootrom中的正弦表,但从有些人测试的运算时间来看只是比做浮点运算快,但比传统的查表法还是慢很多,是这样么?做一次_IQsin运算大概多少指令周期?如果做10k载波频率的的pwm,每个载波周期只有100us,用_IQsin来做靠谱么?实时性能满足么?另外IQ在做格式转换的时候是乘以2的Q次幂,那这不是已经做了一次浮点运算么?不会耗费很多时间么?如果要做一个浮点数和一个整数相乘的运算,用IQ格式比直接相乘有速度优势么?

基本上使用IQ运算时除了查表之外最快的运算了,当然专业的牛人根据数据规律可以设计出有针对性的更快的程序这个不包括在内。而且所谓的乘除2^N的运算其实都是通过移位来实现的,几乎都是单周期的命令。不是真的要去乘除。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-07
个人认为做spwm,如果真的要计算的话,用qmth比IQmath要好,精度已经足够了,Q15精度已经足够了。表的精度也不过这样,没有必要用更高的了。载波幅度总是有限的,sin值乘过M以后也不会变化太多。再考虑定时器的精度,截尾误差,没有必要采用更高精度。我写过一个查表和一个qsin的三相spwm,时间是多不少(没精确计算),精度完全没问题的。有空再好好考虑下时间开支的问题。本回答被网友采纳
第2个回答  2014-03-07
好象iqmath也是基于查表的吧?bootrom里面的sin表好象就是个q格式的表
第3个回答  2014-03-07
回复 5# 是IQmath.lib里边的。请问您是如何查看的源码?
相似回答