DSP代码优化方法(4)

2019-07-29 15:58发布

方法一 把浮点运算改成定点运算
        因为C6x DSP板并不支持浮点运算,但我们的原始程序代码是浮点运算的格式,所以必须改成定点运算,而其修改后的执行速度也会加快很多。我们采用 Q-format 规格来表示浮点运算。以下将介绍其相关原理。
        定点DSP使用固定的小数点来表示小数部份的数字,这也造成了使用上的限制,而为了要分类不同范围的小数点,我们必须使用Q-format的格式。不同的Q-format表示不同的小数点位置,也就是整数的范围。表2呈现Q15数字的格式,要注意在小数点后的每一位,表示下一位为前一位的二分之一,而MSB (most-significant-bit ) 则被指定成有号数 ( Sign bit )。由表2可以知道,当有号数被设成0而其余位设成1时,可得到最大的正数 (7FFFH ) ;而当有号数被设成1而其余位设成0时,可得到最大的负数 ( 8000H ) 。所以Q15格式的范围从-1到0.9999694 (@1) ,因此我们可以藉由把小数点向右移位,来增加整数部份的范围,如表3所示,Q14格式的范围增为-2.0到1.9999694 (@2) ,然而范围的增加却牺牲了精确度。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
拿起书本
2019-07-30 11:17
方法六 写汇编语言
        虽然由C语言所编译出来的汇编语言可以正确无误的执行,但是这个汇编语言却不是最有效率的写法,所以为了增加程序的效率,于是在某些地方,例如一些被呼叫很多次且程序代码不长的函式(function),必须改以自己动手写汇编语言来取代。

一周热门 更多>