打印

请教定点DSP上的浮点计算表示的问题

[复制链接]
4763|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xinyancode|  楼主 | 2008-12-8 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


我正在用定点DSP (F2407A)做一个IIR数字滤波器,需要用到小数表示的浮点数。但不知在CCS的C语言该怎么表示?


例如,能直接用float x = 0.03;这种方式吗?
定点dsp不是只能处理整数吗?得用Q15, Q14等方式表示吗。
   
   
   
   
   
可是,我看到在F2812上有一段数字滤波的c程序。不过他是在simulator软件仿真环境下运行的。不是硬件仿真。   
   
#include"math.h"

float IIR()
{
    float fSum;
    fSum=0.0;
    for ( i=0;i<IIRNUMBER;i++ )
    {
        fSum+=(fXn*fAn);
        fSum+=(fYn*fBn);
    }
    return(fSum);
}

不知这样的写法在硬件仿真时也行吗?




=========================

非常感谢!

相关帖子

沙发
chen3bing| | 2008-12-8 15:31 | 只看该作者

re

可以的。

使用特权

评论回复
板凳
xhjed| | 2008-12-9 13:16 | 只看该作者

定点DSP

如果你的是定点的DSP,你就不要出现float类型。习惯用定点的吧

使用特权

评论回复
地板
xinyancode|  楼主 | 2008-12-9 13:53 | 只看该作者

I want a reply

非常感谢!

看了上面两位朋友的回复后,还是没有归纳出一个好的结论。

一方面,看到TI的定点DSP书上说,浮点数都用Q15,Q14等Q表示方法。

另一方面,也有程序上用float的表示的。


请各位继续指教,该用那种方式来表示浮点数呢。是不是在定点的DSP的C程序里就不应该出现float这个类型,是吗?

谢谢。

使用特权

评论回复
5
mybao| | 2008-12-9 18:21 | 只看该作者

搜索一下定标数

定标数专门用于定点DSP的小数运算

使用特权

评论回复
6
mybao| | 2008-12-11 18:27 | 只看该作者

re

如果用浮点数,运算要调用子程序,编译器怎么优化也是子程序。
用定标数运算,小数的乘加都可以用一条指令实现。

使用特权

评论回复
7
jacky-cheung| | 2008-12-12 10:40 | 只看该作者

一群傻蛋

谁说定点DSP不能用浮点数?
206,2407,2812都可以用,5000也可以。直接定义就可以,
float x;
double y;
定点DSP的精度低一些而已,精确到小数后7位。

使用特权

评论回复
8
helainthus| | 2016-11-21 19:47 | 只看该作者
jacky-cheung 发表于 2008-12-12 10:40
谁说定点DSP不能用浮点数?206,2407,2812都可以用,5000也可以。直接定义就可以,float&nbsp;x;double&nb ...

应该是数据有效为保证7位吧???

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

147

帖子

0

粉丝