第18章ARM官方DSP库的ComplexMathFunctions的使用教程(二)

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

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

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

资源描述

安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第11页页共共1111页页第第1188章章CCoommpplleexxMMaatthhFFuunnccttiioonnss的的使使用用((二二))本期教程主要讲解复数运算中的模平方,复数乘法和复数乘实数的求解。18.1复数模平方ComplexMagSquared18.2复数乘法ComplexMultComplex18.3复数乘实数ComplexMultComplex18.4总结1188..11复复数数模模平平方方CCoommpplleexxMMaaggSSqquuaarreedd1188..11..11aarrmm__ccmmppllxx__mmaagg__ssqquuaarreedd__ff3322公式描述:for(n=0;nnumSamples;n++){pDst[n]=pSrc[(2*n)+0]^2+pSrc[(2*n)+1]^2;}函数定义如下:voidarm_cmplx_mag_squared_f32(float32_t*pSrc,float32_t*pDst,uint32_tnumSamples)参数定义:[in]*pSrcpointstothecomplexinputvector[out]*pDstpointstotherealoutputvector[in]numSamplesnumberofcomplexsamplesintheinputvector注意事项:1.数组pSrc和pDst中存储的数据格式是(实部,虚部,实部,虚部……………)1188..11..22aarrmm__ccmmppllxx__mmaagg__ssqquuaarreedd__qq3311公式描述:for(n=0;nnumSamples;n++){pDst[n]=pSrc[(2*n)+0]^2+pSrc[(2*n)+1]^2;}函数定义如下:voidarm_cmplx_mag_squared_q31(q31_t*pSrc,q31_t*pDst,uint32_tnumSamples)安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第22页页共共1111页页参数定义:[in]*pSrcpointstothecomplexinputvector[out]*pDstpointstotherealoutputvector[in]numSamplesnumberofcomplexsamplesintheinputvector注意事项:1.数组pSrc和pDst中存储的数据格式是(实部,虚部,实部,虚部……………)1188..11..33aarrmm__ccmmppllxx__mmaagg__ssqquuaarreedd__qq1155公式描述:for(n=0;nnumSamples;n++){pDst[n]=pSrc[(2*n)+0]^2+pSrc[(2*n)+1]^2;}函数定义如下:voidarm_cmplx_mag_squared_q15(q15_t*pSrc,q15_t*pDst,uint32_tnumSamples)参数定义:[in]*pSrcpointstothecomplexinputvector[out]*pDstpointstotherealoutputvector[in]numSamplesnumberofcomplexsamplesintheinputvector注意事项:1.数组pSrc和pDst中存储的数据格式是(实部,虚部,实部,虚部……………)1188..11..44实实例例讲讲解解实验目的:1.学习ComplexMathFunctions中模平方的求解实验内容:1.按下按键K1,串口打印函数DSP_MagSquared的输出结果实验现象:通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第33页页共共1111页页程序设计:/***********************************************************************************************************函数名:DSP_MagSquared*功能说明:复数模的平方*形参:无*返回值:无**********************************************************************************************************/staticvoidDSP_MagSquared(void){uint8_ti;float32_tpSrc[10]={1.1f,1.1f,2.1f,2.1f,3.1f,3.1f,4.1f,4.1f,5.1f,5.1f};float32_tpDst[10];q31_tpSrc1[10]={1*268435456,1*268435456,2*268435456,2*268435456,3*268435456,3*268435456,4*268435456,4*268435456,5*268435456,5*268435456};q31_tpDst1[10];q15_tpSrc2[10]={5000,10000,15000,20000,25000,5000,10000,15000,20000,25000};q15_tpDst2[10];/***浮点数模平方*******************************************************************************/arm_cmplx_mag_squared_f32(pSrc,pDst,5);for(i=0;i5;i++){安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第44页页共共1111页页printf(pDst[%d]=%f\r\n,i,pDst[i]);}/***定点数模平方Q31*******************************************************************************/arm_cmplx_mag_squared_q31(pSrc1,pDst1,5);for(i=0;i5;i++){printf(pDst1[%d]=%d\r\n,i,pDst1[i]);}/***定点数模平方Q15*******************************************************************************/arm_cmplx_mag_squared_q15(pSrc2,pDst2,5);for(i=0;i5;i++){printf(pDst2[%d]=%d\r\n,i,pDst2[i]);}}1188..22复复数数乘乘法法CCoommpplleexxMMuullttCCoommpplleexx1188..22..22aarrmm__ccmmppllxx__mmuulltt__ccmmppllxx__ff3322公式描述:for(n=0;nnumSamples;n++){pDst[(2*n)+0]=pSrcA[(2*n)+0]*pSrcB[(2*n)+0]-pSrcA[(2*n)+1]*pSrcB[(2*n)+1];pDst[(2*n)+1]=pSrcA[(2*n)+0]*pSrcB[(2*n)+1]+pSrcA[(2*n)+1]*pSrcB[(2*n)+0];}函数定义如下:voidarm_cmplx_mult_cmplx_f32(float32_t*pSrcA,float32_t*pSrcB,float32_t*pDst,uint32_tnumSamples)参数定义:[in]*pSrcApointstothefirstinputvector[in]*pSrcBpointstothesecondinputvector[out]*pDstpointstotheoutputvector[in]numSamplesnumberofcomplexsamplesineachvector注意事项:1.数组pSrcA,pSrcB和pDst中存储的数据格式是(实部,虚部,实部,虚部……………)1188..22..33aarrmm__ccmmppllxx__mmuulltt__ccmmppllxx__qq3311公式描述:for(n=0;nnumSamples;n++){安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第55页页共共1111页页pDst[(2*n)+0]=pSrcA[(2*n)+0]*pSrcB[(2*n)+0]-pSrcA[(2*n)+1]*pSrcB[(2*n)+1];pDst[(2*n)+1]=pSrcA[(2*n)+0]*pSrcB[(2*n)+1]+pSrcA[(2*n)+1]*pSrcB[(2*n)+0];}函数定义如下:voidarm_cmplx_mult_cmplx_q31(q31_t*pSrcA,q31_t*pSrcB,q31_t*pDst,uint32_tnumSamples)参数定义:[in]*pSrcpointstothecomplexinputvector[out]*pDstpointstotherealoutputvector[in]numSamplesnumberofcomplexsamplesintheinputvector注意事项:1.数组pSrcA,pSrcB和pDst中存储的数据格式是(实部,虚部,实部,虚部……………)1188..22..44aarrmm__ccmmppllxx__mmuulltt__ccmmppllxx__qq1155公式描述:for(n=0;nnumSamples;n++){pDst[(2*n)+0]=pSrcA[(2*n)+0]*pSrcB[(2*n)+0]-pSrcA[(2*n)+1]*pSrcB[(2*n)+1];pDst[(2*n)+1]=pSrcA[(2*n)+0]*pSrcB[(2*n)+1]+pSrcA[(2*n)+1]*pSrcB[(2*n)+0];}函数定义如下:voidarm_cmplx_mult_cmplx_q15(q15_t*pSrcA,q15_t*pSrcB,q15_t*pDst,uint32_tnumSamples)参数定义:[in]*pSrcpointstothecomplexinputvector[out]*pDstpointstotherealoutputvector[in]numSamplesnumberofcomplexsamplesintheinputvector注意事项:1.数组pSrcA,pSrcB和pDst中存储的数据格式是(实部,虚部,实部,虚部……………)安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第66页页共共1

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

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

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

×
保存成功