大家好,本人初学DSP,对CCS操作了解的不多,现在遇到一点问题,希望大家帮助。非常感谢。
本人按照网络教程在matlab中生成一个波形,并按DSP可读取的格式存为.dat文件。
(教程网址:)
matlab程序:
clear all; close all clc; Fs = 150e3; %定义采样率 F1 = 10e3; %定义频率 F2 = 8e3; sample_num = 500; %定义数据点个数 m = 1:sample_num; x = sin(2*pi*F1*m/Fs)+sin(2*pi*F2*m/Fs); %生成原始数据 y = typecast(single(x),'uint32'); %首先将x强制转换成single型,然后再转换成具有相同二进制形式的uint32型 这样做是为了方便dat文件存储 figure; plot(x); title('Matlab生成的原始数据'); fid=fopen('2.dat','wt'); %以写文本的方式打开一个叫input_file的dat文件(如果没有会自行创建一个) fprintf(fid,'1651 1 180000 1 %x\n',length(m)); %输出文件头,文件头必须是dsp所能识别的, %属性分别是固定标识、数据类型(十六进制)、基地址(根据你要存储在DSP什么地址处决定)、数据长度 fprintf(fid,'0x%08x\n',y); %输出y数组,并写到与fid标示符相同的文件 fclose(fid); %关闭fid标示符的文件。
得到的.dat文件如下图:
之后打开CCS6.0,load memory,得到如下数据:
在graph中查看如图:
和最开始生成的数据相差甚远。
请问这个问题该如何解决?希望论坛各位朋友给予帮助。
谢谢。