DSP库中浮点数转定点时四舍五入的处理思路,如果是正数加0.5,负数减0.5

[复制链接]
572|0
 楼主| kaloulin 发表于 2018-8-4 17:16 | 显示全部楼层 |阅读模式
比如浮点数转Q15:




#ifdef ARM_MATH_ROUNDING
    /* C = A * 32768 */
    /* Convert from float to q15 and then store the results in the destination buffer */
    in = *pIn++;
    in = (in * 32768.0f);
    in += in > 0.0f ? 0.5f : -0.5f;
    *pDst++ = (q15_t) (__SSAT((q31_t) (in), 16));

#else

    /* C = A * 32768 */
    /* Convert from float to q15 and then store the results in the destination buffer */
    *pDst++ = (q15_t) __SSAT((q31_t) (*pIn++ * 32768.0f), 16);

#endif /*      #ifdef ARM_MATH_ROUNDING        */
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

448

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部