原文转载于:http://blog.csdn.net/hj199404182515/article/details/60467027   非常感谢。

我们在学习使用TI的DSP集成开发环境CCS(Code Compose Studio)时,有时特别想在线的看一下内存中的数据到底是个什么样子,或者想看一下它的频谱是个什么样子,如果不知道CCS自带有绘图功能或者知道但不是很会使用,这无疑会使程序调试带来很大的不便。对于新手来说这一功能显得有些"高大上",让很多人感觉它很难使用。今天笔者就来详细的介绍一下如何正确的使用其自带的Graph功能。

为了更好的演示,笔者自己写了一段演示代码,先贴上来。

[cpp] view plaincopyprint?
  1. #include "math.h"
  2. #define PI                           3.1415926      //定义圆周率
  3. #define Fs                           1000                //定义采样频率 Hz
  4. #define F1                          100                  //信号频率  Hz
  5. #define F2                          20
  6. #define Sample_points    1024               //采样点数
  7. float signal1[Sample_points];
  8. float signal2[Sample_points];
  9. int main(void)
  10. {
  11. int i;
  12. float t;
  13. for(i=0;i<Sample_points;i++)
  14. {
  15. t = i*1.0/Fs;
  16. signal1[i] = sin(2*PI*F1*t);
  17. signal2[i] = sin(2*PI*F2*t);
  18. }
  19. while(1);
  20. }

很简单的一段代码,大致意思就是生成了两个不同频率的正弦信号。分别保存在了数组signal1和signal2中。编译该程序,然后连上仿真器连上相应的DSP芯片,笔者用的是TMS320C6748,连上后让程序运行到while(1);然后停止运行。如下图所示

Single Time使用演示

点击菜单栏Tools->Graph->Single Time,如图所示

点开后出现如下的对话窗口:

下面对里面的每一项参数进行一下说明

Acquisition Buffer Size:表示通过仿真器从DSP的内存中读取的数据的大小,由于程序里用于存储信号的数组大小是1024,这里我们设置成1024,当然也可以设置成比他更小的值,这样就只能看到信号的部分图像。

Dsp Data Type:表示你的数据是什么类型的,它一共有如下几种类型可选如图所示:

演示程序中的数组是float型的所以选择32 bit floating point。

Index Increment:索引增量,表示每个数据点序号的相差值,这里我们是逐点显示的,因此默认设置为1,如果想要每隔一个点显示一个那么你就应该设置成2。

Q_Value:Q值,一般这不常用,默认就行。

Sampling Rate Hz:以Hz为单位的采样率,在这里我们的采样率是1K,因此设置成1000。

Start Address:开始地址,表示你要显示的数组的首地址,我们现在想要看的是数组signal1因此,设置成signal1。

Auto Scale:自动调整显示比例使其适应整个显示窗口。  这里我们开启。

Axis Display :显示坐标轴,这里我们开启。

Data Plot Style:数据绘制类型,有Line和Bar两种,这里我们选择Line。

Display Data Size:显示数据大小,表示要将多少个点的数据进行显示,注意这个值一定要小于等于Acquisition Buffer Size,这里我们设置成1024。

Grid Style:网格类型,有 No Grid, Minor Grid, Major Grid三种选项,这里我们选择No Grid。

Magnitude Display Scale:幅值显示类型,有Linear(线性的)Logarithmic(对数的),这里我们选择Linear。

Time Display Unit:显示时间的单位有sample, s, ms, us几种可选,其中sample表示显示的点的序号,这里我们选择ms。

Use Dc Value For Graph:是否使用Dc值,一般不常用,默认就行。

整个的设置如下:

设置完成后,点击OK。出现如下的窗口。

可以通过窗口右上方的菜单对图像进行调整,比如我想放大,这是可以点击带+号的放大镜。如下图所示。

Dual Time的使用方法与Signle Time相比,除了能够同时显示两个数组的图像,其它的都一样。

FFT Magnitude使用演示

点击菜单栏Tools->Graph->FFT Magnitude,如图所示

里面有些参数之前已经介绍,这里不再重复,这里只介绍没有的。

Signal Type :信号类型,有Real,Complex这两种,由于演示程序里的是实数据,因此我们选择Real,如果你的数据类型是Complex,那么请选择Complex,此时会多出一些参数,因为我们平时用的大多数是实数据,因此在此不介绍Complex的。

Frequency Display Unit :频率显示单位,有Hz,KHz,MHz三种,这里我们选择Hz。

FFT Order :FFT的阶数,由它来决定FFT Frame Size,例如 FFT Order 设置为5 那么FFT Frame Size 就为32 = 2^5。这里我们设置成10,那么FFT Frame Size就是1024。

FFT  Frame Size :FFT一帧变换点数,它由FFT Order决定。

FFT Window Function :FFT窗函数,就是选择做FFT变换时采用什么窗函数,有Rectangular(矩形窗,相当于没有加窗),Bartlett,Blackman,Hamming,Hanning,至于选择什么窗函数根据实际的需求来决定到底采用哪一个窗函数(不知道这些窗函数是什么的,请阅读信号与系统方面的书籍),这里我们选择的是Rectanguar,也就是不加窗。

设置好的参数如下图所示。

点击OK,出现如下所示窗口。

峰值点正好在100Hz处。

关于FFT Magnitude PhaseComplex FFTFFT Watterfall的使用他们都与FFT Magnitude的类似,相信读者在熟练掌握了Signle TimeFFT Magnitude的使用方法后,很快的就能学会使用其它的绘图方法。

笔者使用的CCS版本是6.13,在其它的版本上使用方法与之类似,读者在学习其他版本的Graph功能时,依然可以以此为参考。

关于CCS软件的Graph功能使用详解相关推荐

  1. python画简单的图形的代码-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  2. python画图代码大全-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  3. python画图软件是哪个_Python实现画图软件功能方法详解

    Python实现画图软件功能方法详解,按钮,事件,绑定,快捷键,直线 Python实现画图软件功能方法详解 易采站长站,站长之家为您整理了Python实现画图软件功能方法详解的相关内容. 概述 虽然P ...

  4. Nagios远程监控软件的安装与配置详解

    Nagios远程监控软件的安装与配置详解 作者:redhat_hu Nagios是一款功能强大的网络监视工具,它可以有效的监控windows.linux.unix主机状态以及路由器交换机的网络设置,打 ...

  5. [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. php怎么自定义设置打印区域,JavaScript_jQuery实现区域打印功能代码详解,使用CSS控制打印样式,需要设 - phpStudy...

    jQuery实现区域打印功能代码详解 使用CSS控制打印样式,需要设置样式media="print",并且将页面中不需要打印的元素的样式display属性设置为none.如DEMO ...

  7. linux 软件 名称 更新,linux软件版本管理命令update-alternatives使用详解

    linux软件版本管理命令update-alternatives使用详解 update-alternatives 命令用于处理linux系统中软件版本的切换,在各个linux发行版中均提供了该命令,命 ...

  8. CentOS7下的软件安装方法及策略详解

    CentOS7下的软件安装方法及策略详解 互联网   01-24 15:15:09   作者:佚名   我要评论 今天小编为大家带来的是CentOS7下的软件安装方法及策略详解:希望对大家安装Cent ...

  9. STM32HAL库-针对芯片内部FLASH读保护实现防篡改、破解功能(详解)

    目录 概述 一.使用方法 二.STM32CubeMx配置​ 三.Examples 四.运行结果 五.总结 概述 本篇文章介绍如何使用STM32HAL库,针对芯片读写保护实现防篡改.破解功能(详解),本 ...

  10. 视频+白皮书 | Kyligence 与 Kylin 功能差异详解

    上周,Kyligence 企业级大数据分析平台研发负责人张逸凡,为大家带来了<Kyligence 与 Kylin 功能差异详解>线上分享,点击这里查看视频和下载对比白皮书. 以下是实录 Q ...

最新文章

  1. 回调函数自定义传参_koroFileHeader:一个用于生成文件头部注释和函数注释的插件...
  2. 国庆假期,推荐一款假日必备的看片神器!
  3. Cell子刊:MRI有助于揭示睡眠之谜
  4. Spring Cloud(6.1):搭建OAuth2 Authorization Server
  5. style.width与offsetWidth的区别
  6. 大工19春《计算机组成原理》,大工19春《计算机组成原理》在线作业3.doc
  7. 程序员身体容易出什么毛病..
  8. KVM虚拟化笔记(十)------kvm虚拟机扩充磁盘空间
  9. 使用cookie,点击关闭一天后显示的弹窗
  10. 系统设计2:数据库设计
  11. 关于今天zcash4win钱包出错的解决方案Error in updating status 怎么解决
  12. 计算机病毒是谁做的,第一个制造电脑病毒的人是谁?
  13. 如何获取easyclick手机安装包
  14. 足球数据API接口 - 【球员资料】API调用示例代码
  15. 学金融会python_大学生金融小白自学Python做量化投资需要注意哪些?
  16. 缺失数据填补基础方法(3)——Multiple Imputation by Chained Equations (MICE)
  17. GDPR合规|数据控制者与数据处理者区别大吗?分别承担什么法律责任?
  18. hadoop可以解决什么问题_CC光嫩肤 可以解决什么皮肤问题?
  19. python类型对象<class ‘type‘>的理解与探究
  20. 测试地铁速度的软件,地铁速度传感器作用,看这一篇就够了!

热门文章

  1. Perl语言入门,第17章自写习题答案。
  2. 黑马MFC教程总结(后续更新)
  3. textarea高度自适应且不出现滚动条
  4. 数据库学习入门(转)
  5. 最新支持android的手机型号,Andorid10支持手机型号有哪些 安卓10适配机型介绍
  6. 华为交换机导入配置_华为交换机配置教程 华为核心交换机配置
  7. Sigar使用详解(免费)
  8. 巧记肖特基二极管BAT54C、BAT54S、BAT54A
  9. Visio简单画图使用方法
  10. android贪吃蛇设计报告,基于android的贪吃蛇游戏设计与开发