DSP测试实验

一.参考资料:

探索者STM32F4开发板

《STM32F4开发指南-库函数版本》-第52章 DSP测试实验

二.DSP功能介绍

1.DSP功能描述STM32F4除了带有32单精度硬件FPU外,在数字信号处理方面还增加了DSP指令集。

支持诸如单周期乘加指令(MAC),优化的单指令多数据指令(SIMD),饱和算数等多种数字信号处理指令集。

M4执行所有的 DSP指令集都可以在单周期完成,而M3需要多个指令和多个周期才能完成。

Cortex-M4支持SIMD指令集,这在-M3/M0系列是不可用的。

上述表中的指令,有的属于SIMD指令。与硬件乘法器一起工作(MAC),使所有这些指令都能在单个周期内执行。

受益于SIMD指令的支持,Cortex-M4处理器能在单周期内完成高达32×32+6464的运算,为其他任务释放处理器的带宽,而不是被乘法和加法消耗运算资源。比如一个比较复杂的运算:两个16×16乘法加上一个32位加法,如图所示:

以上图片所示的运算,即:SUM = SUM +(AC)+(BD),在STM32F4上面,可以被编译成由一条单周期指令完成。

三.DSP源码库介绍

1.软件包目录:

光盘→8,STM32参考资料→STM32F4xx固件库→STM32F4xx_DSP_StdPeriph_Lib_V1.4.0→Libraries→CMSIS→DSP_Lib

Source文件夹是所有DSP库的源码,Examples文件夹是对应的测试实例。测试实例都是带main函数的,也就是拿到工程中可以直接使用。

2.DSP库介绍BasicMathFunctions

基本数学函数:提供浮点数的各种基本运算函数,如向量加减乘除等运算。

CommonTables

arm_common_tables.c文件提供位翻转或相关参数表。

ComplexMathFunctions

复杂数学功能,如向量处理,求模运算的。

ControllerFunctions

控制功能函数。包括正弦余弦,PID电机控制,矢量Clarke变换,矢量Clarke逆变换等。

FastMathFunctions

快速数学功能函数。提供了一种快速的近似正弦,余弦和平方根等相比CMSIS计算库要快的数学函数。

FilteringFunctions

滤波函数功能,主要为FIR和LMS(最小均方根)等滤波函数。 MatrixFunctions

矩阵处理函数。包括矩阵加法、矩阵初始化、矩阵反、矩阵乘法、矩阵规模、矩阵减法、矩阵转置等函数。StatisticsFunctions

统计功能函数。如求平均值、最大值、最小值、计算均方根RMS、计算方差/标准差等。

SupportFunctions

支持功能函数,如数据拷贝,Q格式和浮点格式相互转换,Q任意格式相互转换。

TransformFunctions

变换功能。包括复数FFT(CFFT)/复数FFT逆运算(CIFFT)、实数FFT(RFFT)/实数FFT逆运算(RIFFT)、和DCT(离散余弦变换)和配套的初始化函数。

对于DSP库源码,代码量很大,ST为我们提了.lib格式的文件,方便使用。这些.lib文件就是由Source文件夹下的源码编译生成的,如果想看某个函数的源码,大家可以在Source文件夹下面查找。

.lib格式文件路径:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0→Libraries→CMSIS→Lib→ARM

总共有8个.lib文件,如下:arm_cortexM0b_math.lib (Cortex-M0大端模式)

arm_cortexM0l_math.lib (Cortex-M0小端模式)

arm_cortexM3b_math.lib (Cortex-M3大端模式)

arm_cortexM3l_math.lib (Cortex-M3小端模式)

arm_cortexM4b_math.lib (Cortex-M4大端模式)

arm_cortexM4bf_math.lib (Cortex-M4小端模式)

arm_cortexM4l_math.lib (浮点Cortex-M4大端模式)

arm_cortexM4lf_math.lib (浮点Cortex-M4小端模式)

我们得根据所用MCU内核类型以及端模式来选择符合要求的.lib文件,本章我们所用的STM32F4属于CortexM4F内核,小端模式,应选择:arm_cortexM4lf_math.lib(浮点Cortex-M4小端模式)。

四. DSP库运行环境搭建

1.DSP库运行环境搭建步骤

(1)添加文件

Include文件夹,是直接拷贝:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0→Libraries→CMSIS→Include

(2)添加arm_cortexM4lf_math.lib文件到工程,并把include文件夹包含到path。

2.添加全局宏定义

为了使用DSP库的所有功能,我们还需要添加几个全局宏定义:1.__FPU_USED :这个如果在MDK中开启了,就不需要再填

2.__FPU_PRESENT :这个在stm32f4xx.h默认开启,可以不填

3.ARM_MATH_CM4

4.__CC_ARM

5.ARM_MATH_MATRIX_CHECK

6.ARM_MATH_ROUNDING

在Define处要输入的所有宏为:STM32F40_41xxx,USE_STDPERIPH_DRIVER,ARM_MATH_CM4,__CC_ARM,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING

五.DSP库测试

1.DSP库测试实例介绍

$$

sin(x)2+cos(x)2=1

$$

MDK的标准库(math.h)提供我们:sin、cos、sinf和cosf等4个函数,带f的表示单精度浮点型运算,即float型,而不带f的表示双精度浮点型,即double。

STM32F4的DSP库,则提供我们另外两个函数:arm_sin_f32和arm_cos_f32(注意:需要添加:arm_math.h头文件才可使用!!!),这两个函数也是单精度浮点型的,用法同sinf和cosf一模一样。

本例程测试:

arm_sin_f32 & arm_cos_f32 和 sinf&cosf 的速度差别。

DSP软件测试用例,DSP测试实验相关推荐

  1. 软件质量保证与测试实验(实验三.逻辑覆盖测试用例设计)

    软件质量保证与测试.实验三.逻辑覆盖测试用例设计 0 目录 1 逻辑覆盖测试用例设计 1.1 逻辑覆盖测试用例设计 1.1.1 实验目的 1.1.2 实验预习 1.1.3 实验内容及要求 1.1.4 ...

  2. 软件质量保证与测试 实验一:白盒测试用例设计 实验报告,白盒测试和黑盒测试实验报告.doc...

    文档介绍: 白盒测试和黑盒测试实验报告软件质量保证与测试实验指导计算机工程学院测试环境配置settingJunit(1)startEclipseSelectwindows-preferences-ja ...

  3. DSP软件测试用例,DSP汇编语言软件测试方法研究.doc

    DSP汇编语言软件测试方法研究 摘要:该文深入分析了DSP汇编语言软件的测试难点,给出DSP汇编语言软件的测试策略,对DSP汇编语言软件测试具有重要的应用意义. 关键词:DSP:汇编语言:测试 中图分 ...

  4. 软件质量保证与测试 实验一:白盒测试用例设计 实验报告,白盒测试和黑盒测试实验报告...

    白盒测试和黑盒测试实验报告 (24页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 软件质量保证与测试实验指导计算机工程学院测试环境配置1 ...

  5. 软件质量保证与测试 实验一:白盒测试用例设计 实验报告,软件质量保证与测试实验报告...

    <软件质量保证与测试>实验报告 实验一 白盒测试技术 (实验日期:12(2)11(3)班9月22日-9月29日) (实验日期:12(1)班9月23日-9月30日) 一.实验目的 1. 熟练 ...

  6. 年月日软件测试用例的设计,实验三日期题白盒测试用例设计.doc

    实验三日期题白盒测试用例设计 日期问题白盒测试用例的设计(实验时间2012.3.21) 一.实验目的 1.熟练掌握如何运用基路径测试方法进行测试用例设计. 二.实验内容 1.题目 前一日函数PreDa ...

  7. 软件质量保证与测试 实验十一:AutoIt的使用

    目录 实验概述 实验内容 1. 下载安装AutoIT. 2. 测试win系统自带计算器程序, 2+4=6,是否正确? 写出Script.(小提示:使用WinGetText获得输出) 3.测试win系统 ...

  8. 手机软件测试用例设计

    实例讲解手机软件测试用例设计 实例讲解手机软件测试用例设计,测试伴随在整个手机软件开发的各个阶段中,测试质量的高低直接关系到手机软件的可用性,友好性,可靠性.可以说,测试环节是手机软件开发的重要环节, ...

  9. 【正点原子STM32连载】第五十三章 DSP测试实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  10. 月薪20k-50k| 西人马3D机器视觉算法、语音识别、DSP软件工程师招聘

    3D视觉工坊致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁.如果你需要我们帮助你发布实习或全职岗位,请添加微信号「CV_LAB」. 公司简介: 西人马FATRI是一 ...

最新文章

  1. 从短句到长文,计算机如何学习阅读理解
  2. mysql主从同步表结构_mysql主从同步的结构模式
  3. python文档字符串格式_Python字符串及文本模式方法详解
  4. python和c先学哪个-初学者python和c语言先学哪个好呢?
  5. SpringBoot中级篇-打包-第三方jar包
  6. 匹夫细说C#:从园友留言到动手实现C#虚函数机制
  7. 苹方字体 for linux,苹果苹方字体/苹方黑体全套完整版下载(ttf版)
  8. 天龙八部3新扫地僧辅助 全功能专业刷马贼脚本功能介绍
  9. php怎么启动服务,如何打开php服务
  10. tensorflow ckpt模型转saved_model格式并进行模型预测
  11. 互联网应用基础第五课:互联网即时通讯工具之QQ和微信的使用、淘宝客理解
  12. JVM 精华知识点汇总
  13. 2021年挖掘猫眼专业版电影票房数据
  14. 5、bam格式转为bigwig格式
  15. [Spring Boot]Druid datasource整合及配置
  16. 20220312纪中集训总结
  17. 抵抗不了“刷礼物”的诱惑,下架的斗鱼要上市有点难
  18. 解决GitLab 上传头像不显示的问题
  19. 计算机网络之应用层-Internet电子邮件
  20. 科学狂人伊隆·马斯克:到了火星,我们住哪儿?

热门文章

  1. Java多线程学习(吐血超详细总结)
  2. 数据分析-用python分析中国五大城市的PM2.5值(ols建立回归模型)
  3. Linux(二、三、四)简单命令、系统目录结构、文件类型、命令行管理文件学习
  4. android dropbox目录,通过Android上传文件到Dropbox文件夹
  5. 刨根究底字符编码之一——关键术语解释(上)
  6. LDO稳压芯片-内部框图及选型参数
  7. 用c++写bilibili番剧抢楼程序
  8. Android利用NotificationListenerService实现消息盒子功能
  9. 聚宽-彼得·林奇的成功投资策略
  10. 使用Photoshop制作证件照