资料介绍
引言
各种集成化单片数字信号处理器(DSP)以其功能强、集成度高、应用灵活、性价比高等优点,在信号处理和系统控制中的主导性地位日益明显。许多信号处理和控制需要运用除法运算。一般的数字信号处理器中没有现成的除法指令。十多年前诞生的浮点DSP,由于其用硬件完成浮点数的运算,在数据处理和运算能力上大大超出定点DSP,处理除法运算也比定点DSP更为简单。但是定点DSP每器件产品的价格更低,这对大规模的大众市场应用而言是相当重要的优势,也是定点器件至今仍是业界主流的主要原因。所以,讨论定点DSP中除法的实现仍不失其意义。在定点DSP中虽然已经有人给出除法的算法,但是由于其运算的复杂和精度难以如愿,致使一些带有除法的好的算法在信号处理中难以得到应用。
为了提高运算结果的精度,本文在已有除法算法的基础上进行了一些改进,最大限度地保证了结果的精度。最后在TI公司的TMS320C5416芯片里具体实现并验证了这一高精度除法。
1 经典算法
DSP中没有现成的除法指令,除法是靠被除数与除数之间的移位相减来实现的。在C54X系列里利用减法指令SUBC和循环指令RPT实现2个16位数的相除。下面以C54X为例来具体实现经典的除法:
C54X提供的SuBC指令仅对无符号数进行操作,所以在移位相减开始之前必须先将被除数和除数取绝对值,仅考虑2个正数的除法。此时除法运算有两种情况:
当|被除数|《|除数|时,将|被除数|存放在累加器的高16位,然后用SUBC完成15次移位相减,相减之后在累加器A的低16位中存放商的绝对值。根据运算前被除数和除数的符号是否相同来决定是否要改变所得结果的符号。
当|被除数|≥|除数|时,将|被除数|存放在累加器的低16位,然后用SUBC完成16次移位相减,相减之后在累加器A的低16位中存放商的绝对值。根据运算前被除数和除数的符号是否相同来决定是否要改变所得结果的符号。
从实现的过程分析,当|被除数|《|除数|时,移位相减开始时|被除数|和|除数|的小数点位置正好相差一位。第一次相减后在累加器A的O位最低位存进的数值正是商的最高位,该位为商的小数点后第一位。在15次移位相减之后,累加器A低16位所得的结果为Q值为15的小数。当|被除数|≥|除数|时,在第l6次相减时,|被除数|位于A的高16位(30~15位)上,小数点位在A的15位后,和|除数|的小数点位正好对齐,则此次相减后在A的 0位加上的值正好是商的最低有效整数位,相当于十进制数中的个位。所以在16次移位相减之后,累加器A低16位所得的结果为Q值为0的整数。以此分析,当商的精确值不是整数,或者超出Q值15所表示的范围时,此算法所得结果就达不到16位数据所能表达的精确度。
表1中任取几组数据来说明。
2 高精度算法
由于经典算法在结果上存在精度不高的问题,所以应考虑精度尽可能高的除法算法。和经典算法一致,本算法也采用移位相减实现除法。但不同的是,在进行移位相减之前算法对除数与被除数进行了一些处理,并且在移位相减时不再分两种情况。下面具体介绍算法的流程。
首先给出被除数y和除数x。由于定点DSP中所有的数据都以整数的形式存在,所以在这里就把y和x看成是整数,不考虑它们本身的Q值。在图1所示的流程图中,A和B是C5416的2个累加器。算法第一步是将x和y相乘,结果存放在B中,以便在最后从B中提取商的符号(商的符号与B的符号相同)。第二步分别对x和y取绝对值以进行无符号数相除。第三步,分别判断x和y在最高有效位之前共有多少个O,分别记为n和m,即在x和y的分别有(16一n)和 (16一m)个有效位。然后将x和y分别左移(n一1)位和(m一2)位,即x=x·2n-1,y=y·2m-2。第四步,将前面所得x和y再进行移位相减,把y存放在A的高位,即AH=y,利用SUBC指令进行1 5次移位相减。在所得的结果当中,A的低位即为商的绝对值,B的符号即为商的符号,两者结合得到quot值。由于在移位相减之前分别对除数和被除数有一个左移放大的操作,所以在结果中就必须考虑商的Q值。
各种集成化单片数字信号处理器(DSP)以其功能强、集成度高、应用灵活、性价比高等优点,在信号处理和系统控制中的主导性地位日益明显。许多信号处理和控制需要运用除法运算。一般的数字信号处理器中没有现成的除法指令。十多年前诞生的浮点DSP,由于其用硬件完成浮点数的运算,在数据处理和运算能力上大大超出定点DSP,处理除法运算也比定点DSP更为简单。但是定点DSP每器件产品的价格更低,这对大规模的大众市场应用而言是相当重要的优势,也是定点器件至今仍是业界主流的主要原因。所以,讨论定点DSP中除法的实现仍不失其意义。在定点DSP中虽然已经有人给出除法的算法,但是由于其运算的复杂和精度难以如愿,致使一些带有除法的好的算法在信号处理中难以得到应用。
为了提高运算结果的精度,本文在已有除法算法的基础上进行了一些改进,最大限度地保证了结果的精度。最后在TI公司的TMS320C5416芯片里具体实现并验证了这一高精度除法。
1 经典算法
DSP中没有现成的除法指令,除法是靠被除数与除数之间的移位相减来实现的。在C54X系列里利用减法指令SUBC和循环指令RPT实现2个16位数的相除。下面以C54X为例来具体实现经典的除法:
C54X提供的SuBC指令仅对无符号数进行操作,所以在移位相减开始之前必须先将被除数和除数取绝对值,仅考虑2个正数的除法。此时除法运算有两种情况:
当|被除数|《|除数|时,将|被除数|存放在累加器的高16位,然后用SUBC完成15次移位相减,相减之后在累加器A的低16位中存放商的绝对值。根据运算前被除数和除数的符号是否相同来决定是否要改变所得结果的符号。
当|被除数|≥|除数|时,将|被除数|存放在累加器的低16位,然后用SUBC完成16次移位相减,相减之后在累加器A的低16位中存放商的绝对值。根据运算前被除数和除数的符号是否相同来决定是否要改变所得结果的符号。
从实现的过程分析,当|被除数|《|除数|时,移位相减开始时|被除数|和|除数|的小数点位置正好相差一位。第一次相减后在累加器A的O位最低位存进的数值正是商的最高位,该位为商的小数点后第一位。在15次移位相减之后,累加器A低16位所得的结果为Q值为15的小数。当|被除数|≥|除数|时,在第l6次相减时,|被除数|位于A的高16位(30~15位)上,小数点位在A的15位后,和|除数|的小数点位正好对齐,则此次相减后在A的 0位加上的值正好是商的最低有效整数位,相当于十进制数中的个位。所以在16次移位相减之后,累加器A低16位所得的结果为Q值为0的整数。以此分析,当商的精确值不是整数,或者超出Q值15所表示的范围时,此算法所得结果就达不到16位数据所能表达的精确度。
表1中任取几组数据来说明。
2 高精度算法
由于经典算法在结果上存在精度不高的问题,所以应考虑精度尽可能高的除法算法。和经典算法一致,本算法也采用移位相减实现除法。但不同的是,在进行移位相减之前算法对除数与被除数进行了一些处理,并且在移位相减时不再分两种情况。下面具体介绍算法的流程。
首先给出被除数y和除数x。由于定点DSP中所有的数据都以整数的形式存在,所以在这里就把y和x看成是整数,不考虑它们本身的Q值。在图1所示的流程图中,A和B是C5416的2个累加器。算法第一步是将x和y相乘,结果存放在B中,以便在最后从B中提取商的符号(商的符号与B的符号相同)。第二步分别对x和y取绝对值以进行无符号数相除。第三步,分别判断x和y在最高有效位之前共有多少个O,分别记为n和m,即在x和y的分别有(16一n)和 (16一m)个有效位。然后将x和y分别左移(n一1)位和(m一2)位,即x=x·2n-1,y=y·2m-2。第四步,将前面所得x和y再进行移位相减,把y存放在A的高位,即AH=y,利用SUBC指令进行1 5次移位相减。在所得的结果当中,A的低位即为商的绝对值,B的符号即为商的符号,两者结合得到quot值。由于在移位相减之前分别对除数和被除数有一个左移放大的操作,所以在结果中就必须考虑商的Q值。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 基于FPGA+DSP的高精度数字电源数据采集系统设计
- 基于除法畸变模型的镜头线性标定方法 7次下载
- 如何使用DSP和FPGA进行高精度数据采集卡的设计资料说明 14次下载
- 17个DSP的简答题和答案资料大全免费下载 14次下载
- 如何使用FPGA和DSP进行高精度数字电源数据采集系统设计的资料概述 20次下载
- 基于DSP的高精度多参量测量硬件设计 2次下载
- 基于DSP的高精度测频方法与软件设计_薛海东 1次下载
- DSP芯片的定点运算 7次下载
- DSP定点与浮点运算的比较
- 在FPGA中实现高精度快速除法
- DSP芯片的定点运算
- 新型应用受益于浮点DSP的高精度
- 定点DSP实现扩展精度的自适应滤波器的研究
- 定点DSP除法原理及其TMS320C6000 实现
- 定点dsp浮点运算教程
- 激光扫描装配间隙尺寸高精度检测系统的设计与实现 973次阅读
- FPGA基于线性迭代法的除法器设计 1056次阅读
- 高精度地图的路,还能走多远? 620次阅读
- FPGA浮点数转化为定点数方法 4394次阅读
- 如何对RTK高精度定位算法进行验证 3412次阅读
- 基于定点DSP系列ADSP2181芯片实现通用多DSP目标系统的设计 1252次阅读
- 基于TI TMS320C6748定点/浮点DSP C674x处理器 2986次阅读
- 除了测绘,未来哪些行业对高精度有需求? 6153次阅读
- 从三个方面展开谈论高精度地图 1.1w次阅读
- 电量测量装置的高精度校验实现方案 1338次阅读
- 低功耗待测器件实现高精度低电流测量两种方式 3552次阅读
- 基于Verilog计算精度可调的整数除法器的设计 1934次阅读
- 高精度便捷式全数字示波器设计 4818次阅读
- 简易高精度温度测控器电路 3604次阅读
- 采用温度频率转换的高精度温控电路图 2897次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1489次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 91次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 9次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 3次下载 | 免费
- 8基于单片机的红外风扇遥控
- 0.23 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30319次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多