例程中
value = (_iq)ADC_readResult(obj->adcHandle,ADC_ResultNumber_1);
value = _IQ12mpy(value,current_sf) – obj->adcBias.I.value[0];
ad结果强制 转换 IQ24, 为什么 乘个 系数要用 IQ12 ?
Green Deng:
这里使用的是标幺化的处理,数据格式是Q24的结构,所以一个12位的ADC,其实就是一个Q12的数据,再通过IQ12mpy处理成Q24,这就变成了标幺值,然后再乘以硬件系数值。
user1303469:
回复 Green Deng:
我问的是 为什么是IQmpy12,这里面是怎么算的?
naughty boy:
回复 user1303469:
在controlSUITE软件中有关于IQ的详细介绍C:\ti\controlSUITE\libs\math\IQmath\v160\doc
user5912823:
回复 user1303469:
确实,我也对这个充满了疑惑。
第一句,已经把AD转换结果通过(_iq)形式转换成了Q24格式;
第二句,却又以Q12的格式乘以一个系数,这是为什么? 没人能说清楚吗?该句为什么不是IQmpy ?