DSP-定点和浮点数格式
- 格式:ppt
- 大小:837.00 KB
- 文档页数:42
DSP工作原理DSP(Digital Signal Processing,数字信号处理)是一种通过数学算法和计算机技术对信号进行处理的技术。
它在现代通信、音频处理、图像处理等领域得到了广泛应用。
本文将深入探讨DSP的工作原理。
引言概述DSP是一种数字信号处理技术,通过数学算法和计算机技术对信号进行处理。
它可以对信号进行滤波、变换、编码、解码等操作,广泛应用于通信、音频处理、图像处理等领域。
下面将从信号采样、数学算法、计算机实现、信号重构和应用领域五个方面详细介绍DSP的工作原理。
一、信号采样1.1 采样定理:根据奈奎斯特采样定理,信号的采样频率必须是信号最高频率的两倍以上,才能够准确还原原始信号。
1.2 采样过程:采样过程将连续时间域信号转换为离散时间域信号,通过模数转换器将模拟信号转换为数字信号。
1.3 采样率选择:采样率的选择取决于信号的频率成分,通常选择高于信号最高频率两倍的采样率,以确保信号的还原质量。
二、数学算法2.1 离散傅里叶变换(DFT):DFT是DSP中最基本的变换之一,将离散时间域信号转换为离散频率域信号,用于频谱分析和滤波等操作。
2.2 快速傅里叶变换(FFT):FFT是DFT的一种高效算法,通过减少计算量和复杂度,实现了快速的频域分析和滤波操作。
2.3 滤波算法:滤波是DSP中常用的操作之一,包括低通滤波、高通滤波、带通滤波等,通过滤波算法可以去除噪声、改善信号质量。
三、计算机实现3.1 固定点数表示:计算机中常用的表示方式是固定点数表示,将实数转换为二进制表示,通过定点运算实现DSP算法。
3.2 浮点数表示:浮点数表示可以更精确地表示实数,但计算复杂度较高,对于精度要求较高的应用,可以使用浮点数表示。
3.3 指令集优化:为了提高DSP算法的执行效率,可以针对特定的DSP芯片进行指令集优化,利用硬件加速器提高计算速度。
四、信号重构4.1 逆变换:通过逆变换,将离散频率域信号转换为离散时间域信号,实现信号的重构和还原。
FPGA定点小数的常规格式、相对于浮点小数的优势与劣势和计算的概述所谓定点小数,就是小数点固定地隐含在某一位置上的数据。
由于小数点的位置是固定的,所以就没有必要储存它(如果储存了小数点的位置,那就是浮点数了)。
而小数的具体位置则完全是由程序设计者自己决定的,因此,对于定点小数的处理,完全可以采用普通整数的处理方式。
下面我们来简单地聊一聊定点小数的常规格式、相对于浮点小数的优势与劣势,以及如何使用Lattice ECP3/ECP5的sysDSP乘法器来实现基本的定点小数运算(加法和乘法)。
并会在后续的文章中介绍定点小数的除法、平方根、平方根倒数和CORDIC算法的基本理论和HDL的实现等。
1、定点小数的常规格式
常规的定点小数格式如下图:
其中,有符号定点小数的值可以表示为:
无符号定点小数的值可以表示为:
定点数的位宽w和小数部分的位宽wf可以看做是定点数的两个要素。
其中,w决定了定点数的动态范围,wf决定了定点数的精度。
需要注意的是,在进行定点数运算的时候,需要注意数值溢出的问题(包括向上溢出和向下溢出)。
所谓向上溢出是指运算结果超出了定点数整数部分所能表示的范围,向下溢出表示运算结果超出了定点数小数部分所能表示的范围。
显然,一旦溢出将会造成计算精度的丢失,甚至是计算结果的错误。
因此,合理地选择w和wf至关重要,w和wf的值过大会浪费资源,过小又会造成精度丢失。
2、定点数与浮点数的比较
与浮点数相比,定点数具有如下的一些优势:
(1)更少的资源。
DSP常见问题1.DSP与普通的微处理器的不同?单周期指令:大多数DSP都拥有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样可以大大提高系统的执行效率。
它可以在一个时钟周期内执行一条语句。
快速乘法器:信号处理算法往往大量用到乘加(multiply-accumulate,MAC)运算。
DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。
硬件乘法器占用了DSP芯片面积的很大一部分。
(与之相反,通用微处理器采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)。
多总线:DSP有分开的代码和数据总线(一般用术语“哈佛结构”表示),这样在同一个时钟周期内可以进行多次存储器访问——这是因为数据总线也往往有好几组。
有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数。
地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。
这包括前(后)增(减)、环状数据缓冲的模地址以及FFT 的比特倒置地址。
地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP 可以在一个时钟周期内可以完成的工作量。
硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。
对硬件辅助循环的支持,可以让DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件。
数据格式:除了标准的整数型格式外,DSP一般支持定点和(或)浮点数。
对数据格式和精度的选择取决于应用程序所需,例如:16位定点DSP可以满足语音信号处理和控制所需24位和32位定点DSP可以满足高质量音频信号处理所需32位浮点DSP可以满足图形和图像处理所需1:DSP采用改进的Harvard结构,程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,而单片机多数采用的是冯•罗依曼结构,所有的操作都必须经过累加器A,很容易造成瓶颈效应。
第3章 DSP 芯片的定点运算3。
1 数 的 定 标在定点DSP 芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。
一个整型数的最大表示范围取决于DSP 芯片所给定的字长,一般为16位或24位.显然,字长越长,所能表示的数的范围越大,精度也越高.如无特别说明,本书均以16位字长为例。
DSP 芯片的数以2的补码形式表示。
每个16位数用一个符号位来表示数的正负,0表示数值为正,1则表示数值为负。
其余15位表示数值的大小。
因此二进制数0010000000000011b =8195 二进制数1111111111111100b =—4对DSP 芯片而言,参与数值运算的数就是16位的整型数.但在许多情况下,数学运算过程中的数不一定都是整数。
那么,DSP 芯片是如何处理小数的呢?应该说,DSP 芯片本身无能为力。
那么是不是说DSP 芯片就不能处理各种小数呢?当然不是。
这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位。
这就是数的定标。
通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。
数的定标有Q 表示法和S 表示法两种。
表3。
1列出了一个16位数的16种Q 表示、S 表示及它们所能表示的十进制数值范围。
从表3.1可以看出,同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。
例如: 16进制数2000H =8192,用Q0表示 16进制数2000H =0。
25,用Q15表示但对于DSP 芯片来说,处理方法是完全相同的.从表3。
1还可以看出,不同的Q 所表示的数不仅范围不同,而且精度也不相同。
Q 越大,数值范围越小,但精度越高;相反,Q 越小,数值范围越大,但精度就越低.例如,Q0的数值范围是-32768到+32767,其精度为1,而Q15的数值范围为—1到0.9999695,精度为 1/32768 = 0。
00003051。
因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。
定点数与浮点数计算机处理的数值数据多数带有小数,小数点在计算机中通常有两种表示方法,一种是约定所有数值数据的小数点隐含在某一个固定位置上,称为定点表示法,简称定点数;另一种是小数点位置可以浮动,称为浮点表示法,简称浮点数。
1. 定点数表示法(fixed-point)所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。
在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。
一般常称前者为定点小数,后者为定点整数。
定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。
若数据x 的形式为x = x0.x1x2…x n( 其中x0为符号位,x1~x n是数值的有效部分,也称为尾数,x1为最高有效位),则在计算机中的表示形式为:一般说来,如果最末位x n = 1,前面各位都为0 ,则数的绝对值最小,即|x|mi n = 2-n。
如果各位均为1,则数的绝对值最大,即|x|ma x =1-2-n 。
所以定点小数的表示范围是:2- n ≤ | x| ≤ 1 - 2- n定点整数是纯整数,约定的小数点位置在有效数值部分最低位之后。
若数据x 的形式为x = x0x1x2…x n ( 其中x0为符号位,x1~x n是尾数,x n为最低有效位),则在计算机中的表示形式为:定点整数的表示范围是:1≤ | x| ≤ 2n - 1当数据小于定点数能表示的最小值时,计算机将它们作0处理,称为下溢;大于定点数能表示的最大值时,计算机将无法表示,称为上溢,上溢和下溢统称为溢出。
计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运算,运算结果,根据比例因子,还原成实际数值。
若比例因子选择不当,往往会使运算结果产生溢出或降低数据的有效精度。
用定点数进行运算处理的计算机被称为定点机。
2. 浮点数表示法(floating-point number)4与科学计数法相似,任意一个J进制数N,总可以写成N = J E × M式中M称为数N 的尾数(mantissa),是一个纯小数;E为数N 的阶码(e x ponent),是一个整数,J称为比例因子J E 的底数。
实验一 CCS使用及DSP基本数学运算一、实验目的:1、熟悉CCS集成开发环境,掌握工程的生成方法;2、熟悉SEED-DTK5416实验环境;3、掌握CCS集成开发环境的调试方法;4、了解数在计算过程中的定标,掌握数的定点、浮点表示方法,定点、浮点基本运算以及定点、浮点间的相互转换。
二、实验内容:1、 DSP源文件的建立;2、 DSP程序工程文件的建立;3、编译与链接的设置,生成可执行的DSP文件;4、进行DSP程序的调试与改错;5、学习使用CCS集成开发工具的调试工具;6、观察实验结果;三、实验知识背景:在DSP编程过程中,数以二进制、十进制、与十六制表示均可。
在定点DSP的运算过程中,数一般采用二进制与二进制补码的形式进行运算的。
其中二进制数只能代表正数不能代表负的数,而二进制补码记数系统弥补了这一缺点。
它的构成如下;在二进制的基础上,加一符号位。
符号位位于二进制数的最高位当为正数时,符号位为0,为负数时,符号位为1当采用二进制补码进行数的运算时,具有如下的两个优点:可以将加法与减法统一成加法运算符号位可以进行扩展,而其数值不变,这可以使一个比较小的数存放到比较大的寄存器当中例:(11110)2 = 1×(-16)+ 1×8 + …… + 1×2 + 0×1 = -2当将其符号位扩展三位,放入一8位的寄存器中(11111110)2 = 1×(-128)+ 1×64 + …… + 1×2 + 0×1 = -2 这将为运算提供极大的方便,因而在定点的DSP中,大多数情况采用二进制补码形式。
C5000系列的DSP硬件只支持定点运算,浮点运算要通过软件来实现。
其运算字长为16位,也就是说,DSP所能表示的整数的范围也就决定了,其范围为-32768到32767。
而在很多情况下,数学运算过程中不一定是整数,而且动态范围也不是固定不变的。
1.基本概念(1)计算机中定点数的三种表示方法:原码、补码和反码(2)在DSP中一般使用补码的形式来表示操作数(3)整型数的表示范围由DSP芯片的字长决定,比如16位或24位(4)注意,符号位的bit个数,不同的DSP芯片有不同的实现2.DSP如何处理小数以16位的字长DSP芯片为例子。
(1)定标由程序员规定,小数点位于16位中的哪一位,通过设定小数点的不同位置,就可以表示不同大小和不同精度的小数。
参与运算的是16位的整型数,并不存在真正意义上的小数点。
(2)定标的表示方法Q表示法:Q后面的数表示该数的小数点右边有几位S表示法:表示小数点前后两部分各占了几位数Q/S表示法能表示十进制数值的精度和范围:同一个16bit数,Q值不同,则表示的数也不同。
在此处键入公式。
例:2000HQ0:意思是小数点部分没有,那就是2000H=8192Q15:小数点部分占了15位,总共才16位,最高位是符号位,所以意思就是整数部分占了0位,即不存在整数部分【数的格式就是0.xxxx】,值就是2000H=0.125所以:同样一个16位的数,Q值不同,所能表示的数也不同,所能表示的数的范围和精度也不同,Q值越大,所能表述的数的范围就越小[对整数部分而言],但是精度越高【对小数部分而言】,反之,Q越小,能表示的数值越大,但是精度越低。
故对于DSP处理定点数来说,数值的表示范围和精度是一堆矛盾体。
3.小数和定点数和转换规则在实际处理中,大都处理浮点数,但是浮点数太消耗时间。
因此在DSP处理中,首先进行数值的转换,DSP芯片计算整型数会快很多。
小数F转定点整数A:A=Fx2Q定点整数A转小数F:F=Ax2−Q例:F=0.6,定标Q=15,对应的定点整数就是:0.6 x 215=0.6 x 32768=19660.8最终要得到一个整数,所以这里还有另一个规则,就是“向下取整”,那最终的结果就是19660。
A=19660,定标Q=15,对应的小数就是:19660 x 2−15=0.5997,可以发现转回去的值和0.6是有差异的。
《DSP原理及应用(修订版)》邹彦主编课后答案(个人终极修订版)————————————————————————————————作者:————————————————————————————————日期:声明: 1、本人知识能力有限,只能按自己认识来判断答案的正误来编写本资料;2、本资料为《DSP原理及应用(修订版)》邹彦主编的课后答案,仅作参考作用,不一定代表考试方向。
3、请尊重劳动成果,祝大家考试顺利!第一章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?解:f=160MHz,所以T=1/160M=6.25ns=0.00000625ms;运算速度=160MIPS第二章1、TMS320C54x芯片的基本结构都包括哪些部分?答:课本P17(各个部分功能如下)2、TMS320C54x芯片的CPU主要由几部分组成?答:课本P18(1.CPU)3、处理器工作方式状态寄存器PMST中的MP/MC、OVLY和DROM3个状态位对’C54x的存储空间结构有何影响?答:课本P34(PMST寄存器各状态位的功能表)4、TMS320C54x芯片的内外设主要包括哪些电路?答:课本P40(’C54x的片内外设电路)5、TMS320C54x芯片的流水线操作共有多少个操作阶段?每个操作阶段执行什么任务?完成一条指令都需要哪些操作周期?答:课本P45(1.流水线操作的概念)6、TMS320C54x芯片的流水线冲突是怎样产生的?有哪些方法可以避免流水线冲突?答:由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。
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位。
1.1 改进的哈佛结构和流水线操作DSP采用程序空间和数据空间完全分开的哈佛(Havard)结构,允许同时取指令和操作数,而且允许在程序空间和数据空间之间相互传递数据,即改进的哈佛结构。
实验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课程的实用性和趣味性。
实验二基本算数运算2.1 实验目的和要求加、减、乘、除是数字信号处理中最基本的算术运算。
第3章 DSP 芯片的定点运算3.1 数 的 定 标在定点DSP 芯片中,采用定点数进行数值运算,其操作数一般采用整型数来表示。
一个整型数的最大表示范围取决于DSP 芯片所给定的字长,一般为16位或24位。
显然,字长越长,所能表示的数的范围越大,精度也越高。
如无特别说明,本书均以16位字长为例。
DSP 芯片的数以2的补码形式表示。
每个16位数用一个符号位来表示数的正负,0表示数值为正,1则表示数值为负。
其余15位表示数值的大小。
因此二进制数0010000000000011b =8195 二进制数1111111111111100b =-4对DSP 芯片而言,参与数值运算的数就是16位的整型数。
但在许多情况下,数学运算过程中的数不一定都是整数。
那么,DSP 芯片是如何处理小数的呢?应该说,DSP 芯片本身无能为力。
那么是不是说DSP 芯片就不能处理各种小数呢?当然不是。
这其中的关键就是由程序员来确定一个数的小数点处于16位中的哪一位。
这就是数的定标。
通过设定小数点在16位数中的不同位置,就可以表示不同大小和不同精度的小数了。
数的定标有Q 表示法和S 表示法两种。
表3.1列出了一个16位数的16种Q 表示、S 表示及它们所能表示的十进制数值范围。
从表3.1可以看出,同样一个16位数,若小数点设定的位置不同,它所表示的数也就不同。
例如:16进制数2000H =8192,用Q0表示 16进制数2000H =0.25,用Q15表示但对于DSP 芯片来说,处理方法是完全相同的。
从表3.1还可以看出,不同的Q 所表示的数不仅范围不同,而且精度也不相同。
Q 越大,数值范围越小,但精度越高;相反,Q 越小,数值范围越大,但精度就越低。
例如,Q0的数值范围是-32768到+32767,其精度为1,而Q15的数值范围为-1到0.9999695,精度为 1/32768 = 0.00003051。
因此,对定点数而言,数值范围与精度是一对矛盾,一个变量要想能够表示比较大的数值范围,必须以牺牲精度为代价;而想提高精度,则数的表示范围就相应地减小。
DSP技术知识要点(电信)CHAP1冯、诺依曼结构和哈佛结构的特点冯、诺依曼结构采用单存储空间,即程序指令和数据共用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
哈佛结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字信号处理。
DSP芯片的特点(为何适合数据密集型应用)1.采用哈佛结构2.采用多总线结构3.采用流水线技术4. 配有专用的硬件乘法-累加器5. 具有特殊的DSP指令6.快速的指令周期7.硬件配置强8.支持多处理器结构9.省电管理和低功耗。
定点DSP芯片和浮点DSP芯片的区别及应用特点定点DSP芯片,精度和范围是不能同时兼顾的。
定点DSP是主流产品,成本低,对存储器要求低、耗电少,开发相对容易,但设计中必须考虑溢出问题。
用在精度要求不太高的场合。
浮点DSP芯片,精度高、动态范围大,产品相对较少,复杂成本高。
但不必考虑溢出的问题。
用在精度要求较高的场合。
定点DSP的表示(Qm.n,精度和范围与m、n的关系)及其格式转换○1整数表示法○2小数表示法○3数的定标;n越大,数值范围越小,但精度越高;相反,n越小,数值范围越大,但精度就越低。
不同Qm.n 形式的数进行加减运算时,通常将动态范围小的数据格式转换成动态范围大的数据格式。
即n大的数据格式向n小的数据格式转换。
方法:将n 大的数向右移相差的位数,这时原数低位被移出,高位则进行符号扩展。
TI公司的三大主力系列DSP芯片的特点及应用领域C2x、C24x称为C2000系列,定位于控制类和运算量较小的运用,主要用于代替MCU,应用于各种工业控制领域,尤其是电机控制领域。
C54x、C55x称为C5000系列,低功耗高性能,定位于中等计算量的应用。
Q格式:通俗的讲就是将一个小数放大若干倍后,用整又有16位Q格式和32位Q格式,其中16位Q格式的库为<Qmath.h>,32位Q格式的库为<IQmath.h>。
那个字母可以理解为增强型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格式的取值和精度。
,用整数来表示小数。
其中Q是定点格式,浮点数进行定点数运算处理时一般有Q格式和S格式,位Q格式的库为<Qmath.h>,32位Q格式的库为<IQmath.h>。
那个字母I表示32位的DSP的标号,16位的DSP前面没有字母是16位DSP的增强型,然后32位的就用IQ表示。
微处理器时不能直接处理小数,C语言中的自动调用运行时的函数来处理浮点数(float型),C语言中抹平了定点处理是编译出来的代码很庞大,在嵌入式应用中很多情况下,float型几乎不能去想,所以才会要用到Q格式定标法。
Q格式:通俗的讲就是将一个小数放大若干倍后,用整又有16位Q格式和32位Q格式,其中16位Q格式的库为<Qmath.h>,32位Q格式的库为<IQmath.h>。
那个字母可以理解为增强型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格式的取值和精度。
,用整数来表示小数。
其中Q是定点格式,浮点数进行定点数运算处理时一般有Q格式和S格式,位Q格式的库为<Qmath.h>,32位Q格式的库为<IQmath.h>。
那个字母I表示32位的DSP的标号,16位的DSP前面没有字母是16位DSP的增强型,然后32位的就用IQ表示。
微处理器时不能直接处理小数,C语言中的自动调用运行时的函数来处理浮点数(float型),C语言中抹平了定点处理是编译出来的代码很庞大,在嵌入式应用中很多情况下,float型几乎不能去想,所以才会要用到Q格式定标法。