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

article/2025/10/7 13:31:21

完整版教程下载地址: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   总结

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

 


http://chatgpt.dhexx.cn/article/8uaN4ULC.shtml

相关文章

【STM32H7的DSP教程】第11章 DSP基础函数-绝对值,求和,乘法和点乘

完整版教程下载地址:http://www.armbbs.cn/forum.php?modviewthread&tid94547 第11章 DSP基础函数-绝对值,求和,乘法和点乘 本期教程开始学习ARM官方的DSP库,这里我们先从基本数学函数开始。本期教程主要讲绝对值&am…

c++中ifstream和ofstream的详细用法

TITLE:因为不经常用这两个操作,每次用都得找,网上的文章良莠不齐,有时候不容易找到合适的,故将其记录下来,供以后使用方便。 1. fstream fstream提供了三个类,用来实现c对文件的操作。&#x…

C++文件读取ifstream

使用ifstream流来读取文件 说明: 1.ifstream类的对象创建成功的时候会返回非空值,借此判断是否创建文件对象成功 2.ifstream有个函数eof()用来判断文件是否读到尾部,没读到尾部返回false,否则返回true。 若尾部有回车,那么最后一…

C++中读取文件ifstream、ofstream

现在&#xff0c;我想对一个utf-8的json文件进行读写操作。在此过程中&#xff0c;遇到了一些问题。 头文件的添加&#xff1a; #include <iostream> #include <cstring> #include <fstream> #include <sstream> &#xff08;一&#xff09;ifstrea…

C++ 文件读写操作std::ofstream和std::ifstream

文章目录 前言一、文件操作的介绍二、使用步骤1.读文件操作&#xff08;std::ifstream&#xff09;2.写文件操作&#xff08;std::ofstream&#xff09; 前言 例如&#xff1a;随着人工智能的不断发展&#xff0c;机器学习这门技术也越来越重要&#xff0c;很多人都开启了学习…

C++ 中 ifstream读取txt文件内容

文章目录 头文件把txt文件放在当前目录下1、逐行读入文件2、逐个字符读入&#xff08;忽略空格与回车&#xff09;3、逐个字符读入&#xff08;包括空格与回车&#xff09;示例代码 头文件 #include <iostream> #include <fstream> #include <cassert> #inc…

【C++11】文件操作ifstreamofstream

文章目录 文件输入流创建ifstream对象读取文件数据 文件输出流文件流的打开模式创建ofstream对象写入文件数据 文件输入输出示例 文件输入流 创建ifstream对象 使用ifstream类创建ifstream对象&#xff0c;所获取的对象能够像cin一样使用>>运算符从所绑定文件中读取数据…

C++ ifstream eof()的使用

C ifstream eof() 的使用 eof() 的使用方法1 ifstream.eof() 读到文件结束符时返回true。 大家可能有一个误区&#xff0c;认为读到文件结束符就是读到文件的最后一个字符。 其实不然&#xff0c;文件结束符是文件最后一个字符的下一个字符0xFF&#xff0c;eof() 读到文件结束…

C++文件读写详解(ofstream,ifstream,fstream)

在看C编程思想中&#xff0c;每个练习基本都是使用ofstream,ifstream,fstream&#xff0c;以前粗略知道其用法和含义&#xff0c;在看了几位大牛的博文后&#xff0c;进行整理和总结&#xff1a; 这里主要是讨论fstream的内容&#xff1a; #include <fstream>ofstream …

c++输入文件流ifstream用法详解

目录 文章目录 输入流的继承关系&#xff1a;成员函数Public member functions 1&#xff0c; (constructor) 2&#xff0c;ifstream::open 3&#xff0c;ifstream:: is_open 4&#xff0c;ifstream:: close 5&#xff0c;ifstream:: rdbuf 6&#xff0c;ifstream:: operator …

ifstream的使用

fstream提供了三个类&#xff0c;用来实现c对文件的操作。&#xff08;文件的创建、读、写&#xff09;。 ifstream – 从已有的文件读入 ofstream – 向文件写内容 fstream - 打开文件供读写 文件打开模式&#xff1a; ios::in 只读 ios::out 只写 ios::app 从文件末尾开始写&…

c++ 输入文件流ifstream用法详解

文章目录 c 输入文件流ifstream用法详解输入流的继承关系&#xff1a;C 使用标准库类来处理面向流的输入和输出&#xff1a;成员函数Public member functions1. **(constructor)**2. **ifstream::open**3. **ifstream:: is_open**4. **ifstream:: close**5. **ifstream:: rdbuf…

计算机工业控制高职教材,计算机控制技术(21世纪高职高专系列规划教材)

导语 本书以工业控制计算机(IPC)为主线&#xff0c;理论联系实际&#xff0c;突出工程应用&#xff0c;阐述了计算机控制技术及其工程实现方法。全书分为8章&#xff0c;内容包括&#xff1a;计算机控制系统概述&#xff0c;计算机控制过程通道&#xff0c;数字控制技术&#x…

高职高专信息工程学院专业设置

学院全面落实立德树人根本任务,注重实习实训,着力培养德才兼备的技能型信息技术人才。与华为、腾讯、百度、阿里巴巴、新浪、搜狐、网易等多家知名IT企业合作,建成多所紧贴行业前沿的实习实训基地,保证人才培养与企业需求无缝对接。学院现有计算机应用技术、云计算技术应用…

湖北省高职计算机本科学校有哪些,盘点最新湖北十大高职高专院校排名,湖北最好的高职院校有哪些?...

高职高专就是高等职业学院和高等专科学校的简称&#xff0c;是专科(大专)层次的普通高等学校。简单点来说&#xff0c;高职高专院校就是职业技术教育&#xff0c;是职业技术教育的高等阶段。今天小编就来给大家盘点下最新湖北十大高职高专院校排名&#xff0c;湖北最好的高职院…

江西省计算机学会高职高专,我校应邀出席江西省计算机学会高职高专工作委员会成立大会...

8月21日下午&#xff0c;江西省计算机学会高职高专工作委员会成立大会在南昌召开&#xff0c;中国计算机学会职业教育发展委员会、江西省计算机学会、广东省计算机学会高职高专分会、省内相关高职院校领导和企业代表等90余人参加成立大会。我校作为主任委员单位&#xff0c;副校…

武汉高职高专计算机专业分数线,武汉高职高专学校有哪些及分数线

武汉市高职高专众多&#xff0c;其中也包含不少野鸡大学&#xff0c;哪些高职高专是值得2020年高考生选择的正规高校&#xff0c;7月9日教育部官网已公布全国高校名单&#xff0c;其中武汉市有37所公办或民办的高职学校&#xff0c;已整理各高职院校2019年名单及最低录取分数线…

高职高专计算机毕业论文平面设计,高职高专平面设计论文

高职高专平面设计论文 1高职高专平面设计教学的问题 (1)学生学习态度不够端正 随着高校的不断扩招&#xff0c;大学本科的门槛变低&#xff0c;学习不好的学生也可以考上高职高专的&#xff0c;所以很多学生高中学习成绩就不好&#xff0c;基础不扎实&#xff0c;他们一直是态度…

计算机网络 高职,高职高专计算机网络

高职高专计算机网络 1、高职高专院校精品课程现状 从教学方法到教学手段、从教学思想到教学内容、从教材到管理、从教师到学生&#xff0c;计算机网络精品课程建设涉及广泛。然而&#xff0c;要想提升教学质量&#xff0c;就必须紧抓每一个环节。 1.1教学实践比重失衡 在现阶段…

湖北省高职高专计算机专业排名,湖北高职高专学校排名

今天就是高职高专院校填报志愿的日子了&#xff0c;湖北省的高职高专院校有哪些&#xff0c;排名比较靠前的是哪些&#xff0c;大家在填报志愿的时候总是非常迷茫不知道该填报什么专业&#xff0c;下面还给大家推荐了一些该院校的王牌专业&#xff0c;希望能对大家有所帮助。 周…