导出CCS3.3数据及使用matlab处理的方法

CCS3.3是一款DSP的集成开发环境(IDE)。在做DSP开发时,为验证算法。经常须要使用matlab进行算法验证,验证算法就须要数据。因此,一种交互的方法是:

  1. 使用DSP开发板连接CCS
  2. 用CCS3.3菜单中的“File->Data->Save..”功能导出DSP内存中的数据到PC的.dat文件里
  3. 使用Matlab读取.dat文件,进行数据处理

以下给出使用Matlab读取CCS导出的dat文件的方法:

% =========================================================================
% Read *dat file of CCS3.3
% xiahouzuoxin
% 2014.04.21
% =========================================================================

% clc;clear all;close all;

% 对话框选择*.dat文件
[fname,pname]=uigetfile(...
    {‘*.dat‘;‘*.*‘},‘Input *.dat File‘);

fid = fopen(fullfile(pname,fname));
fseek(fid, 21,-1);  % 去文件头, 21字节。如 1651 1 80000006 0 100

% 按指定格式读取解析
fm = 4;
switch (fm)
    case 4  % 按4Byte格式读,如 0x 80000000
        x = textscan(fid, ‘%2s %8s‘);
        z(:,1) = hex2dec(x{2});
    case 2 % 按2Byte格式读。如 0x 8000 0000
        x = textscan(fid, ‘%2s %4s %4s‘);
        z(:,1) = hex2dec(x{3});
        z(:,2) = hex2dec(x{2});
    case 1 % 按1Byte格式读。如 0x 80 00 00 00
        x = textscan(fid, ‘%2s %2s %2s %2s %2s‘);
        z(:,1) = hex2dec(x{5});
        z(:,2) = hex2dec(x{4});
        z(:,3) = hex2dec(x{3});
        z(:,4) = hex2dec(x{2});
    otherwise
        z = [];
end

if ~isempty(z)
    % 将数据处理代码放在这里

end

fclose(fid);

程序中默认DSP内存中数据的存储格式为整数类型,而对于浮点型DSP如TMS320C6713B,经常在内存中是float或double格式存储的,

这时。我们还须要一个转化为浮点数的操作。因此我写了一个转化为float类型的函数,

function y = integer2float(x, ishex)
% =========================================================================
% 有些数据y原本是float类型。在内存中是按float格式存储
% 而如今按整数将其从内存中读出变成了x
% 这个函数就是用于将按整数格式读出的x转变成y
% ishex~=0表示输入为十六进制格式
% 注:要完毕该函数,你必须了解IEEE浮点数的格式
%
% xiahouzuoxin
% 2014.04.21
% =========================================================================

if nargin == 2
    if (ishex)
        x = hex2dec(x);
    end
end

[h w] = size(x);
y = zeros(h,w);

for i = 1:h
    for j = 1:w
        sign = bitget(x(i,j),32);
        exponent = bitget(x(i,j),24:31) * 2.^(0:7).‘;
        fraction = bitget(x(i,j),1:23) * 2.^(-23:-1).‘;
        y(i,j) = (-1)^sign * (1+fraction) * 2^(exponent-127);
    end
end

依据不同的输入情况(能够为十六进制的字符串表示或十进制数,但必须≤8Bytes),用法举个样例:

>> x=‘4565A012‘
>> y=integer2float(x,1);

>> x = 23974881923;
>> y = integer2float(x)

后来发现,Matlab已经早有相应的方法了,

y = typecast(uint32(z),‘single‘);

能够直接把z转化为解析为单精度浮点数。详细使用请參见

>> help typecast
时间: 2024-10-22 07:00:55

导出CCS3.3数据及使用matlab处理的方法的相关文章

用php导入10W条+ 级别的csv大文件数据到mysql。导出10W+级别数据到csv文件

转自:http://blog.csdn.net/think2me/article/details/12999907 1. 说说csv 和 Excel 这两者都是我们平时导出或者导入数据一般用到的载体.两者有什么区别呢?csv 格式更兼容一点.那么共同点都是GBK格式的,非UTF8.所以我们上传文件的时候,老是出现乱码,就是编码问题没有转好导致. 2. 推荐的几种方法 1. 函数 fgetss($handel);  返回字符串.它就是strip_tags(fget($handel))的组合读取cs

mysqldump导出--数据+结构+(函数+存储过程)

mysqldump--导出工具 #导出某个数据库--结构+数据 shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt db_name |gzip -9 > /db_bakup/db_name.gz #导出某个数据库的表--结构+数据+函数+存储过程 shell>mysqldump -h192.168.161.124 -uroot -pxxxxxx --opt -R db_name |gzip -9 > /db_backup/

Delphi 导出数据至Excel的7种方法【转】

转自:http://blog.csdn.net/zang141588761/article/details/52275948 一; delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery):boolean; const xlNormal=-4143; var y : integer; tsList : TStringList; s,filename :string; a

Oracle导出数据结构和数据表的方法

1.PLSQL导出数据结构(数据表.序列.触发器.函数.视图) 1)在左侧 点击tables 2)Tools-->Export User Objects 3)红色1 是你要选择导出的表,红色2 是你要导出到.sql文件 存放到自己电脑位置,红色三就是导出的意思,做完这一步就已经把数据表的结构导出来了 2.PLSQL导出表数据 1)在左侧 点击tables,然后 Tools-->Exports Tables 2)注意红色的部分,导出文件后缀为.sql

mysqldump导出 timestamp类型数据 时区偏差8小时

timestamp数据类型导出时会有时区问题,导出机器默认为东八区时区,导出时的TIME_ZONE='+00:00' 这样导出的数据和表里看到的差了8小时.如果想在数据导出时不默认进行时区的转换,可以在导出语句中增加参数--skip-tz-utc,这样导出的timestamp数据和在表里看到的时候是一样的 栗子:mysqldump -uroot -p dbname tablename -w"reg_date>str_to_date('2016-1-1','%Y-%m-%d')"

Bash中使用MySQL导入导出CSV格式数据[转]

转自: http://codingstandards.iteye.com/blog/604541 MySQL中导出CSV格式数据的SQL语句样本如下: select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n'; MySQL中导入CSV格式数据的SQL语句

在asp.net中导出表格Excel数据

第一步:需要引用org.in2bits.MyXls程序集到使用页面 第二步:前台代码 <asp:Button ID="LeadingOut" runat="server" Text="导出"  onclick="LeadingOut_Click" /> 第三步:在aspx文件的后台写按钮的点击事件 protected void LeadingOut_Click(object sender, EventArgs e)

设置导出的excel数据

/** * 设置导出的excel数据 * @param type $objPHPExcel * @param type $colModel * @param type $grid */public function setExcelData($objPHPExcel, $colModel, $grid){ $table = $this->model->_table; for ($i = 0, $t = 0; $i < count($colModel); $i++) { $label =

Oracle Data Pump 导出和导入数据

Data pump export/import(hereinafter referred to as Export/Import for ease of reading)是一种将元数据和数据导出到系统文件集/从系统文件集导入数据的服务端工具;导出的文件可以移动到其它服务器上,但只能使用impdp导入;使用前要先建立目录(directory)和授权: conn / as sysdba CREATE DIRECTORY PUMP_DIR AS '/u01/backup'; 创建后即可查询出目录信息,