定点DSP中算术运算算法的研究

合集下载

002 定点计算

002 定点计算
ቤተ መጻሕፍቲ ባይዱ
确定变量的Q值实际上就是确定变量的动态范围 设变量的绝对值的最大值为|max|,注意|max|必须小于 或等于32767。取一个整数n,使它满足2n-1 <|max|<2n,则 有2-Q=2-15× 2n =2-(15-n),Q = 15-n。 确定变量的|max|有两种方法:一种是理论分析法,另 一种是统计分析法。
z = (temp*y) >> (Qx+Qy-Qz); z = (temp*y) << (Qz-Qx+Qy);

练习题
将下列数据表示为Q1~Q15的定点数 2.35647 15.3633 0.02698 4.39865 72.965912 0.29516 0.00395
例1:浮点加法,z=x+y,x,y,z为浮点数 先由x,y,z的数据范围算出其Q值,Qx,Qy,Qz zq*2-Qz=xq*2-Qx+yq*2-Qy=[xq+yq*2(Qx-Qy) ]*2-Qx zq=[xq+yq*2(Qx-Qy) ]*2Qz-Qx
int xq,yq,zq; long temp; /*临时变量*/ if(Qx≥Qy) temp=y<<(Qx-Qy); if(Qx<Qy) temp=y>>(Qy-Qx); zq=(xq << (Qz-Qx)) +(temp << (Qz-Qx));
例1:x=0.5,16bit定点化,取Q15, xq=0.5*215=16384 例2:x=4,16bit定点化,取Q12, xq=4*212=16384
特别地,整数可看作为Q0的小数。
浮点运算的定点化
对浮点运算进行定点化的方法是根据算法原理分析运 算公式左右两侧每一个数据的取值范围,为每一个数据确定 相应的Q值,再进行运算,运算规则为: 1. 定点加减法,需转换成相同的Q值才能加减 2. 定点乘法,不同Q值的数据相乘,相当于Q值相加,即 Q15数据乘以Q10数据结果为Q25数据 3. 定点除法,不同Q值数据相除,相当于Q值相减 4. 定点左移,相当于Q值增大 5. 定点右移,相当于Q值减小

DSP中浮点转定点运算--举例及编程中的心得

DSP中浮点转定点运算--举例及编程中的心得

DSP中浮点转定点运算--举例及编程中的⼼得5.举例及编程中的⼼得5.1举例 “第3章 DSP芯⽚的定点运算.doc”这篇⽂章中给了⼀个很简单有能说明问题的例⼦,不想动⼤脑了,直接引⽤过来如下。

这是⼀个对语⾳信号(0.3kHz~3.4kHz)进⾏低通滤波的C语⾔程序,低通滤波的截⽌频率为800Hz,滤波器采⽤19点的有限冲击响应FIR滤波。

语⾳信号的采样频率为8kHz,每个语⾳样值按16位整型数存放在insp.dat⽂件中。

例3.7 语⾳信号800Hz 19点FIR低通滤波C语⾔浮点程序复制代码代码如下:#include <stdio.h>const int length = 180 /*语⾳帧长为180点=22.5ms@8kHz采样*/void filter(int xin[ ],int xout[ ],int n,float h[ ]); /*滤波⼦程序说明*//*19点滤波器系数*/static float h[19]={0.01218354,-0.009012882,-0.02881839,-0.04743239,-0.04584568,-0.008692503,0.06446265,0.1544655,0.2289794,0.257883,0.2289794,0.1544655,0.06446265,-0.008692503,-0.04584568,-0.04743239,-0.02881839,-0.009012882,0.01218354};static int x1[length+20];/*低通滤波浮点⼦程序*/void filter(int xin[ ],int xout[ ],int n,float h[ ]){int i,j;float sum;for(i=0;i<length;i++) x1[n+i-1]=xin[i];for (i=0;i<length;i++){sum=0.0;for(j=0;j<n;j++) sum+=h[j]*x1[i-j+n-1];xout[i]=(int)sum;}for(i=0;i<(n-1);i++) x1[n-i-2]=xin[length-1-i];}/*主程序*/void main( ){FILE *fp1,*fp2;int frame,indata[length],outdata[length];fp1=fopen(insp.dat,"rb"); /*输⼊语⾳⽂件*/fp2=fopen(outsp.dat,"wb"); /*滤波后语⾳⽂件*/frame=0;while(feof(fp1)==0){frame++;printf("frame=%d/n",frame);for(i=0;i<length;i++) indata[i]=getw(fp1); /*取⼀帧语⾳数据*/filter(indata,outdata,19,h); /*调⽤低通滤波⼦程序*/for(i=0;i<length;i++) putw(outdata[i],fp2); /*将滤波后的样值写⼊⽂件*/}fcloseall( ); /*关闭⽂件*/return(0);}例3.8 语⾳信号800Hz 19点FIR低通滤波C语⾔定点程序复制代码代码如下:#include <stdio.h>const int length=180;void filter(int xin[ ],int xout[ ],int n,int h[ ]);static int h[19]={399,-296,-945,-1555,-1503,-285,2112,5061,7503,8450,7503,5061,2112,-285,-1503,-1555,-945,-296,399}; /*Q15*/static int x1[length+20];/*低通滤波定点⼦程序*/void filter(int xin[ ],int xout[ ],int n,int h[ ]){int i,j;long sum;for(i=0;i<length;i++) x1[n+i-1]=xin[i];for (i=0;i<length;i++){sum=0;for(j=0;j<n;j++) sum+=(long)h[j]*x1[i-j+n-1];xout[i]=sum>>15;}for(i=0;i<(n-1);i++) x1[n-i-2]=xin[length-i-1];}主程序与浮点的完全⼀样。

定点DSP——精选推荐

定点DSP——精选推荐

定点DSP譬≈≯.j§蠹等鼍一≯|鼍毒ll|0誊.定点DSPC55X实现浮点相关逗算■大连海事大学孙兴邦刘亮夏志忠引言DSP结构可以分为定点和浮点型两种.其中,定点型DSP可以实现整数,小数和特定的指数运算,它具有运算速度快,占用资源少,成本低等特点;灵活地使用定点型DSP进行浮点运算能够提高运算的效率.目前对定点DSP结构支持下的浮点需求也在不断增长,主要原因是: 实现算法的代码往往是采用C/C++编写,如果其中有标准型的浮点数据处理,又必须采用定点DSP器件,那么就需要将浮点算法转换成定点格式进行运算.同时,定点DSP结构下的浮点运算有很强的可行性,因为C语言和汇编语言分别具有可移植性强和运算效率高的特点,因此在定点DSP中结合C语言和汇编语言的混合编程技术将大大提高编程的灵活度,以及运算速度.大多数DSP的开发工具只是在C语言的基础上支持标准的浮点运算,而定点DSP硬件一般都是面向定点的运算,不支持标准的浮点运算,缺乏硬件的支持极大地限制了浮点的应用,因而标准的浮点运算在实际定点DSP 应用中并不多见.C55O9是一款16位定点DSP.在本文中,对C55O9输入FTSK信号,用C语言和汇编语言混合编程的方式对输入浮点型的FTSK信号进行相关运算,并输出浮点运算结果.这种方法的特点是:在C语言中方便地进行数据格式转化,在汇编语言中进行乘法和加法运算,既达到很高的运算精度,又极大地提高了运算效率.1定点DSPC语言开发环境中的浮点数据格式在定点DSP中,整型数是用16位二进制格式来存储的,但是DSP的C语言和汇编语言中定义的单精度浮点型数据都是标准C语言浮点表示格式.这种格式在C55X中,符合IEEE754标准.它定义了单精度32位和双精度64位的格式.32位IEEE754单精度标准中,第一位是符号位,其后8位用来存放指数,最后23位用来存放小数尾数,如下:l符号位I指数lMSB尾数LSBll32位I31位一24位l23位一1位l在IEEE754单精度浮点标准中,明确包含了符号位,第32位用作符号位.尾数进行了归一化,以产生一个1.f 格式的数,,是小数部分,占用分配的23位.因为规格化的数最左一位总是1,所以不需要存储该位,在该格式中它是隐式的.这样一个位的尾数实际上存放了一个+1位数.为使尾数规格化,指数被适当增减,来跟踪规格化所需的左右移位数以及小数点.最常用的是用8位指数表示0~255,即0%e%255:z一(一1)×2(1.,)其中:S是符号位,0为正数,1为负数;e是指数位,无符号8位;f是尾数的小数部分,23位.例如:IEEE754格式下浮点正数00110001001111100 000000100000000的十进制表示为:符号位一0(因为它是一个正数)尾数一1+2+2+2+2+2+2一1.48440551758指数一2+2+2一98十进制等值数一1.48440551758×2.'一2.76492073681×l0IEEE754格式下浮点负数11100001010101100000000000000000的十进制表示为:符号位一1(因为它是一个负数)尾数一1+2+2+2+2一1.6875指数一2+2+2一194十进制等值数一一1.6875×2""一一2.49031044995×10.2相关运算的实现2.1数据提取方式在本软件设计中,FTSK输人数据的频率包含800Hz,I200Hz,I600Hz,2020Hz,通过相关运算提取80074《平方机乌嵌入式系惋应冈》l圈匝l田_盈唧***************.cn(F告专用)Hz信号.具体参数是:FTSK输入数据的采样率为8000Hz.相关运算输入数据:每次运算对输入数据先提取1600个点,并分离出这些数据的最后40个点;然后对下一个输入数据提取1600个点,并把刚才取的40个点加在这1600个点后面组成1640长度的数组,作为相关运算的输入.这样做的原因是,最大限度地消除每次提取的1600个点相邻部分的影响,提高相关输出的精准度.相关运算的输入数据都为浮点型,而通过MATLAB仿真计算出来的系数也都为小于1的浮点数.通过在C语言中调用汇编语言,在定点C5509中实现此浮点运算,并输出用800Hz相关运算提取出的波形.2.205509中实现浮点运算方法此相关运算的输入是浮点型数据,相关系数是小于1的单精度浮点型数.对于定点DSP,由于不能直接进行浮点数的乘法运算,因此必须对输入数据进行类型转换.首先,相关运算的输入数据是FTSK浮点数据.在C语言中,单精度浮点数据是以IEEE754标准存储的32位数据,而C5509中C语言调用汇编语言,是通过寄存器AR0 从C语言传递给汇编语言的是数据指针,这个指针是指向16位数据的,所以相关的输入32位浮点数要先转化为l6位整型数据.本文这样实现:C程序中先把浮点数据乘以10后(提高运算精度),强制类型转化为整型数据,然后把此16位数据的指针赋给调用汇编的入口参数,即通过寄存器AR0传递到汇编程序中.然后,在汇编程序中, 相关的系数是小于1的小数;在DSP中,汇编语言直接定义的格式是将其转换为16位二进制2的补码表示形式(例如0.8用8×32768/10来表示).从汇编程序入口进入的,经过强制类型转换的整型数据也是以16位二进制形式存储的,通过与16位的小数相乘得到的是32位数, 存储在累加器A中.其中,前16位是运算结果的整数部分,后16位是小数部分.由于从汇编语言程序返回C程序的参数是16位的,故取运算结果的高16位(此前已经把输入数据乘以10,最大限度地提高了运算精度,这里直接取高16位).把这16位数据返回C程序,得到整型数据,再强制类型转化为单精度浮点型数据,再除以1O,即得到了最后相关运算的结果.经实际运算检验,通过这种方法在C55O9里进行浮点运算,最终结果实现了很高的精度,而且通过调用汇编语言,极大地提高了运算的效率.2.3仿真实际在用户板上用TI公司提供的CCSEmulator调试程序,实现了硬件仿真;而对此DSP算法来说,也可用TI公司提供的软件仿真器(Simulator)实现软件仿真.TI公司提供的软件CCS中有一项强大的探测点功能.它是一个开发算法的工具,将计算机数据文件传送到目标板或计算机的缓冲区中提供DSP软件应用,而且可以通过CCS提供的图形窗口观察输入/输出数据波形. 本次算法设计中利用CCS的断点和探测点进行数据的输入,利用图形窗口观察输入/输出的波形.2.4实际运算的结果分析从输入波形可以看到,有4种不同的频率,可以算出最低频率是800Hz,经过800Hz相关运算得出的输入波形与输出波形对比如图1所示.在图1中,可以看到输入波形中频率最低的波形.2个波峰时间差(即周期)是0.0054—0.00416—0.00124S, 取倒数是806.45,所以此波形是800Hz部分;再看输出波形,4个尖峰正好分别对应输入4个800Hz频率分量. 如果在后面再加上低通滤波器,就可以滤出更平滑的曲线,如图2所示.2.5测试程序运行时间CCS中提供了一种评价器(profiler).它通过收集在图1800Hz相关运算的输入/输出波形图对比...,...一...,蚺擅士田,.........R_—u一十 (75)图2相关运算结果经过低通滤波后的波形图指定代码区间程序执行的统计性能,确定程序中各段所花费的处理器时间,从而识别并消除性能发挥的瓶颈,缩短程序的执行时间,使程序更有效;利用评价器分析可以确定执行某个特殊的函数花费了多少个时钟周期,以及对它调用的频繁度等.本设计中相关浮点运算通过C语言编程和C,汇编语言混合编程两种方式的对比,用CCS提供的评价器可以测出,调用汇编语言的方式比纯C语言编程方式,速度提高了51.2.结语在定点DSP中进行浮点运算,要经过复杂的数据格式转化,因此用定点DSP取代浮点DSP,在降低设备成本的情况下,必定会提高研发的成本.如果直接把IEEE754标准的32位单精度浮点数据转化为16位整型数,要经过相当复杂的过程,在满足一定精度的前提下,可以使用本文的转化方式.使用C语言和汇编语言混合编程的方法,达到了大大提高运算效率的目的,不失为很灵活的编程方法.簟参考文献[1][英]AndrewBateman,lainPaterson—Stephens.TheDSP HandbookAlgorithms,ApplicationsandDesignTechniques,2003.[2]胡庆钟,李小刚,等.TMS320C55XDSP原理,应用和设计I-M].北京:机械工业出版社,2006.r3]程佩青.数字信号处理教程I-M].第2版.北京:清华大学出版社,2002.[4]IEEEStandardforBinaryFloating—PointArithmetic.孙共舞甏硕壬篷妥研宽蠢氟惫逸拣馆恕骞跷.壤1琵x譬薯鼍赣!罄l季|-毫誊曩:秀誊誊叠.一j.孽|叠蘩孽誊鼙{瓤篱2Q鹬篱警警誊鏊罄高线性度620~1100MHz正交调制--器--一凌力尔特公司(LinearTechnologyCorporation)推出的新型高性能正交调制器LT557i,针对850"-965MHzGSM,CDMA200o,舞ISM和RFID调制器应用进行了优化.该器件接受I(同相)和Q(正交相位)基带信号并将其直接调制至射频信号..0或低中频(IF)发射器架构使基站设计师能够实现高性能,同时降低功耗并减少器件数,因此可以缩小系统尺寸并降低系统成本.该器件具有卓越的线性度,在900MHz时OIP3(输出3阶截取点)为21.7dBm,OIP2(输出2阶截取点)为63.8dBm,I~I时在采用5V电源时仅消耗97mA静态电流.LT5571的输出噪声层为一159dBm/Hz,并具有一42dBm的低LO泄漏.它在900MHz时的镜频抑制为一53dBc.LT5571满足或超过了GSM蜂窝基站以及其他高性能无线基础设施发射器所要求的动态范围LT5571是一种高度集成的芯片,内含2个匹配的高线性度混频器,1个5OQL0输入缓冲器,1个精确的O./90.LO移相器和1个工作频带为62O~1100MHz的片上射频输出变压器.这个射频变压器汇总来自I通道扣Q通道混频器的已调制信号,产生一个单端5OQ匹配输出.同样,L0输入也是单端的,从而减少了所需的外部组件数并减轻了设计工作的负担.LT5571的2个片上混频器是内部平衡的,因此其L0泄漏性能非常好.凭借0dBm的L0输入功率,在未经校准的情况下,至RF输出的泄漏达到一42dBm(在900MHz).同样,片内精准移相器的准确度优于0.5.,从而实现了一53dBc 的未校准镜频抑制性能.如果需要,还可以通过校准将镜频抑制并把L0泄漏性能改善到优于一70dBc.LT5571的高阻抗I和Q输入具有0.5VDC共模偏置,允许灵活的AC或DC耦合以及简单连接至多个D/A转换器或基带驱动电路.LT5571用单5V电源电压工作,典型工作电流为97mA.该器件可以用ENABLE引脚关断.在禁止工作时,该芯片消耗的最高静态电流为100A,以降低功耗.就半双工或时分复用工作模式而言,该芯片可以利用ENABLE引脚迅速接通和关断.7《聋卉缸j入:泰刍埔…A~n.+…nfr'-垂击田,。

第3讲 定点运算及浮点运算

第3讲  定点运算及浮点运算


定点数转换为浮点数
x float xq 2Q

浮点数 x=0.5,定标 Q=15, 则定点数=0.5*32768=16384
Q表示 Q15
S表示 S0.15
十进制数表示范围 -1≤X≤0.9999695
Q14
. . . . . . Q1 Q0
S1.14
. . . . . . S14.1 S15.0

定点加法
被加数 加数
0 0 X X X X X X X X X X X X X X
0 0 X X X X X X X X X X X X X X
无溢出 被加数 加数
0 1 X X X X X X X X X X X X X X
0 1 X X X X X X X X X X X X X X
有溢出
定点加法
Q表示法16进制数2000H
Q0表示为8192
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
符 号 位
Q15表示为0.25
小数点的位置
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
小数点的位置
浮点数与定点数的转换关系

浮点数转换为定点数
xq int x 2Q
提高查表法的精度 扩大自变量范围

混合法

提高查表法的精度
扩大查表法的范围
设:表的范围为0.5 ~ 1 ,X为大于0.5的数 则:X m 2e 式中, 0.5 m 1 ,e为整数 log 2 ( X ) log 2 (m 2e ) log 2 (m ) log 2 (2e ) log 2 (m ) e 例如: log 2 (10000) log 2 (0.61035 214 ) log 2 (0.61035) 14 13.2877

3.DSP的数值运算基础介绍

3.DSP的数值运算基础介绍
9 同样的一个16位数,若Q值不同,则所表示的数也不同。 【例】不同Q值时的16进制数2000H的值。 若用Q0表示,则16进制数2000H = 8192 若用Q15表示,则16进制数2000H = 0.25 9 不同Q值所能表示的数的精度和范围都不同:①Q越大,表示的 数值范围越小,但精度越高;②相反,Q越小,表示的数值范围越 大,但精度越低。 9 不同Q值所对应的正最大值、负最大值和量化步长(即精度): • 正最大值: 2(15−Q) − 2−Q = (215 −1)× 2−Q • 负最大值: −2(15−Q) = −215 × 2−Q • 精度:
课程名称:DSP芯片及应用
Agenda: 3.1 引言 3.2 定点的基本概念 3.3 定点运算实现的基本原理 3.4 DSP定点算术运算实现的基本原理 3.5 非线性运算定点实现方法 3.6 浮点数的表示格式 3.7 基本的浮点运算 3.8 非线性浮点运算的快速实现 3.9 小结 3.10 习题与思考题
31引言32定点的基本概念33定点运算实现的基本原理34dsp定点算术运算实现的基本原理35非线性运算定点实现方法36浮点数的表示格式37基本的浮点运算38非线性浮点运算的快速实现39小结310习题与思考题muchunyang126com3934dsp定点算术运算实现的基本原理341定点乘法两个定点数相乘二进制乘法可分解为一系列的移位和加法
【例】浮点数x=0.6,定标Q=15,求对应的定点数xq?
【例】定点数19660,定标Q=15,求对应的浮点数x?
xq = (int ) x × 2Q = ⎢⎢⎣0.6× 215 ⎥⎥⎦ = ⎢⎣ 0.6×32768⎥⎦ = 19660 注: ⎢ ⎣ ⎥⎦ 表示下取整。
x = ( float ) xq × 2−Q = 19660× 2−15 = 19660 / 32768 = 0.599975585

实验 二、DSP基本数值计算

实验 二、DSP基本数值计算
三、实验设备介绍
实验设备主要有:SEED-DTKDAD实验箱,PC机,CCS软件。具体使用请参考相关文献。
在CCS使用及DSP的基本数学运算的实验中主要包括以下文件:
1、math.c这个文件中包含了实验中关于DSP运算的主要函数。主要包含有:
fixed_add(int x,int y):定点加法运算;
实验名称
实验二、DSP基本数值计算
姓名
占琴堂
实验时间
年月日
学号
28010301035
指导教师
李亚
成绩
报告内容
一、实验目的和任务
1、熟悉CCS集成开发环境,掌握工程的生成方法;
2、掌握CCS集成开发环境的调试方法;
3、了解数在计算过程中的定标,掌握数的定点、浮点表示方法,定点、浮点基本运算以及定点、浮点间的相互转换。
六、实验结论与心得
在这个实验中,加深了对dsp芯片编程环境的认识及运用。
浮点数与定点数的转换关系可表示为:
浮点数A转换成定点数B:B =(int)A×2Q;
定点数A转换成浮点数B:B =(int)A×2-Q;
举例说明浮点数x=0.5,定标在Q15,则定点数为
Xq=0.5×32768=16384
将定点数转换成浮点数也是一样。
由于定点数的表示范围是一定的,因此在进行运算时,其结果就有可能超出数的表示范围的情况,这就是溢出。溢出有大于最大表示值,叫上溢出,小于最小值叫下溢出。在定点运算时一定要考虑溢出的处理方法。在DSP中可以设置溢出保护功能,当发生时,DSP自动将结果设置为最大值或是最小值。
fixed_sub(int x,int y):定点减法运算;
fixed_mul(int x,int y):定点乘法运算;

第3章 DSP芯片的定点运算

面向TI公司C6000系列DSP的电源系统设计电子科技大学电子工程学院顾良解梅近年来,随着芯片制造技术的不断提高,数字信号处理器(DSP)的性能得到了极大的改善,DSP在航空、航天、雷达、通信,家用电器等领域获得了越来越广泛的应用。

在诸多制造DSP器件的公司中,TI 公司享有很高的声誉并占有较大的市场份额。

本文将根据在从事科研工作中的实际经验给出一种适合于TI公司C6000系列DSP的电源供给系统的设计方案。

在整个DSP系统设计当中,?电源系统的设计应该放在最后完成。

因为只有当整个系统的其他部分已经确定,?且器件型号均已选好之后,才能获得所需的功率、电流、电压大小等具体信息,从而决定电源系统所应选取的器件,并采用合适的方案来实现。

德州仪器公司TMS320C6000系列DSP器件所需电源的特点,?C6000DSP需要外部提供两种电源:?CPU核电源以及周边I/O接口电源。

?周边I/O的电压一般是3.3V,由于许多外部器件均采用3.3V电压,故而DSP可与这样的外部器件直接接口,不需再附加其他电平转换器件。

?CPU核心电压随器件的不同而不同(比如C62X的电压有2.5V,1.8V,1.5V等;?C64X有1.4V,1.2V;?C67X有1.9V,1.8V等),?但都小于I/O电压,这样可以大大降低芯片的功耗。

根据C6000DSP器件所需电源的特点,就可以进行相应的电源系统的设计了。

供电电路的设计如果系统外部能够提供上述两种电压,?供电电路就不再需要设计。

由于大部分数字系统工作于5V或3.3V,外部一次提供一个5V、3.3V或其他数值的电压是比较常见的情况。

此时,就需要将外部输入电压转化为所需的电压,可采用电压调节器来完成此任务。

电压调节器可以采用TI公司提供的TPS56XX、TPS56100、TPS5602等芯片,?本文的系统就采用了TPS5602。

这款芯片有以下主要特点:(1)宽广的输入电压范围:4.5V~25V。

DSP芯片的定点运算之四非线性运算的定点快速实现

DSP芯片的定点运算之四非线性运算的定点快速实现在数值运算中,除基本的加减乘除运算外,还有其他许多非线性运算,如对数运算、开方运算、指数运算、三角函数运算等,实现这些非线性运算的方法一般有:(1)调用DSP编译系统的库函数;(2)查表法;(3)混合法。

下面分别介绍这三种方法。

1.调用DSP编译系统的库函数TMS320C2X/C5X的C编译器提供了比较丰富的运行支持库函数。

在这些库函数中,包含了诸如对数、开方、三角函数、指数等常用的非线性函数。

在C 程序中(也可在汇编程序中)只要采用与库函数相同的变量定义,就可以直接调用。

例如,在库函数中,定义了以10为底的常用对数log10():#include math.h double log10(double x);在C程序中按如下方式调用:float x,y;x=10.0;y=log10(x);从上例可以看出,库函数中的常用对数log10()要求的输入值为浮点数,返回值也为浮点数,运算的精度完全可以保证。

直接调用库函数非常方便,但由于运算量大,很难在实时DSP中得到应用。

2.查表法在实时DSP应用中实现非线性运算,一般都采取适当降低运算精度来提高程序的运算速度。

查表法是快速实现非线性运算最常用的方法。

采用这种方法必须根据自变量的范围和精度要求制作一张表格。

显然输入的范围越大,精度要求越高,则所需的表格就越大,即存储量也越大。

查表法求值所需的计算就是根据输入值确定表的地址,根据地址就可得到相应的值,因而运算量较小。

查表法比较适合于非线性函数是周期函数或已知非线性函数输入值范围这两种情况,例3.12和例3.13分别说明这两种情况。

例3.12已知正弦函数y=cos(x),制作一个512点表格,并说明查表方法。

由于正弦函数是周期函数,函数值在-1至+1之间,用查表法比较合适。

由于Q15的表示范围为-1至32767/32768之间,原则上讲-1至+1的范围必须用Q14表示。

基于定点DSP的ART算法实现研究

基于定点DSP的ART算法实现研究孙毅刚;王庆勇;张红颖【摘要】数字信号处理器(DSP)在大量数据计算方面有明显的速度优势,为了提高CT ART算法的图像重建速度,提出基于定点DSP TMS320C6416的算法计算方案.该方案结合ART算法的原理,以及USB 2.0协议在数据传输和定点DSP在数据计算上的速度优势,通过CYPRESS的CY7C68001接口芯片,同时采用SDRAM作为数据缓存,进行DSP与PC机之间大量数据的正确高速传输;通过C语言编写DSP 片内算法计算程序并对其进行优化,以降低图像重建时间.最终实验以Shepp_Logan头部剖析图为原始图像,进行重建算法计算,实验结果证实了方案的可行性.【期刊名称】《现代电子技术》【年(卷),期】2010(033)018【总页数】4页(P17-20)【关键词】DSP;CT图像重建;ART算法;SDRAM【作者】孙毅刚;王庆勇;张红颖【作者单位】中国民航大学,航空自动化学院,天津,300300;中国民航大学,航空自动化学院,天津,300300;中国民航大学,航空自动化学院,天津,300300【正文语种】中文【中图分类】TN915-340 引言计算机层析成像技术(CT)已经广泛应用在医学及工业检测领域。

图像重建是CT技术的关键内容,有两类方法:解析算法和迭代算法。

迭代算法中比较常用的是代数迭代算法(algebraic reconstruction technique,ART)。

ART算法适合于不完全投影数据的图像重建,抗噪声干扰能力强,还可以结合一些先验知识求解;但不足是计算量大,重建速度慢,已成为该算法应用发展的瓶颈[1]。

若射线条数为I,ART收敛于最优解约需(3~8)I次的迭代,在ART重建方法中,对于一幅n×n的图像,取m个投影,每个方向的投影有n条射线,如果直接用ART方法重建,则系数矩阵的元素个数约为o(n4);对于一幅256×256或者更大的图像,计算量巨大。

除法运算在定点DSP中的实现

除法运算在定点DSP中的实现
丁电宽;万毅
【期刊名称】《安阳师范学院学报》
【年(卷),期】2006(000)002
【摘要】分析了定点DSP中数的表示方法,讨论了两个定点数的除法运算机理,实现了定点DSP中数的除法运算本文所讨论的问题在DSP系统设计中具有实际的参考和应用价值.
【总页数】3页(P29-31)
【作者】丁电宽;万毅
【作者单位】安阳师范学院,电气电子信息工程系,河南,安阳,455002;西南交通大学,机械工程学院,四川,成都,610031
【正文语种】中文
【中图分类】TP271
【相关文献】
1.定点DSP中高精度除法的实现方法 [J], 刘洪鸣;邱建辉;邱奕文
2.定点DSP除法原理及其TMS320C6000实现 [J], 石元君
3.定点DSP除法原理及其TMS320C6000实现 [J], 石元君
4.浮点除法运算在TMS320C3X DSP中的实现 [J], 王华;汶德胜
5.浮点除法运算在TMS320C3X DSP中的实现 [J], 王华;汶德胜
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档