打印
[DSP编程]

【求助】如何用MATLAB生成CCS可用的.dat文件

[复制链接]
5656|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
le_pataya|  楼主 | 2015-3-13 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用matlab生成正弦函数,转成.DAT文件供CCS使用
下面是我的matlab程序:
f1=10;f2=100;fs=4000;N=4000;
x = linspace(0,N/fs,N);
y1 = sin(2*pi*f1*x);
y=y1;
figure
plot(x,y) %创建文件sine.dat,可写入
fid=fopen('mysine.dat','w');%将文件头写入文件,将生成的y信号写入到文件,格式四位小数
fprintf(fid,'1651 1 0 1 0\n');
fprintf(fid,'0x%x\n',y+(y<0)*1); %将文件头写入文件,将生成的y信号写入到文件,格式十六进制,负数用补码

matlab波形没有问题,是一个幅度为1的正弦波
但是
.dat文件是可以被CCS打开的,但是波形严重错误,是类似锯齿一样凌乱的波形

我怀疑是最后一句有问题。好凌乱~不知道怎么才能改,使得正确生成正弦呢?

新人。求大神指教,谢谢^^

相关帖子

沙发
zhangmangui| | 2015-3-13 23:35 | 只看该作者
你是通过GRAPH查看的吗     还有你的.dat通过CCS  load之后存放到哪儿了
通过查看MEMORY的方式看看    是不是跟你生成的数据一样
如果一样  我觉得应该是你的Graph设置问题了

使用特权

评论回复
板凳
le_pataya|  楼主 | 2015-3-14 10:55 | 只看该作者
感觉像是.DAT的问题,也就是matlab里面编程有问题~我用一个网上下载的正确的DAT文件导入CCS后,CCS显示的图像是正确的。

使用特权

评论回复
地板
aresc| | 2015-3-14 20:39 | 只看该作者
用下面这个程序就可以了,但是是16位定点格式的,如果是32位的,相应的改一下就可以了。

close all; clear all; clc;
f1=10;f2=100;fs=4000;N=4000;
x = linspace(0,N/fs,N);
y1 = sin(2*pi*f1*x);
y=y1;
figure
plot(x,y) %创建文件sine.dat,可写入
fid=fopen('mysine.dat','w+t');%将文件头写入文件,将生成的y信号写入到文件,格式四位小数
fprintf(fid,'1651 1 0 1 0\n');

t = int16(2^15*y);              % if 32-bit fixed-point, int32(2^31*y);
t2 =double(t);
for i=1:length(t2)
    fprintf(fid,'0x%04x\n',t2(i)+(t2(i)<0)*2^16); % if 32-bit fixed-point, t2(i)+(t2(i)<0)*2^32);
end

fclose(fid);

使用特权

评论回复
5
le_pataya|  楼主 | 2015-3-15 11:53 | 只看该作者
aresc 发表于 2015-3-14 20:39
用下面这个程序就可以了,但是是16位定点格式的,如果是32位的,相应的改一下就可以了。

close all; clear ...


谢谢。可是我生成的CCS上的图像还是类似锯齿形的啊。
你的DAT看上去确实比我之前的对劲,可是CCS导入后还是有问题。16,32位都试过了,波形一样类似锯齿一样的。

而且没有负值

求大神帮忙看看 谢谢!

使用特权

评论回复
6
aresc| | 2015-3-15 18:03 | 只看该作者
本帖最后由 aresc 于 2015-3-15 18:05 编辑

那可能不接受定点类型的数据格式,我只是按你说的2的补码理解为定点格式的数据。那个文件里最高位为1的就是负值,比如0x8000,等等。

你要搞清楚CCS接受什么格式的数据,浮点还是定点?具体的文本格式是什么样的?比如数值1.0吧,用32为定点表示是0x7FFFFFFF,如果用浮点格式是0x3F800000.或者直接写成1.0在文本文件中。我很久没用CCS,不清楚它需要什么样的数据格式。或者你用CCS存一段1.0的数值到文本文件贴出来看看?

使用特权

评论回复
7
魏志勇| | 2018-6-27 15:00 | 只看该作者
le_pataya 发表于 2015-3-14 10:55
感觉像是.DAT的问题,也就是matlab里面编程有问题~我用一个网上下载的正确的DAT文件导入CCS后,CCS显示的图 ...

在哪里下载的请问

使用特权

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

本版积分规则

4

主题

10

帖子

0

粉丝