第10章arm官方dsp库的fastmathfunctions的使用

第10章arm官方dsp库的fastmathfunctions的使用

ID:34048898

大小:554.89 KB

页数:11页

时间:2019-03-03

第10章arm官方dsp库的fastmathfunctions的使用_第1页
第10章arm官方dsp库的fastmathfunctions的使用_第2页
第10章arm官方dsp库的fastmathfunctions的使用_第3页
第10章arm官方dsp库的fastmathfunctions的使用_第4页
第10章arm官方dsp库的fastmathfunctions的使用_第5页
资源描述:

《第10章arm官方dsp库的fastmathfunctions的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、安富莱UM403DSP教程STM32-V5开发板系统篇手册第10章FastMathFunctions的使用本期教程开始,我们将不再专门的分析DSP函数的源码,主要是有些DSP函数的公式分析较麻烦,有兴趣的同学可以自行研究,本期教程开始主要讲解函数如何使用。10.1三角函数Cosine10.2三角函数Sine10.3平方根Sqrt10.4实例讲解(Matlab验证)10.5总结10.1三角函数Cosine三角函数cosine的计算是通过查表并配合三次插补实现的。具体的实现方法大家可以查阅相关资料进行了解

2、。10.1.1arm_cos_f32此函数的使用比较简单,函数定义如下:float32_tarm_cos_f32(float32_tx)注意输入参数x是弧度制即可,也就是说cos函数的一个周期对应于弧度[02*PI)。下面我们先通过Matlab绘制一个周期的cos曲线。新建一个.m格式的脚本文件,并写入如下函数:x=0:0.01:2*pi;plot(x,cos(x))运行后显示效果如下:2015年01月15日版本:1.0第1页共11页安富莱UM403DSP教程STM32-V5开发板系统篇手册点击上面截

3、图中的Tools->Datastatistics,获取数据的分析结果,我们主要看Y轴。最大值和最小值分别对应1和-1,这个与我们所学的理论知识是相符的。10.1.2arm_cos_q31函数定义如下:q31_tarm_cos_q31(q31_tx)使用中只需注意参数x的数值范围[02^31)相当于弧度[02*PI)即可。10.1.3arm_cos_q15函数定义如下:q31_tarm_cos_q15(q15_tx)使用中只需注意参数x的数值范围[02^15)相当于弧度[02*PI)即可。2015年01

4、月15日版本:1.0第2页共11页安富莱UM403DSP教程STM32-V5开发板系统篇手册10.2三角函数Sine三角函数sine的计算是通过查表并配合三次插补实现的。具体的实现方法大家可以查阅相关资料进行了解。10.2.1arm_sine_f32此函数的使用比较简单,函数定义如下:float32_tarm_sin_f32(float32_tx)注意输入参数x是弧度制即可,也就是说sine函数的一个周期对应于弧度[02*PI)。下面我们先通过Matlab绘制一个周期的sine曲线。新建一个.m格式的

5、脚本文件,并写入如下函数:x=0:0.01:2*pi;plot(x,sine(x))运行后显示效果如下:点击上面截图中的Tools->Datastatistics,获取数据的分析结果,我们主要看Y轴。2015年01月15日版本:1.0第3页共11页安富莱UM403DSP教程STM32-V5开发板系统篇手册最大值和最小值分别对应1和-1,这个与我们所学的理论知识是相符的。10.2.2arm_sin_q31函数定义如下:q31_tarm_sin_q31(q31_tx)使用中只需注意参数x的数值范围[02^

6、31)相当于弧度[02*PI)即可。10.2.3arm_sin_q15函数定义如下:q31_tarm_sin_q15(q15_tx)使用中只需注意参数x的数值范围[02^15)相当于弧度[02*PI)即可。10.3平方根sqrt浮点数的平方根计算只需调用一条浮点指令即可,而定点数的计算要稍显麻烦。10.3.1arm_sqrt_f32对于CM4带FPU的处理器来说,浮点数的平方根求解很简单,只需调用指令__sqrtf,仅需要14个时钟周期就可以完成。函数定义如下(在arm_math.h里面):stati

7、c__INLINEarm_statusarm_sqrt_f32(float32_tin,float32_t*pOut)10.3.2arm_sqrt_q31函数的定义如下:arm_statusarm_sqrt_q31(q31_tin,q31_t*pOut)这里in的输入范围是0x00000000到0x7FFFFFFF,转化成浮点数范围就是[0+1)。在使用这个函数的时候有一点要特别的注意,比如我们要求1000的平方根,而获得结果是1465429,这是为什么呢,分析如下:2015年01月15日版本:1.0

8、第4页共11页安富莱UM403DSP教程STM32-V5开发板系统篇手册定点数1000=浮点数1000/(2^31)=4.6566e-07(用Q31表示)。对4.6566e-07求平方根可得6.8239e-04。定点数1465429=浮点数1465429/(2^31)=6.8239e-04。简单的总结下上面的意思就是说,求定点数1000的平方根,实际是求浮点数4.6566e-07(用Q31表示)的平方根。10.3.3arm_sqrt_q15函数的定义如下

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。