14.3 定点数Q31转换
14.3.1 arm_q31_to_float公式描述: pDst[n] = (float32_t) pSrc[n] / 2147483648; 0 <= n < blockSize. 函数定义如下: void arm_q31_to_float(q31_t * pSrc, float32_t * pDst, uint32_tblockSize) 参数定义: [in] *pSrc points to the Q31 input vector [out] *pDst points to the floating-point outputvector [in] blockSize length of the input vector
14.3.2 arm_q31_to_q15公式描述: pDst[n] = (q15_t) pSrc[n] >> 16; 0 <= n < blockSize. 函数定义如下: void arm_q31_to_q15(q31_t * pSrc, q15_t * pDst, uint32_tblockSize) 参数定义: [in] *pSrc points to the Q31 input vector [out] *pDst points to the Q15 output vector [in] blockSize length of the input vector
14.3.3 arm_q31_to_q7公式描述: pDst[n] = (q7_t) pSrc[n] >> 24; 0 <= n < blockSize. 函数定义如下: void arm_q31_to_q7(q31_t * pSrc, q7_t * pDst, uint32_tblockSize) 参数定义: [in] *pSrc points to the Q31 input vector [out] *pDst points to the Q7 output vector [in] blockSizelength of the input vector
14.3.4 实例讲解实验目的: 1. 学习SupportFunctions中Q31格式数据的转换 实验内容: 1. 按下按键K1, 串口打印函数DSP_Q31的输出结果 实验现象: 通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:
程序设计:
- /*
- *********************************************************************************************************
- * 函 数 名: DSP_Q31
- * 功能说明: Q31格式数据向其它格式转换
- * 形 参:无
- * 返 回 值: 无
- *********************************************************************************************************
- */
- static void DSP_Q31(void)
- {
- float32_t pDst[10];
- uint32_t pIndex;
-
- q31_t pSrc[10];
- q15_t pDst1[10];
- q7_t pDst2[10];
-
- for(pIndex = 0; pIndex < 10; pIndex++)
- {
- pSrc[pIndex] = rand();
- printf("pSrc[%d] = %drn", pIndex, pSrc[pIndex]);
- }
-
- /*****************************************************************/
- arm_q31_to_float(pSrc, pDst, 10);
- for(pIndex = 0; pIndex < 10; pIndex++)
- {
- printf("arm_q31_to_float: pDst[%d] = %frn", pIndex, pDst[pIndex]);
- }
-
- /*****************************************************************/
- arm_q31_to_q15(pSrc, pDst1, 10);
- for(pIndex = 0; pIndex < 10; pIndex++)
- {
- printf("arm_q31_to_q15: pDst1[%d] = %drn", pIndex, pDst1[pIndex]);
- }
-
- /*****************************************************************/
- arm_q31_to_q7(pSrc, pDst2, 10);
- for(pIndex = 0; pIndex < 10; pIndex++)
- {
- printf("arm_q31_to_q7: pDst2[%d] = %drn", pIndex, pDst2[pIndex]);
- }
-
- /*****************************************************************/
- printf("******************************************************************rn");
- }
复制代码
|