完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
转dsp系列教程
本期教程主要讲解支持函数中的Q7,Q15和Q31分别向其它类型数据转换。 14.1 定点数Q7转换 14.2 定点数Q15转换 14.3 定点数Q31转换 14.4 总结 14.1 定点数Q7转换 14.1.1 arm_q7_to_float 公式描述: pDst[n] = (float32_t) pSrc[n] / 128; 0 <= n < blockSize. 函数定义如下: void arm_q7_to_float(q7_t * pSrc, float32_t * pDst, uint32_t blockSize) 参数定义: [in] *pSrc points to the Q7 input vector [out] *pDst points to the floating-point output vector [in] blockSize length of the input vector |
|
相关推荐
|
|
14.1.2 arm_q7_to_q31
公式描述: pDst[n] = (q31_t) pSrc[n] << 24; 0 <= n < blockSize. 函数定义如下: void arm_q7_to_q31(q7_t * pSrc, q31_t * pDst, uint32_t blockSize) 参数定义: [in] *pSrc points to the Q7 input vector [out] *pDst points to the Q31 output vector [in] blockSize length of the input vector 14.1.3 arm_q7_to_q15 公式描述: pDst[n] = (q15_t) pSrc[n] << 8; 0 <= n < blockSize. 函数定义如下: void arm_q7_to_q15(q7_t * pSrc, q15_t * pDst, uint32_t blockSize) 参数定义: [in] *pSrc points to the Q7 input vector [out] *pDst points to the Q15 output vector [in] blockSize length of the input vector |
|
|
|
|
|
14.1.4 实例讲解
实验目的: 1. 学习SupportFunctions中Q7格式数据的转换 实验内容: 1. 按下按键K1, 串口打印函数DSP_Q7的输出结果 实验现象: 通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下: |
|
|
|
|
|
程序设计:
复制代码 /* ********************************************************************************************************* * 函 数 名: DSP_Q7 * 功能说明: Q7格式数据向其它格式转换 * 形 参:无 * 返 回 值: 无 ********************************************************************************************************* */ static void DSP_Q7(void) { float32_t pDst[10]; uint32_t pIndex; q31_t pDst1[10]; q15_t pDst2[10]; q7_t pSrc[10]; for(pIndex = 0; pIndex < 10; pIndex++) { pSrc[pIndex] = rand()%128; printf("pSrc[%d] = %drn", pIndex, pSrc[pIndex]); } /*****************************************************************/ arm_q7_to_float(pSrc, pDst, 10); for(pIndex = 0; pIndex < 10; pIndex++) { printf("arm_q7_to_float: pDst[%d] = %frn", pIndex, pDst[pIndex]); } /*****************************************************************/ arm_q7_to_q31(pSrc, pDst1, 10); for(pIndex = 0; pIndex < 10; pIndex++) { printf("arm_q7_to_q31: pDst1[%d] = %drn", pIndex, pDst1[pIndex]); } /*****************************************************************/ arm_q7_to_q15(pSrc, pDst2, 10); for(pIndex = 0; pIndex < 10; pIndex++) { printf("arm_q7_to_q15: pDst2[%d] = %drn", pIndex, pDst2[pIndex]); } /*****************************************************************/ printf("******************************************************************rn"); } |
|
|
|
|
|
14.2 定点数Q15转换
14.2.1 arm_q15_to_float 公式描述: pDst[n] = (float32_t) pSrc[n] / 32768; 0 <= n < blockSize. 函数定义如下: void arm_q15_to_float(q15_t * pSrc, float32_t * pDst, uint32_t blockSize) 参数定义: [in] *pSrc points to the Q15 input vector [out] *pDst points to the floating-point output vector [in] blockSize length of the input vector 14.2.2 arm_q15_to_q31 公式描述: pDst[n] = (q31_t) pSrc[n] << 16; 0 <= n < blockSize. 函数定义如下: void arm_q15_to_q31(q15_t * pSrc, q31_t * pDst, uint32_t blockSize) 参数定义: [in] *pSrc points to the Q15 input vector [out] *pDst points to the Q31 output vector [in] blockSize length of the input vector 14.2.3 arm_q15_to_q7 公式描述: pDst[n] = (q7_t) pSrc[n] >> 8; 0 <= n < blockSize. 函数定义如下: void arm_q7_to_q15(q7_t * pSrc, q15_t * pDst, uint32_t blockSize) 参数定义: [in] *pSrc points to the Q15 input vector [out] *pDst points to the Q7 output vector [in] blockSize length of the input vector |
|
|
|
|
|
14.2.4 实例讲解
实验目的: 1. 学习SupportFunctions中Q15格式数据的转换 实验内容: 1. 按下按键K1, 串口打印函数DSP_Q7的输出结果 实验现象: 通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下: |
|
|
|
|
|
程序设计:
复制代码 /* ********************************************************************************************************* * 函 数 名: DSP_Q15 * 功能说明: Q15格式数据向其它格式转换 * 形 参:无 * 返 回 值: 无 ********************************************************************************************************* */ static void DSP_Q15(void) { float32_t pDst[10]; uint32_t pIndex; q31_t pDst1[10]; q15_t pSrc[10]; q7_t pDst2[10]; for(pIndex = 0; pIndex < 10; pIndex++) { pSrc[pIndex] = rand()%32678; printf("pSrc[%d] = %drn", pIndex, pSrc[pIndex]); } /*****************************************************************/ arm_q15_to_float(pSrc, pDst, 10); for(pIndex = 0; pIndex < 10; pIndex++) { printf("arm_q15_to_float: pDst[%d] = %frn", pIndex, pDst[pIndex]); } /*****************************************************************/ arm_q15_to_q31(pSrc, pDst1, 10); for(pIndex = 0; pIndex < 10; pIndex++) { printf("arm_q15_to_q31: pDst1[%d] = %drn", pIndex, pDst1[pIndex]); } /*****************************************************************/ arm_q15_to_q7(pSrc, pDst2, 10); for(pIndex = 0; pIndex < 10; pIndex++) { printf("arm_q15_to_q7: pDst2[%d] = %drn", pIndex, pDst2[pIndex]); } /*****************************************************************/ printf("******************************************************************rn"); } |
|
|
|
|
|
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_t blockSize) 参数定义: [in] *pSrc points to the Q31 input vector [out] *pDst points to the floating-point output vector [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_t blockSize) 参数定义: [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_t blockSize) 参数定义: [in] *pSrc points to the Q31 input vector [out] *pDst points to the Q7 output vector [in] blockSize length 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"); } |
|
|
|
|
|
386 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1670 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1123 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1005 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1229 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12018 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:24 , Processed in 0.665590 second(s), Total 57, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号