DSP-定点和浮点数格式
DSP原理与应用(张卫宁)课后习题答案
word格式-可编辑-感谢下载支持
第一章:
1、数字信号处理的实现方法一般有哪几种?
答:数字信号处理的实现是用硬件软件或软硬结合的方法来实现各种算法。
(1) 在通用的计算机上用软件实现;(2) 在通用计算机系统中加上专用的加速处理机实现;(3) 用通用的单片机实现,这种方法可用于一些不太复杂的数字信号处理,如数字控制;(4) 用通用的可编程DSP芯片实现。与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法;(5) 用专用的DSP芯片实现。在一些特殊的场合,要求的信号处理速度极高,用通用DSP芯片很难实现(6)用基于通用dsp核的asic芯片实现。
2、简单的叙述一下dsp芯片的发展概况?
答:第一阶段,DSP的雏形阶段(1980年前后)。代表产品:S2811。主要用途:军事或航空航天部门。第二阶段,DSP的成熟阶段(1990年前后)。 代表产品:TI公司的TMS320C20
主要用途:通信、计算机领域。第三阶段,DSP的完善阶段(2000年以后)。 代表产品:TI公司的TMS320C54主要用途:各个行业领域。
3、可编程dsp芯片有哪些特点?
答:1、采用哈佛结构(1)冯。诺依曼结构,(2)哈佛结构(3)改进型哈佛结构2、采用多总线结构3.采用流水线技术4、配有专用的硬件乘法-累加器5、具有特殊的dsp指令6、快速的指令周期7、硬件配置强8、支持多处理器结构9、省电管理和低功耗
4、什么是哈佛结构和冯。诺依曼结构?它们有什么区别?
答:哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。冯。诺依曼结构:该结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。区别:哈佛:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。冯:当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。
14_DSP技术原理及应用教程_课后答案
1 .1 数字信号处理器与一般通用计算机和单片机的主要差别有哪些?
答:在通用的计算机上用软件实现 该方法速度太慢, 适于算法仿真;
在通用计算机系统上加上专用的加速处理机实现 该方法专用性较强,应用受限制,且不便于系统的独立运行;
用通用的单片机实现这种方式多用于一些不太复杂的数字信号处理,如简单的PID控制算法;
用通用的可编程DSP芯片实现 与单片机相比,DSP芯片具有更加适合于数字信号处理的软件及硬件资源,可用于复杂的数字信号处理算法;
用专用的DSP芯片实现在一些特殊场合, 要求信号处理速度极高, 用通用的DSP 芯片很难实现,而专用的DSP 芯片可以将相应的信号处理算法在芯片内部用硬件实现,不需要编程。
1 .4 什么是冯·诺埃曼结构计算机, 什么是哈佛结构计算机, 二者的特点是什么?
答:冯.诺曼结构:将指令、数据存储在同一个存储器中,统一编址,译稿指令计数器提供的地址来区分是指令还是数据。取指令和取数据都访问统一存储器,数据吞吐率低。
哈佛结构:程序和数据存储在不同的存储空间,程序存储空间和数据存储空间是两个相互独立的存储空间,每个存储空间独立编址,独立访问。
1 .8 DSP的工作电压越来越低,内核电压已低至1V,这样做有何意义?为什么DSP内核工作电压和I/O工作电压不一样?
答:集成电路速度越来越快,随之而来,功耗越来越大,这样散热就是很大的问题.在芯片走线尺寸不变的情况下,内部阻抗也不变,降低工作电压会降低功耗,这样能再较高频率下芯片发热较少。
内核不容易受到外部干扰,所以电压可以做的较低,但IO容易受外部信号干扰,保持较高电压容易是器件工作稳定,这是功耗和稳定性的折中。
1 .10 定点DSP和浮点DSP有什么区别?在具体应用中, 应如何选择?
答:在浮点DSP中,数据即可以表示成整数,也可以表示成浮点数。浮点数在运算中,表示数的范围由于其指数可自动调节,因此可避免数的规格化和溢出等问题。但浮点DSP 一般比定点DSP 复杂, 成本也较高。
Q15格式说明
今天看Pic的逆变器程序,看到采集后的ADBUF数据全部都是《5,这就搞不明白了,为什么要左移5呀?然后看到上面说是兼容Q15,在QQ群里也问了高手,说是用于DSP小数运算,于是在网上找了下Q15的定义,下面把Q15整理下。
许多DSP都是定点DSP,处理定点数据会相当快,但是处理浮点数据就会非常慢。可以利用Q格式进行浮点数据到定点的转化,节约CPU时间。实际应用中,浮点运算大都时候都是既有整数部分,也有小数部分的。所以要选择一个适当的定标格式才能更好的处理运算。
Q格式表示为:,表示数据用m比特表示整数部分,n比特表示小数部分,共需要m+n+1位来表示这个数据,多余的一位用作符合位。假设小数点在n位的左边(从右向左数),从而确定小数的精度
例如Q15表示小数部分有15位,一个short型数据,占2个字节,最高位是符号位,后面15位是小数位,就假设小数点在第15位左边,表示的范围是:-1
浮点数据转化为Q15,将数据乘以2^15;Q15数据转化为浮点数据,将数据除以2^15。
例如:假设数据存储空间为2个字节,×2^15=10911=0x2A9F,的所有运算就可以用0x2A9F表示,同理10911×2^(-15)=,可以看出浮点数据通过Q格式转化后是有误差的。
例:两个小数相乘,*=
*2^15=10911=0x2A9F,*2^15=13565=0x34FD
short a = 0x2A9F;
short b = 0x34FD;
short c = a * b >> 15; ..和实际结果差距不大。或者0x11A4 / 2^15 = 0.
Q格式的运算
1> 定点加减法:须转换成相同的Q格式才能加减
2> 定点乘法:不同Q格式的数据相乘,相当于Q值相加,即Q15数据乘以Q10数据后的结果是Q25格式的数据
3> 定点除法:不同Q格式的数据相除,相当于Q值相减
一种新的定点DSP Q格式数乘法运算方法
一种新的定点DSPQ格式数乘法运算方法
陈在平孟敬
(天津理工大学自动化学院天津300191)
摘要TI公司最新推出了32位定点DSPTMS320F2812,并提出一种将浮点数转换成为Q格式定标整型数进行运算的算法,解决了定点DSP无法直接处理浮点数的问题,提高了DSP运算
的速度.通常使用QO和Q15格式,但Q15格式数据阋的乘法运算极容易发生结果溢出的问题,使得运算结果不准确.本文针对此问题提出一种新的Q15乘法运算算法,该算法从根本上解决了Q15格式整型数相乘结果溢出的问题.
关键词:定点DSPQ格式结果溢出
ANewComputeMethodofQFormatMultiplicationinFixPointDSP
ChenZaipingMengJing(TianjinUniversityofTechnologyTianjin300191)
AbstractTMS320F2812isanew32-bitnxpointDSPofTexasInstrumentIncorporated.TI
incorporatedgivesQformatcomputealgorithm,insteadoffloatingpointnumbersdirectcompute.ThismethodsolvetheproblemthatfixDSPcannotprocessfloatingpointnumbersdirectly,andincreasethe
rateofDSPcompute.Q0andQ15formatnumbersisusedusually.Thecomputeresultoverflow
problemoftenhappeninthemutiplicationofQ15formatnumbers,andthisproblemloadtothe
inaceuratenessofcomputeresult.Tosolvethisproblem,thispapargivesanewmethodofQ15format
《DSP原理及应用(修订版)》邹彦主编课后答案(个人终极修订版)
______________________________________________________________________________________________________________
-可编辑修改- 第一章
1、数字信号处理实现方法一般有几种?答:课本P2(2.数字信号处理实现)
2、简要地叙述DSP芯片的发展概况。答:课本P2(1.2.1 DSP芯片的发展概况)
3、可编程DSP芯片有哪些特点?答:课本P3(1.2.2 DSP芯片的特点)
4、什么是哈佛结构和冯诺依曼结构?他们有什么区别?答:课本P3-P4(1.采用哈佛结构)
5、什么是流水线技术?答:课本P5(3.采用流水线技术)
6、什么是定点DSP芯片和浮点DSP芯片?它们各有什么优缺点?
答:定点DSP芯片按照定点的数据格式进行工作,其数据长度通常为16位、24位、32位。
定点DSP的特点:体积小、成本低、功耗小、对存储器的要求不高;但数值表示范围较窄,必须使用定点定标的方法,并要防止结果的溢出。
浮点DSP芯片按照浮点的数据格式进行工作,其数据长度通常为32位、40位。
由于浮点数的数据表示动态范围宽,运算中不必顾及小数点的位置,因此开发较容易。但它的硬件结构相对复杂、功耗较大,且比定点DSP芯片的价格高。通常,浮点DSP芯片使用在对数据动态范围和精度要求较高的系统中。
7、DSP技术发展趋势主要体现在哪些方面?答:课本P9(3.DSP发展技术趋势)
8、简述DSP系统的构成和工作过程。答:课本P10(1.3.1DSP系统的构成)
9、简述DSP系统的设计步骤。答:课本P12(1.3.3DSP系统的设计过程)
10、DSP系统有哪些特点?答:课本P11(1.3.2DSP系统的特点)
11、在进行DSP系统设计时,应如何选择合理的DSP芯片?答:课本P13(1.3.4DSP芯片的选择)
12、TMS320VC5416-160的指令周期是多少毫秒?它的运算速度是多少MIPS?
dsp基本知识
DSP 基本知识
引 言
TI公司在1982年成功推出其第一代DSP芯片之后,相继推出了多种适合不同应用、不同规格的DSP系列。TMS320F240x DSP是为了满足控制应用而设计的,属于TMS320C2xx系列。通过把一个高性能的DSP内核和微处理器的片内外部设备集成在一个芯片的方案,TMS320LF240x DSP成为传统微控制器和昂贵的多片设计的一种廉价替代产品。3OMIPS的处理速度,使TMS320IF240x DSP可以远远超过传统的16位微控制器和微处理器的性能。笔者曾用该系列芯片中的TMS320F2406开发过电动执行机构,得到了满意的结果。结合自己的开发经验,笔者简要介绍TMS320LF240xDSP的硬件结构、C程序开发过程中若干关键的问题。其中很多包括笔者的心得和体会。
1 TMS320LF240X DSP硬件结构特点
TMS320LF240x DSP有以下一些特点:采用高性能静态CMOS技术,使得供电电压降为3.3V,减少了功耗;基于TMS320C2xxDSP的CPU核,保证与TMS320系列DSP代码兼容;片内有高达32K字的Flash程序存储器,544字的双口RAM(DARAM)和2K字的单口RAM(SARAM);两个事件管理器模块EVA和EVB,适用于控制各类电机;看门狗定时器模块(WDT);控制器局域网络(CAN)2.0B模块;串行通信接口(SCI)模块;16位的串行外设接口(SPI)模块;JTAG接口,使得在系统编程(ISP,)很容易实现;10位A/D转换器最小的转换时间为500ns,可选择由两个事件管理器来触发2个8通道输入A/D转换器或1个16通道输入A/D转换器,而每次要转换的通道都可通过编程来选择。需要说明的是,TMS320LF240x DSF是定点l6位芯片,存储数据的最小单位是16位的字,每个地址(包括程序地址、数据地址及I/O地址)所存的数据都是16位。
DSP实验报告_百度文库(精)
实验0 实验设备安装才CCS调试环境
实验目的:
按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。
实验步骤:
以演示实验一为例:
1. 使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源;
2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load
Program”装载debug目录下的程序sinewave.out;
3. 打开源文件exer3.asm,在注释行“set breakpoint
in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle
breakpoint”加入红色的断点,如下图所示;
4. 点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框
5. 双击Start Address,将其改为y0;双击Acquisition Buffer
Size,将其改为1;DSP Data Type设置成16-bit signed integer,如下图所示;
6. 点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察
7. 点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果:
心得体会: 通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。
实验二 基本算数运算
DSP
DSP
考核成绩构成:平时作业考勤(15%)+实验(25%)+期末考试(60%)
绪论(2学时)
考核内容:
1、 数字信号处理概述
2、 DSP芯片的特点
3、 DSP系统概念
考核要求:理解DSP芯片结构特点为什么适合数字信号处理;了解DSP系统的基本组成
第一章 TMS320C54X的结构原理(12学时)
考核内容:
1、 TMS320C54X DSP芯片基本结构
2、 内部多总线结构
3、 存储器空间配置
4、 中央处理单元
5、 数据寻址方式
6、 程序存储器地址生成方式
7、 在片外围电路应用(I/O口、定时器、时钟发生器)
8、 外部总线
考核要求:掌握TMS320C54X芯片的基本结构,理解DSP与单片机的区别,加深理解DSP适合数字信号处理的特点;掌握数据寻址方式,掌握片上基本外设(定时器、时钟发生器等)的配置与应用
第二章 TMS320C54XX指令系统
考核内容:
1、 指令表示方法
2、 TMS320C54X汇编语言指令系统
考核要求:掌握DSP常见汇编指令及伪指令的使用
第三章 汇编语言程序开发
考核内容:
1、 TMS320C54X 软件开发过程
2、汇编语言程序的编写方法
3、COFF的一般概念
4、汇编
5、链接
考核要求:了解DSP软件开发过程以及汇编语言编程方法,掌握COFF的概念,能根据目标DSP系统的配置编写.CMD文件
第四章 CCS集成开发工具使用方法
考核内容:
1、CCS使用初步
2、DSP 的C语言开发基础
3、CCS应用举例 考核要求:了解DSP开发平台基本操作与程序调试方法,掌握采用C语言进行DSP应用程序开发基础,了解基于DSP开发平台CCS进行DSP开发的软件架构。
第五章 TMS320C54XX汇编语言程序设计
考核内容:
1、堆栈的使用方法
2、控制程序
3、算术运算程序
Q格式定标
十进制数范围
最小数
0Q7S1.7-1
1Q6S2.6-2
2Q5S3.5-4
3Q4S4.4-8
4Q3S5.3-16
5Q2S6.2-32
6Q1S7.1-64
7Q0S8.0-128
十进制数范围
最小数
0Q15S1.15-1
1Q14S2.14-2
2Q13S3.13-4
3Q12S4.12-8
4Q11S5.11-16
5Q10S6.10-32
6Q9S7.9-64
7Q8S8.8-128
8Q7S9.7-256
9Q6S10.6-512
10Q5S11.5-1024
11Q4S12.4-2048
12Q3S13.3-4096
13Q2S14.2-8192
14Q1S15.1-16384
15Q0S16.0-32768Q表示
Q表示S表示
S表示Q格式:通俗的讲就是将一个小数放大若干倍后,用整
又有16位Q格式和32位Q格式,其中16位Q格式的库为,32位Q格式的库为。那个字母
可以理解为增强型Increase,即32DSP是16位DSP的增强型,然后32位的就用IQ表示。
为什么要用到Q格式?因为CPU是定点微处理器时不能直接处理小数,C语言中的自动调用运行时的函数来
的差别,用户的编程工作量最少,但是编译出来的代码很庞大,在嵌入式应用中很多情况下,float型几
Q格式定标法:通过假定小数点位于二进制位中某位的右侧,从而确定小数的精度。Q0:小数点在第0位
0~14位都是小数位。
※Q格式:小数点位于第 n 位元之右侧,称为Qn 格式。例如;16位元二进位数:0100 0010 1000 0001
à在Q0格式下其表示的是:2^14+2^9+2^7+2^0=17025(d);à在Q8格式下其表示的是:2^6+2^1+2^-1+2^-8
16=0.25978~(d)
整数定标本质上并不复杂,简单地说,就是通过假定小数点位于哪一位。从而确定小数精度。实际应用
以要选择一个适当的定标格式才能更好的处理运算。DSP定点运算处理器运算浮点数时,对浮点数转换为
度限制,下表详细记录了Q格式的取值和精度。
深度学习中神经网络模型的量化
深度学习中神经⽹络模型的量化
深度学习神经⽹络模型中的量化是指浮点数⽤定点数来表⽰,也就是在DSP技术中常说的Q格式。我在以前的⽂章()中简单讲过Q格式,
⽹上也有很多讲Q格式的,这⾥就不细讲了。神经⽹络模型在训练时都是浮点运算的,得到的模型参数也是浮点的。通常模型参数较多,在inference时也有⾮常多的乘累加运算。如果处理器的算⼒有限,在inference时⽤浮点运算将导致CPU load很⾼,极⼤影响性能。⽽且通常
⼀个参数⽤浮点数表⽰占四个字节,⽽如果⽤8⽐特量化的话,⼀个参数只占⼀个字节,memory得到了极⼤的节约,在memory紧张的处理
器上尤为重要。所以通常都要对神经⽹络模型进⾏量化,来降低CPU load和节省memory。由于特征数据(⽐如智能语⾳中的MFCC数据)
在送⼊模型前基本都做了归⼀化处理,值都压缩到了【-1,1】的范围内,所以现在主流的都是⽤8⽐特来量化。下表是⽤8⽐特来量化的各种Q格式的值的取值范围。
模型的量化可分为训练中量化和训练后量化,还可分为对称量化和⾮对称量化。我们⽤的是训练后对称量化,即先训练好⽤浮点表⽰的模型
参数等,然后再去量化,量化某类值(⽐如weight)时看其绝对值的最⼤值,从⽽可以知道⽤什么定标的Q格式最合适。我们⽬前⽤的是主
流的8⽐特量化⽅式。模型的量化主要包括两⽅⾯的内容:各层参数的量化和各层输出的量化。先看各层输出的量化。在评估时把测试集中
各个⽂件每层的输出保存下来,然后看每层输出值的绝对值的最⼤值,⽐如绝对值最⼤值为3.6,可以从上⾯的8⽐特量化表看出⽤Q2.5 量
化最为合适(也可以⽤公式 np.ceil(np.log2(max))算出整数的表⽰位数,然后确定⼩数的表⽰位数,从⽽确定定标)。再来看各层参数的量
化。参数主要包括weight和bias,这两种参数要分别量化,量化⽅法同上⾯的每层输出的量化⽅法⼀样,这⾥不再赘述。需要注意的是如果
当前层是卷积层或者全连接层,为了减少运算量,⼀般部署模型时都会将BatchNormal(BN)层参数融合到卷积层或者全连接层(只有当卷积
