安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第11页页共共1133页页第第1111章章StatisticsMathFunctions的的使使用用((一一))本期教程主要讲解统计函数中的最大值,最小值,平均值和功率的计算。11.1最大值Maximum11.2最小值Minimum11.3平均值Mean11.4功率Power11.5总结1111..11最最大大值值MMaaxxiimmuumm这部分函数用于计算数组中的最大值,并返回数组中的最大值和最大值在数组中的位置。1111..11..11aarrmm__mmaaxx__ff3322此函数的使用比较简单,函数定义如下:voidarm_max_f32(float32_t*pSrc,uint32_tblockSize,float32_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..11..22aarrmm__mmaaxx__qq3311函数定义如下:voidarm_max_q31(q31_t*pSrc,uint32_tblockSize,q31_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..11..33aarrmm__mmaaxx__qq1155函数定义如下:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第22页页共共1133页页voidarm_max_q15(q15_t*pSrc,uint32_tblockSize,q15_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..11..44aarrmm__mmaaxx__qq77函数定义如下:voidarm_max_q7(q7_t*pSrc,uint32_tblockSize,q7_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..11..55实实例例讲讲解解实验目的:1.学习FastMathFunctions中最大值的求解实验内容:1.按下按键K1,串口打印函数DSP_Max的输出结果实验现象:通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第33页页共共1133页页程序设计:/***********************************************************************************************************函数名:DSP_Max*功能说明:求最大值*形参:无*返回值:无**********************************************************************************************************/staticvoidDSP_Max(void){float32_tpSrc[10]={0.6948,0.3171,0.9502,0.0344,0.4387,0.3816,0.7655,0.7952,0.1869,0.4898};(1)float32_tpResult;uint32_tpIndex;q31_tpSrc1[10];q31_tpResult1;q15_tpSrc2[10];q15_tpResult2;q7_tpSrc3[10];q7_tpResult3;arm_max_f32(pSrc,10,&pResult,&pIndex);printf(arm_max_f32:pResult=%fpIndex=%d\r\n,pResult,pIndex);/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc1[pIndex]=rand();(2)}arm_max_q31(pSrc1,10,&pResult1,&pIndex);printf(arm_max_q31:pResult=%dpIndex=%d\r\n,pResult1,pIndex);/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc2[pIndex]=rand()%32768;(3)安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第44页页共共1133页页}arm_max_q15(pSrc2,10,&pResult2,&pIndex);printf(arm_max_q15:pResult=%dpIndex=%d\r\n,pResult2,pIndex);/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc3[pIndex]=rand()%128;(4)}arm_max_q7(pSrc3,10,&pResult3,&pIndex);printf(arm_max_q7:pResult=%dpIndex=%d\r\n,pResult3,pIndex);printf(******************************************************************\r\n);}1.这里10个浮点随机数是通过matlab生成的,生成方法很简单,在命令窗口输入命令:rand(1,10)%1行10列获取结果如下:如果想获取整形随机数,可以使用函数:randi(32768,1,10)%生成的随机数不超过32768,1行10列。2.使用stdlib.h中的rand生成伪随机数。3.通过对32768求余获得可以用于函数arm_max_q15的数据。4.通过对128求余获得可以用于函数arm_max_q7的数据。1111..22最最小小值值MMiinniimmuumm这部分函数用于计算数组中的最小值,并返回数组中的最小值和最小值在数组中的位置。1111..22..11aarrmm__mmiinn__ff3322此函数的使用比较简单,函数定义如下:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第55页页共共1133页页voidarm_min_f32(float32_t*pSrc,uint32_tblockSize,float32_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..22..22aarrmm__mmiinn__qq3311函数定义如下:voidarm_min_q31(q31_t*pSrc,uint32_tblockSize,q31_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..22..33aarrmm__mmiinn__qq1155函数定义如下:voidarm_min_q15(q15_t*pSrc,uint32_tblockSize,q15_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..22..44aarrmm__mmiinn__qq77函数定义如下:voidarm_min_q7(q7_t*pSrc,uint32_tblockSize,q7_t*pResult,uint32_t*pIndex)参数定义:[in]*pSrcpointstotheinputvector[in]blockSizelengthoftheinputvector[out]*pResultmaximumvaluereturnedhere[out]*pIndexindexofmaximumvaluereturnedhere1111..22..55实实例例讲讲解解实验目的:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第66页页共共1133页页1.学习FastMathFunctions中最小值的求解实验内容:1.按下按键K2,串口打印函数DSP_Min的输出结果实验现象:通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:程序设计:/**********************************************************************************************************