原创 DSP硬件实现的优化(七)—硬件实现中的定点表示

2013-1-24 21:26 2122 7 7 分类: 处理器与DSP 文集: DSP硬件实现的优化

    用硬件实现DSP基本上是基于定点的算法。什么叫做定

点呢?定点的意思就是小数点的位置是确定的,这是跟浮

点不同的地方。比如说,有一种常用的表示定点的方法,

比如说一个数的定点方式为(1, 6, 4),意思就是说这个数的

长度为6比特,最高位为符号位,小数位占据了4比特,整

数位占据了1比特。举个例子:

 

    101011,假设该数的定点方式为(1,6,0),那么该数的实

际数值为(-1)*25 + 1*23 + 1*21 + 1 = -21。

 

    001011,假设该数的定点方式为(1,6,0),那么该数的实

际数值为1*23 + 1*21 + 1 = 11。

 

    如果一个数的定点方式为(0,6,0),这里的0代表该数为无

符号数。假设101011的定点方式为(0,6,0),那么该数实际

为43。

    如果有小数点,假设为(1,6,4),那么101011实际对应的

数值是多少呢?由于这时候小数点点在第4位,那么权值发

生了变化,101011 实际对应的值为(-1)*21 + 1*2-1 + 1*2-3 +

1*2-4  = -2 + 0.6875 = 1.3125。 如果该数的定点化为

(0,6,4),那么101011实际对应的值是21 + 1*2-1 + 1*2-3 +

1*2-4  = 2.6875。

 

    那么这些定点数是如何而来呢?或者是说为什么要使用

定点数?事实上一个完整的,规范的DSP系统,源头来源

于算法仿真。算法设计人员根据系统需求设计算法,一般

在进行算法功能性实现的时候仿真常用的数据都是浮点

数,也就是说在初步做仿真时,数据用的都是double型或

者是float型,在基于这种类型的算法仿真符合系统性能要求

后,接着下来就要进行定点仿真。所谓的定点仿真就是把

浮点数据做定点化,比如说做仿真时候的输入数据幅度从-

0.8~0.8,中间的数据基本是连续的,定点化就是把这些几

乎是连续的浮点数据做阶梯式的量化,即改变数据的表示

方法(定点),裁减数据的表示位宽。前面ADC采集时候

的量化精度却是阶梯式的,而且硬件的处理资源则是定点

乘法远远方便于浮点乘法,所以一般来说都会做定点仿

真。即根据系统的精度和数据的概率统计情况结合在该定

点精度情况下的系统指标来做精度的取舍(定点表示数据

的精度一般来说远逊于浮点)。这就是定点的由来。在业

界,基本上用硬件实现DSP,特别是复杂大规模的DSP系

统用的都是定点处理。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条