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

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

  1. (KEILv5)使用matlab绘制从KEIL memory导出的内存数据

    使用matlab绘制从KEIL memory导出的内存数据 如标题,某些时候我们需要分析keil调试过程中的数据,比如从I2S.SPI.I2C或者UART获取到的波形数据,这些数据时数字流,通过逻辑分 ...

  2. 关于Java导出100万行数据到Excel的优化方案

    1>场景 项目中需要从数据库中导出100万行数据,以excel形式下载并且只要一张sheet(打开这么大文件有多慢另说,呵呵). ps:xlsx最大容纳1048576行 ,csv最大容纳1048 ...

  3. 问问题_Java一次导出百万条数据生成excel(web操作)

    需求:在web页面操作,一次导出百万条数据并生成excel 分析: 1.异步生成Excel,非实时,完成后使用某种方式通知用户 2.生成多个excel文件,并打包成zip文件,因为一个excel容纳不 ...

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

    1.PLSQL导出数据结构(数据表.序列.触发器.函数.视图) 1)在左侧 点击tables 2)Tools-->Export User Objects 3)红色1 是你要选择导出的表,红色2 ...

  5. delphi 2010 导出sql server 数据到DBF乱码问题

    近日,由于业务需要导出sql server 数据到DBF文件,要查询多表记录,并适当处理后生成导出DBF文件,系统使用delphi2010平台开发. 首先按要求在VFP里创建DBF表,字段数有240个 ...

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

    第一步:需要引用org.in2bits.MyXls程序集到使用页面 第二步:前台代码 <asp:Button ID="LeadingOut" runat="serv ...

  7. NodeJs之EXCEL文件导入导出MongoDB数据库数据

    NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...

  8. JAVA使用POI如何导出百万级别数据(转)

    https://blog.csdn.net/happyljw/article/details/52809244   用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会 ...

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

    一; delphi 快速导出excel   uses ComObj,clipbrd;   function ToExcel(sfilename:string; ADOQuery:TADOQuery): ...

随机推荐

  1. 为免费app嵌入Admob广告

    为免费app嵌入Admob广告,进而获得广告收入. 1.http://www.admob.com/注册一个帐号, 添加Add Mobile Site/app,输入相关信息后,提交完成, 下载Andro ...

  2. Ext表单提示方式:msgTarget

    Ext.QuickTips.init();  Ext.form.Field.prototype.msgTarget = 'side'; Ext表单提示方式:msgTarget:有4中方式:qtip,t ...

  3. 《STL源代码剖析》---stl_set.h阅读笔记

    SET是STL中的标准容器,SET里面的元素会依据键值自己主动排序,它不像map那样拥有实值value和键值key的相应,set仅仅有实值.SET的底层实现时RB-tree,当插入到RB-tree中后 ...

  4. key-value 多线程server的Linux C++实现

    项目需求 整体思路 网络通信 字符解析 数据存储与查询 1 存储管理 2 数据查询 多线程 待改进未实现的想法 GitHub源代码 项目需求 设计一个基于Socket或基于HTTP的server,服务 ...

  5. Matlab制作个人主页

     Matlab代码编辑器具有代码发布功能,如下图,当编辑好代码后,点击Publish按钮可以发布html网页格式的代码使用说明.       从上面的图中可以看到,发布功能可以控制字体(黑体.斜体.等 ...

  6. Linux命令大观

    一.文件管理 cat chattr chgrp chmod chown cksum cmp diff diffstat file find git gitview indent cut ln less ...

  7. 附2 hystrix详述(2)- 配置

    一.hystrix在生产中的建议 1.保持timeout的默认值(1000ms),除非需要修改(其实通常会修改) 2.保持threadpool的的线程数为10个,除非需要更多 3.依赖标准的报警和监控 ...

  8. windows media server 组件安装后流媒体服务器启动失败

    做好的web应用,去客户现场部署的时候发现流媒体服务器不能启动.(现场服务器系统为windows server2008 R2) 自己测试的时候搭建环境没什么问题.从来没有遇到安装windows med ...

  9. go语言基础之冒泡排序原理

    1.冒泡排序原理 示例: package main //必须有个main包 import "fmt" import "math/rand" import &qu ...

  10. JavaScripts基础

    JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.( ...