第12章ARM官方DSP库的StatisticsMathFunctions的使用教程(二)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第11页页共共1100页页第第1122章章StatisticsMathFunctions的的使使用用((二二))本期教程主要讲解统计函数中的标准偏差、均方根和方差的计算。12.1标准偏差Standarddeviation12.2均方差RMS12.3方差Variance12.4总结1122..11标标准准偏偏差差SSttaannddaarrddddeevviiaattiioonn这部分函数用于计算标准偏差,公式描述如下:Result=sqrt((sumOfSquares-sum2/blockSize)/(blockSize-1))其中:sumOfSquares=pSrc[0]*pSrc[0]+pSrc[1]*pSrc[1]+...+pSrc[blockSize-1]*pSrc[blockSize-1]sum=pSrc[0]+pSrc[1]+pSrc[2]+...+pSrc[blockSize-1]1122..11..11aarrmm__ssttdd__ff3322此函数的使用比较简单,函数定义如下:voidarm_std_f32(float32_t*pSrc,uint32_tblockSize,float32_t*pResult)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultstandarddeviationvaluereturnedhere1122..11..22aarrmm__ssttdd__qq3311此函数的使用比较简单,函数定义如下:voidarm_std_q31(q31_t*pSrc,uint32_tblockSize,q31_t*pResult)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultstandarddeviationvaluereturnedhere安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第22页页共共1100页页注意事项:输入参数是1.31格式的,相乘后输出就是1.31*1.31=2.62格式,这种情况下,函数内部使用的64位累加器很容易溢出,并且这个函数不支持饱和运算,这个函数的使用还有一些问题,有待后面解决。1122..11..33aarrmm__ssttdd__qq1155此函数的使用比较简单,函数定义如下:voidarm_std_q15(q15_t*pSrc,uint32_tblockSize,q15_t*pResult)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultstandarddeviationvaluereturnedhere注意事项:输入参数是1.15格式,相乘后的的结果就是1.15*1.15=2.30格式,这种情况下,内部64位累加器的的格式就是34.30。最终的输出结果要截取到低15位数据,然后通过饱和运算最终输出数据格式1.15。1122..11..44实实例例讲讲解解实验目的:1.学习StatisticsMathFunctions中标准偏差的求解实验内容:1.按下按键K1,串口打印函数DSP_Std的输出结果实验现象:通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第33页页共共1100页页程序设计:/***********************************************************************************************************函数名:DSP_Std*功能说明:求标准偏差*形参:无*返回值:无**********************************************************************************************************/staticvoidDSP_Std(void){float32_tpSrc[10]={0.6557,0.0357,0.8491,0.9340,0.6787,0.7577,0.7431,0.3922,0.6555,0.1712};float32_tpResult;uint32_tpIndex;q31_tpSrc1[10];q31_tpResult1;q15_tpSrc2[10];q15_tpResult2;arm_std_f32(pSrc,10,&pResult);(1)printf(arm_std_f32:pResult=%f\r\n,pResult);/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc1[pIndex]=rand();}arm_std_q31(pSrc1,10,&pResult1);(2)printf(arm_std_q31:pResult=%d\r\n,pResult1);安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第44页页共共1100页页/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc2[pIndex]=rand()%32768;}arm_std_q15(pSrc2,10,&pResult2);(3)printf(arm_std_q15:pResult=%d\r\n,pResult2);printf(******************************************************************\r\n);}1.这个是浮点数标准偏差求解,这里我们先用matlab生成一组随机的浮点数,并求解其对应的标准偏差,然后再用此函数获取标准偏差作为对比。在matlab的命令窗口输入如下命令:rand(1,10)%1行10列然后再通过命令std获得标准偏差:std(ans)matlab求得标准偏差数值是0.2935,而DSP函数求得结果是0.293485,基本是一致的。2.这个函数的使用还没有搞懂,有待后面解决。3.这个函数的使用还没有搞懂,有待后面解决。1122..22均均方方根根RRMMSS这部分函数用于计算标准偏差,公式描述如下:Result=sqrt(((pSrc[0]*pSrc[0]+pSrc[1]*pSrc[1]+...+pSrc[blockSize-1]*pSrc[blockSize-1])/blockSize));1122..22..11aarrmm__rrmmss__ff3322函数定义如下:voidarm_rms_f32(float32_t*pSrc,uint32_tblockSize,float32_t*pResult)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第55页页共共1100页页[out]*pResultrmsvaluereturnedhere1122..22..22aarrmm__rrmmss__qq3311函数定义如下:voidarm_rms_q31(q31_t*pSrc,uint32_tblockSize,q31_t*pResult)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultrmsvaluereturnedhere注意事项:输入参数是1.31格式的,相乘后输出就是1.31*1.31=2.62格式,这种情况下,函数内部使用的64位累加器很容易溢出,并且这个函数不支持饱和运算。1122..22..33aarrmm__rrmmss__qq1155函数定义如下:voidarm_rms_q15(q15_t*pSrc,uint32_tblockSize,q15_t*pResult)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultrmsvaluereturnedhere注意事项:输入参数是1.15格式,相乘后的的结果就是1.15*1.15=2.30格式,这种情况下,内部64位累加器的的格式就是34.30。最终的输出结果要截取到低15位数据,然后通过饱和运算最终输出数据格式1.15。1122..22..44实实例例讲讲解解实验目的:1.学习StatisticsMathFunctions中均方根的求解实验内容:1.按下按键K2,串口打印函数DSP_RMS的输出结果实验现象:通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第66页页共共1100页页程序设计:/***********************************************************************************************************函数名:DSP_RMS*功能说明:求均方值*形参:无*返回值:无**********************************************************************************************************/staticvoidDSP_RMS(void){float32_tpSrc[10]={0.7060,0.0318,0.2769,0.0462,0.0971,0.8235,0.6948,0.3171,0.9502,0.0344};float32_tpResult;uint32_tpIndex;q31_tpSrc1[10];q31_tpResult1;q15_tpSrc2[10];q15_tpResult2;arm_rms_f32(pSrc,10,&pResult);printf(arm_rms_f32:pResult=%f\r\n,pResult);(1)/*****************************************************************/for(

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功