完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547

第1章   初学数字信号处理准备工作

本期教程开始带领大家学习DSP教程,学习前首先要搞明白一个概念,DSP有两层含义,一个是DSP芯片也就是Digital Signal Processor,另一个是Digital Signal Processing,也就是我们常说的数字信号处理技术。本教程主要讲的是后者。

目录

第1章   初学数字信号处理准备工作

1.1   初学者重要提示

1.2   STM32F4的DSP功能介绍

1.3   Cortex-M4内核的DSP和专业DSP的区别

1.4   ARM提供的CMSIS-DSP库

1.5   TI提供的32位定点DSP库IQmath

1.6   ARM DSP软件替代模拟器件的优势

1.7   Matlab安装

1.8   总结


1.1   初学者重要提示

  1. 关于学习方法问题,可以看附件章节A。
  2. 这几年单片机的性能越来越强劲,DSP芯片的中低端应用基本都可以用单片机来做。
  3. 当前单片机AI也是有一定前景的,ARM一直在大力推进,很多软件厂商和研究机构也在不断的努力。通过此贴可以了解下:单片机AI的春天真的来了,ARM最新DSP库已经支持NEON,且支持Python   http://www.armbbs.cn/forum.php?mod=viewthread&tid=94406 。

1.2   STM32F4的DSP功能介绍

STM32F4是采用的Cortex-M4内核,而DSP功能是内核自带的,下面我们通过M4内核框图来了解下:

重点看如下两个设计单元:

  •   DSP

DSP单元集成了一批专用的指令集(主要是SMID指令和快速MAC乘累加指令),可以加速数字信号处理的执行速度。

  •   FPU

Cortex-M4内核支持单精度浮点,可以大大加速浮点运算的处理速度。

下面是Cortex-M3,M4和M7的指令集爆炸图:

通过这个图,我们可以了解到以下几点:

  • M4和M7系列有相同的DSP指令集。
  • M7相比M4系列要多一些浮点指令集。
  • 同时这里要注意一个小细节,浮点指令都是以字符V开头的。通过这点,我们可以方便的验证是否正确开启了FPU(MDK或者IAR调试状态查看浮点运算对应的反汇编是否有这种指令)。

不同M内核的DSP性能比较:

  • Cortex-M7内核的DSP性能最强。
  • Cortex-M3,M4和M33是中等性能,其中M3最弱。
  • Cortex-M0,M0+和M23性能最弱。

1.3   Cortex-M4内核的DSP和专业DSP的区别

M核的DSP处理单元与专业DSP的区别:

1.4   ARM提供的CMSIS-DSP库

为了方便用户实现DSP功能,ARM专门做一个DSP库CMSIS-DSP,主要包含以下数字信号处理算法:

  • BasicMathFunctions

提供了基本的数据运算,如加减乘除等基本运算,以_f32结尾的函数是浮点运算,以_q8, _q15, _q31,结尾的函数是定点运算,下面是部分API截图:

  • FastMathFunctions

主要提供SIN,COS以及平方根SQRT的运算。

  • ComplexMathFunctions

复杂数学运算,主要是向量,求模等运算。下面是部分API截图:

  • FilteringFunctions

主要是滤波函数,如IIR,FIR,LMS等,下面是部分API截图:

  • MatrixFunctions

主要是矩阵运算。

  • TransformFunctions

变换功能。 包括复数FFT(CFFT),复数FFT逆运算(CIFFT),实数FFT(RFFT),实数 FFT 逆运算,下面是部分API截图:

  • ControllerFunctions

控制功能,主要是PID控制函数和正余弦函数。

  • StatisticsFunctions

统计功能函数,如求平均值,最大值,最小值,功率,RMS等,下面是部分API截图。

  • SupportFunctions

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

  • CommonTables

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

1.5   TI提供的32位定点DSP库IQmath

初次使用这个定点库,感觉在各种Q格式的互转、Q格式数值和浮点数的互转处理上更专业些,让人一目了然。

所以本次教程也会对IQmath的时候做个介绍并配套一个例子。

1.6   ARM DSP软件替代模拟器件的优势

我们日常生活中用到DSP的地方很多,以生活中的设备为例:

通过ARM DSP软件替换模拟组件可以降低成本,PCB的面积和设计时间,同时提高灵活性和适应性。

  • 降低BOM成本

将模拟电路转换为软件的最明显的好处是材料清单成本(BOM)减少。

  • 提高设计灵活性

使用模拟滤波器来不断调节电路以获得最佳性能时,这种情况并不少见。较小的电路板修改会导致新的电气特性突然改变寄生电容或电感,从而导致模拟电路达不到预期。将模拟电路转换为DSP算法不仅可以消除这种风险,还可以根据软件的需要增加调整,且更灵活性。

  • 减少产品尺寸

降低BOM成本具有额外的好处,也允许开发人员减少其产品的尺寸。

  • 缩短设计周期时间

将模拟电路转换为软件有助于缩短设计周期。这有几个原因:

  • 首先,有很多工具可供软件设计人员模拟和生成替换模拟电路所需的DSP算法。这通常比通过电路仿真和测试调整电路所需的时间快得多。
  • 其次,如果需要进行更改,可以在软件中进行更改,这可以在几分钟内完成,而不必重新调整电路板或进行硬件修改。
  • 现场适应性

在某些产品中,设计者很难预料用户在现场所遇到的各种情况。使用DSP算法,设计者甚至用户都可以进行实时调整,以适应现场条件,而无需进行大量硬件修改。

用数字信号处理算法替换模拟电路有很多好处。需要设计者在实际应用中权衡利益,选择最合适的方案。

1.7   Matlab安装

Matlab是学习DSP过程中非常重要的辅助工具,也是需要熟练掌握的,本教程的第2章到第5章进行了入门介绍。

1.8   总结

本期教程主要是做一些入门性的介绍,下期教程将开始实战。

【STM32F407的DSP教程】第1章 初学数字信号处理准备工作相关推荐

  1. 【RTX操作系统教程】第3章 初学RTX操作系统准备工作

    转载来源:http://forum.armfly.com/forum.php?mod=viewthread&tid=16521&highlight=RTX%B2%D9%D7%F7%CF ...

  2. 【STM32F407的DSP教程】第22章 DSP矩阵运算-放缩,乘法和转置矩阵

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第22章       DSP矩阵运算-放缩,乘法和转置矩阵 ...

  3. 【STM32F407的DSP教程】第24章 DSP变换运算-傅里叶变换

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第24章       DSP变换运算-傅里叶变换 本章节开始 ...

  4. 【STM32F407的DSP教程】第18章 DSP控制函数-更好用的SIN,COS计算

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第18章       DSP控制函数-更好用的SIN,COS ...

  5. 【STM32F407的DSP教程】第25章 DSP变换运算-快速傅里叶变换原理(FFT)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第25章       DSP变换运算-快速傅里叶变换原理(F ...

  6. keil编写正弦函数_【STM32F407的DSP教程】第18章 DSP控制函数-更好用的SIN,COS计算...

    第18章       DSP控制函数-更好用的SIN,COS计算 本期教程主要讲解控制函数中的cos和sin函数数值的获取,这里使用的函数比起第13章中使用的sin和cos函数数值的获取要方便很多. ...

  7. 【STM32F407的DSP教程】第37章 STM32F407的FIR低通滤波器实现(支持逐个数据的实时滤波)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第37章       STM32F407的FIR低通滤波器实 ...

  8. 【STM32F407的DSP教程】第27章 FFT的示波器应用

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第27章       FFT的示波器应用 特别声明:本章节内 ...

  9. 【STM32F407的DSP教程】第33章 STM32F407不限制点数FFT实现

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第33章       STM32F407不限制点数FFT实现 ...

  10. 【STM32F407的DSP教程】第48章 STM32F407的中值滤波器实现,适合噪声和脉冲过滤(支持逐个数据的实时滤波)

    完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第48章       STM32F407的中值滤波器实现,适 ...

最新文章

  1. 收藏 | 提高数据处理效率的 Pandas 函数方法
  2. 理解Java中的弱引用(Weak Reference)
  3. handlebars.js {{#if}}中的逻辑运算符是有条件的
  4. java解析nes_Java 读写 excel 实战完全解析
  5. Freemarker入门小案例(生成静态网页的其中一种方式)
  6. 洛谷2051 [AHOI2009]中国象棋
  7. Android Studio 从入门到精通
  8. Resharper 安装以及破解
  9. 第三讲 关系映射反演原则
  10. CV Code | 计算机视觉开源周报 20190701期
  11. 计算机图形学笔记------变换与光栅化的理论知识
  12. 如何设立清晰的可衡量的目标(SMART原则)
  13. 利用ViewItems来管理我们ListView项之间的drag-and-drog
  14. vivo x9s支持html,vivo X9s屏幕材质_vivo X9s屏幕分辨率-太平洋IT百科
  15. 卷积神经网络(CNN)的参数优化方法
  16. 【Linux】LVM的创建及使用
  17. python指纹识别_分享Python编写的网站组件指纹扫描工具.
  18. Vue使用Stompjs接收Activemq的信息
  19. ESP32外壳设计 云图三维:在线SOLIDWORKS 教程
  20. Ubuntu找不到Wi-Fi适配器No Wi-Fi Adapter Found修复笔记

热门文章

  1. MATLAB----小波去噪
  2. 教你怎么学习arcgis软件①
  3. vue 响应式布局组件_今天如何使用响应式Web组件
  4. 胡波外挂做模具3D装配的方法
  5. 五种常用的3D建模方式,各有什么优缺点?
  6. webSSH如何安装?如何使用?解决Web端远程连接终端~~运维篇
  7. MaxToBlende安装详细方法
  8. 7.8 W 字总结!Java 8—Java 10 特性详解
  9. 原来这就是公文写作总结类模板和计划类模板
  10. linux时间转excel,linux时间戳转换【操作模式】