基于MATLAB 的DSP 调试方法

合集下载

MATLAB入门及其在DSP中应用(说明)

MATLAB入门及其在DSP中应用(说明)

特殊语法1 特殊语法1
●矩阵及其元素的赋值: 矩阵及其元素的赋值: 赋值 )=[5,4,3] 指V矩阵的第 行整行对应赋值。 矩阵的第5行整行对应赋值 赋值。 ①V(5,:)= ( , )= 矩阵的第 矩阵的第2行和第 行与第1列和 ②N=V([2,4],[1,3]) 指V矩阵的第 行和第 行与第 列和 = 矩阵的第 行和第4行与第 列交差点的4个元素取出 矩阵N。 第3列交差点的 个元素取出,形成新的 ×2矩阵 。 列交差点的 个元素取出,形成新的2× 矩阵 )=[ 表示要从V中删抽掉第 ③V([2,4,5],:)= ];表示要从 中删抽掉第 、第4、第 ( )= 表示要从 中删抽掉第2、 、 5行 实际是看成对以上3行整行赋空矩阵[ ],它无元素, 5行,实际是看成对以上3行整行赋空矩阵[ ],它无元素, 行整行赋空矩阵 而不是0元素 本概念用于缩小已有的矩阵规模。例如: 元素! 而不是0元素!本概念用于缩小已有的矩阵规模。例如: a(:,[2 4])= ];表示抽掉 矩阵中的第 列与第 列。 (:, )=[ 表示抽掉a矩阵中的第 列与第4列 (: )= 表示抽掉 矩阵中的第2列与第 只有表达式,没有变量。 ④只有表达式,没有变量。不产生数字结果或产生但不 想保存它,这时软件都默认用临时变量ans来存放 来存放。 想保存它,这时软件都默认用临时变量 来存放。如 a/7,如果原来 =7,那么结果是 =1.0000。 ,如果原来a= ,那么结果是ans= 。
基本语法( 基本语法(续)
●矩阵及其元素的赋值: 矩阵及其元素的赋值: 变量=表达式(或数) 标量看成是1× 阶的矩阵 阶的矩阵。 变量=表达式(或数),标量看成是 ×1阶的矩阵。 X=[-1.03 sqrt(3), (1+2+3)/5*4, 23; 1 2 3 4], = , 方括号[ 表矩阵 行元素之间用空格 建议使用) 表矩阵, 空格( 方括号 ]表矩阵,行元素之间用空格(建议使用)或逗 分隔,矩阵内不同的元素行 分号“ 隔开。 号“,”分隔,矩阵内不同的元素行用分号“;”隔开。 每一句结尾用逗号 逗号“ 每一句结尾用逗号“,”或 Enter就立即执行该行并显 就立即执行该行并显 示结果。若用分号 分号“ 也是立即执行, 示结果。若用分号“;”后 Enter也是立即执行,但不 也是立即执行 显示结果。 显示结果。 变量元素用园括号内含数字来表达: 园括号内含数字来表达 ●变量元素用园括号内含数字来表达: 向量y( ),二维U( , ),三维w( , , ) ),二维 ),三维 向量 (4),二维 (2,3),三维 (2,3,5)注意 下标号之间用逗号分隔。下标超出则矩阵会自动扩展, 逗号分隔 下标号之间用逗号分隔。下标超出则矩阵会自动扩展, 跳空的元素自动赋 的元素自动赋0。该自动功能只对赋值功能有效。 赋值功能有效 而跳空的元素自动赋 。该自动功能只对赋值功能有效。

基于matlab的dsp实现

基于matlab的dsp实现
引言
数字信号处理(Digital Signal Processing——DSP)是一 门涉及许多学科且广泛应用于许多领域的新兴学科。DSP 包 括两重含义数字信号处理技术(Digital Signal Processing)和 数字信号处理器(Digital Signal Processor) 。 随着微电子技术、 信息技术和计算机技术的迅猛发展,数字信号处理技术应运 而生,发展迅速,并且日趋完善和成熟。数字信号处理已成 为一门极其重要的学科和技术领域,数字信号处理在通信、 语音、图像、自动控制、雷达、军事、航空航天、医疗和家 用电器众多领域获得了广泛应用。数字信号处理器(DSP)是 利用计算机或专用处理设备,以数值计算的方法,对信号进 行采集、滤波、增强、压缩、估值和识别等加工处理,借以 达到提取信息和便于应用的目的,其应用范围涉及几乎所有 的工程技术领域。
8.实验总结
通过这次的实验使我懂得了理论与实际相结合的重要性, 只有理论知识是远远不够的,只有把所学的理论知识与实践 相结合起来,从理论中得出结论,才能真正为社会服务,从 而提高自己的实际动手能力和独立思考的能力。在实验过程 中遇到问题, 可以说是困难重重, 也发现了自己的不足之处, 对以前所学过的知识理解得不够深刻,掌握得不够牢靠,通 过此次实验,让自己学到了许多东西,在此感谢老师的教导 和其他同学的无私帮助。
一.实验目的
1)学习 DSP 系统的构成及软件设计方法,编写 DSP 程序, 掌握 CCS 软件的调试方法。 2)掌握直方图统计的原理和程序设计方法。
二.实验设备
1)PC 机一台,操作系统为 Windows7,为了兼容性考虑,我 们在计算机上安装 VMware Workstation 虚拟机软件,并虚拟 WindowsXP 系统环境,以达到实验要求。 2)在虚拟 WindowsXP 系统下安装 CCS5000 及 MATLAB 仿真 软件。

DSP课程设计基于MATLAB的FFT算法实现

DSP课程设计基于MATLAB的FFT算法实现

1 引言 (1)2 基于MATLAB的FFT算法实现 (2)2.1系统总体流程图 (2)2.2 FFT运算规律及编程思想 (3)2.2.1语音信号的采集 (3)2.2.2 DIT-FFT算法的基本原理 (3)2.2.3 DIT-FFT算法的运算规律及编程思想 (5)3 Matlab程序实现 (10)4 系统人机对话界面 (13)4.1 GUI简介 (13)4.2 界面设计 (13)4.3 运行调试 (14)5 心得体会 (16)参考文献 (17)附录Ⅰ (18)附录Ⅱ (21)MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。

它以矩阵运算为基础,把计算、可视化、程序设计融合在一个简单易用的交互式工作环境中,是一款数据分析和处理功能都非常强大的工程适用软件。

它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数据滤波、傅立叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱位语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便的完成语音信号的处理和分析以及信号的可视化。

数字信号处理是MATLAB重要应用的领域之一。

对于有限长序列x(n),若要求其N点的傅里叶变换(DFT)需要经过2N次复数乘法运算和N*(N-1)次复数加法运算。

随着N的增加,运算量将急剧增加,而在实际问题中,N往往是较大的,如当N=1024时,完成复数乘法和复数加法的次数分别为百万以上,无论是用通用计算机还是用DSP芯片,都需要消耗大量的时间和机器内存,不能满足实时的要求。

MATLAB语言在DSP设计中的应用

MATLAB语言在DSP设计中的应用
最大浮点实数
flops
浮点运算次数
realmin
最小浮点实数
computer
计算机类型
pi
3.14159235358579
inputname *
输入变量名
i,j
虚数单位
size
多维数组的各维长度
length
一维数组的长度
为便于大量赋值,MATLAB提供了一些基本数组。举例说明:
A=ones(2,3),B=zeros(2,4),C=eye(3)
双曲正弦
acsch
反双曲余割
cosh
双曲余弦
tan
正切
asec
反正割
cot
余切
tanh
双曲正切
asech
反双曲正割
coth
双曲余切
asin
反正弦
csc
余割
表M-3指数函数
名称
含义
名称
含义
名称
含义
exp
指数
log10
常用对数
pow2
2的幂
log
自然对数
log2
以2为底的对数
sqrt
平方根
说明:表M-3、表M-4的使用形式与其它语言相似。如
a(s)
“单下标”寻访。生成“s指定的”一维数组。s若是“行数组”(或“列数组”),则a(s)就是长度相同的“行数组”(或“列数组”)
例:a=[1 2 3;4 5 6;7 8 9];
键入a(1,2)显示:
ans =
2
键入a(2,:)显示:
ans =
4 5 6
键入a(:,3)显示:
ans =
3
6
9

DSP课程设计报告--基于MATLAB的语音信号的频谱分析

DSP课程设计报告--基于MATLAB的语音信号的频谱分析

DSP课程设计——基于MATLAB的声音信号频谱分析1.课程设计目的综合运用数学信号处理的理论知识进行语音信号的频谱分析,通过理论推导得出相应结论,再利用MA TLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

2.理解设计基本要求1)熟悉离散信号和系统的时域特性。

2)熟悉线性卷积和相关的计算编程方法。

3)掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对离散信号、系统和系统的响应进行频域分析。

4)学会MATLAB的使用,掌握MA TLAB的程序设计方法。

5)利用MATLAB对wav文件进行频谱分析。

6)分别用不同的滤波器对加噪语音信号进行滤波,选择最佳滤波器。

3.课程设计内容选择一个wav文件作为分析的对象,或录制一段语音信号,对其进行频谱分析,分别对加噪前后的语音信号进行频谱分析,再通过不同滤波器根据信号的频谱特点重构语音信号,选出最佳滤波方案。

4.课程设计实现步骤(1)语音信号的获取选择一个wav文件作为分析的对象,可以利用Windows下的录音机或其他软件,录制一段自己的话音,在MATLAB中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,采样值放在向量y中,fs表示采样频率(Hz),bits表示采样位数。

[N1 N2]表示读取的值从N1点到N2点的值。

sound(y); 用于对声音的回放。

向量y则就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号。

下面是语音信号在MATLAB中的语言程序,它实现了语音的读入与打开,并绘出了语音信号时域波形,然后对语音信号进行频谱分析。

在MATLAB中,可以利用函数fft对信号进行快速傅里叶变化,得到信号的频谱特性。

在频谱特性中分析最大值的位置(可能有几个),它代表的频率和时域的采样时间有关,相邻的两点之间的距离为。

其中,N是离散傅里叶变换用的点数,是采样的时间,前面在读取wav文件时得到了采样频率。

《DSP技术实验》DSP程序的调试和分析方法实验一

《DSP技术实验》DSP程序的调试和分析方法实验一

《DSP技术实验》DSP程序的调试和分析方法实验一、实验目的1. 熟悉 CCS 集成开发环境,熟练掌握 DSP 程序设计方法;2. 熟悉利用 restrict、volatile 等关键字优化 DSP 程序,掌握利用#pragma 伪指令和内嵌操作优化 DSP 程序3. 掌握利用编译选项优化 DSP 程序的方法;4. 利用 DSPLIB 实现 FIR 滤波分析程序的优化设计。

二、实验预习内容1. 请写出 restrict 关键字的作用,并用之修改实验 1 中的 FIR 函数,优化DSP 程序。

答1:restrict关键字的作用:在函数参数中使用restrict关键字来定义指针变量,则在该函数中的指针变量不会指向同一个存储空间,这可以帮助编译器判别循环依赖性,使编译器充分利用流水线技术,从而提高优化水平。

答2:修改实验 1 中的 FIR 函数,优化 DSP 程序:DataBuf[i]=DataBuf[nx+i];改为:float*restrict pl;//Loop2float*restrict p2;p1=DataBuf;p2=&DataBuf[nx];for(i=0;i<nh-1;i++)p1[i]=p2[i];同时,把传输函数void FIR(float*x, float*h, float*y, float*DataBuf, float nh, float nx)改为:void FIR(float*restrict x, float*restrict h, float*restrict y, float*restrict DataBuf, float nh, float nx)2.请写出基于编译器反馈信息优化 DSP 程序的步骤。

答:阶段一:收集程序的剖析信息。

配置生成剖析信息选项-->生成剖析信息-->将剖析信息文件转化为相应反馈文件。

阶段二:利用收集的剖析信息优化DSP程序。

DSP基于Matlab的语音信号处理(代码)

DSP基于Matlab的语音信号处理(代码)

数字信号处理2.1.2 采样频率采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。

采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。

采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。

这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。

2.1.3 采样位数与采样频率采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。

采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。

采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。

无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。

每增加一个采样位数相当于力度范围增加了6dB。

采样位数越多则捕捉到的信号越精确。

对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达441000次。

显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。

2.2 语音信号的分析及处理方法2.2.1 语音的打开在matlab平台下,利用wavread进行语音采集, 得到语音的分辨率、采样率以频率特性。

2.2.2 语音信号的频谱分析画出语音信号的时域波形,利用函数fft对信号进行快速傅里叶变换,得到信号的频谱特性。

2.2.3产生噪声信号利用matlab产生固定频率的交流噪声,并加到语音信号中去,得到被污染的语音信号,并播放语音信号,利用函数fft对噪声进行快速傅里叶变换,得到噪声的频谱特性。

2.2.4 数字滤波器设计原理数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。

MATLAB调试技巧

MATLAB调试技巧

3.8 MATLAB程序的调试和优化在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂。

MATLAB提供了强大的程序调试功能,合理的运用MATLAB提供的程序调试工具尤其重要。

本节从MATLAB程序调试的方法和过程开始介绍,先让用户懂得合理运用MATLAB的程序调试功能,再总结MATLAB程序优化的方法,从而达到实现提高程序性能的目的。

3.8.1 MATLAB程序调试方法和过程(1)MATLAB是一种解释和执行同时进行的语言,这使得程序的调试变得相对便利,尤其是MATLAB具有良好的所见即所得特性。

在MATLAB程序调试过程中,可运用的除了一系列调试函数外,MATLAB还提供了专门的调试器,即M文件编译器,通过该M文件编译器和调试函数的共同使用,用户能够完成大部分的程序调试工作。

1.调试的基本任务程序调试(Debug)的基本任务就是要找到并去除程序中的错误。

程序的错误大致可以分为如下三类。

语法错误:由于程序员疏忽、输入不正确等原因而造成的代码违背程序语言规则的错误。

运行错误:由于对所求解问题的理解差异,导致程序流程出错或对程序本身的特性认识有误而造成的程序执行结果错误的情况。

异常:程序执行过程中由于不满足条件而造成的程序执行错误。

语法错误是初学者最常犯的错误,例如,变量或函数名拼写错误、缺少引号或括号等。

这类错误对于熟练掌握MATLAB的用户来说很容易避免,并且当MATLAB运行发现这些错误时会立即标识出这些错误,并向用户说明错误的类型以及在M文件中的位置,下面用一个例子来说明,在debug.m文件中输入如下内容:1.A=[1 2 3,4 5 6,7 8 9]; %定义矩阵A2.B=[1 2 3 4,5 6 7 8,9 10 11 12,13 14 15 16]; %定义矩阵B3.C=A*B %C为矩阵A和B相乘运行时则会出现如下错误:1. Error using ==> mtimes2.Inner matrix dimensions must agree.在上述矩阵四则运算的例子中,矩阵A和矩阵B的维数不满足运算前置条件,即两个矩阵的维数不同不能进行运算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB 的DSP 调试方法MATLAB 具有强大的分析、计算和可视化功能,利用MA TLAB 提供的数十个专业工具箱,可以方便、灵活地实现对自动控制、信号处理、通信系统等的算法分析和仿真,是算法设计人员和工程技术人员必不可少的软件工具。

数字信号处理器(DSP)作为一种可编程专用芯片,是数字信号处理理论实用化过程的重要技术工具,在语音处理、图像处理等技术领域得到了广泛的应用。

但对于算法设计人员来讲,利用汇编语言或C 语言进行DSP 功能开发,对于具有周期长、效率低的缺点,不利于算法验证和产品的快速开发。

由MathWorks 公司和TI 公司联合开发的MA TLAB Link for CCS Development Tools(简称CCSLink)是MATLAB6.5 版本(Release13)中增加的一个全新的工具箱,它提供了MATLAB、CCS 和DSP 目标板的接口,利用此工具可以像操作MA TLAB变量一样来操作DSP 器件的存储器和寄存器,使开发人员在MA TLAB 环境下完成对DSP 的操作,从而极大地提高DSP 应用系统的开发进程。

本文结合具体例证,介绍基于MATLAB 的DSP 应用程序调试方法。

1 CCSLink 初步CCSLink 工具通过双向连接将MATLAB、CCS 和DSP 目标板联系起来,允许开发者利用MATLAB 强大的可视化、数据处理和分析函数对来自CCS 的数据进行分析和处理,极大地简化TI 公司DSP 软件的分析、调试和验证过程。

三者关系如图1示。

图1 CCSLink连接关系CCSLink 的主要特点为:在MATLAB 环境下完成对DSP器件的调试、数据传递和验证;在MATLAB 和DSP 之间实现数据实时传递;支持XDS510 和XDS560 仿真器;提供嵌入式对象,可以访问C/C++变量;扩展了MATLAB 和eXpressDSP工具调试能力。

MATLAB 6.5 版集成了CCSLink1.0 工具,支持CCS 能识别的所有板卡及硬件DSP,包括TIC2000、C5000、C6000 DSP及EVM 板、DSK 板、simulator 及任何符合标准的用户板和第三方板。

CCSLink 正常工作除了需要MATLAB 及其信号处理工具箱外,还需要TI 的编译器(compiler)、汇编器(assembler)、链接器(linker)、CCS IDE2.1、CCS 配置工具信其他软件工具。

在MA TLAB 环境下输入命令help ccslink若CCSLink 已正确安装,则会显示产品信息及进行CCS 和RTDX 操作的函数列表:MATLAB Link for Code Composer Studio(tm)Version 1.0 (R13) 28-Jun-2002。

若MA TLAB 不能返回信息,则表明CCSLink 未安装成功,需进行重新安装。

2 CCSLink 对象的建立在对DSP 进行操作之前,应该首先建立一个DSP 目标。

对于配置了多DSP 系统的用户,CCSLink 提供了两种选择DSP目标的工具:ccsboardinfo 函数和boardprosel 图形用户界面,用户可以根据返回值和自己需求选择相应的对象。

以采用图形用户界面为例,若配置有XDS510 Emulator 和C5416 Simulator 二种DSP 系统,运行[boardNum,procNum] = boardprocsel,则MATLAB 通过对CCS 配置的自动检测,出现图2 所示的目标选择界面。

本文根据需要选择硬件仿真器C54xxXDS510Emulator 并点击Done,则可返回板卡编号和处理器编号:boardNum=1,procNum=0。

图2 CCSLink对象选择利用ccsdsp 函数可以确立一个DSP 对象。

ccsdsp 以板卡编号和处理器编号为参数,并在建立链接对象后返回其它属性,如处理器型号、处理器名称等。

例如,运行cc="ccsdsp"('boardnum',boardNum, 'procnum', procNum),则建立起一个CCS IDE 对象的句柄cc。

从而可以通过cc,在MA TLAB 下实现对CCS 的操作并控制DSP 芯片。

3 CCSLink 调试DSP 代码实例建立起MA TLAB 链接之后,就可以通过CCS 为DSP 目标产生可执行代码,并进行编译、调试和分析。

在以下的介绍中,均以MA TLAB 自带的工程文件为例。

3.1 加载DSP 目标板在MA TLAB 环境执行以下代码:projfile = fullfile( matlabroot, 'toolbox', 'CCSlink', 'ccsdemos', 'ccstutorial','ccstut_54xx.pjt')%选择工程文件projpath = fileparts(projfile) %指定工程文件路径open(cc,projfile)%打开工程文件visible(cc,1)%使CCS IDE 前台可见cd(cc,projpath)%改变MATLAB 工作路径build(cc,'all',60)%编译工程load(cc,'ccstut_54xx.out',30)%加载可执行文件则如代码注释所示,在MA TLAB 环境下完成了对工程文件的调入、编译,生成可执行文件并将其加载到DSP 目标板。

利用鼠标操作切换到CCS 界面,可以看到在MATLAB 下已经完成了对CCS 的各种操作过程,如图3 所示。

图3 CCSLink调试DSP代码实例3.2 利用CCSLink 连接调试访问DSP 内存在编译并加载.out 文件后,可以直接由CCSLink 读取目标符号表并获取变量在DSP 内存中的地址。

如输入ddatA =dec2hex(address(cc,'ddat')),将返回变量ddat 的地址和所在页:23AC,0000。

在MA TLAB 中,可以控制CCS IDE 中程序的显示及断点的增加和删除,并控制程序代码的执行和暂停,读写DSP 的内存变量。

例如,执行以下程序:open(cc,'ccstut.c','text')%在CCS 中打开ccstut.c 文件open(cc,'ccstut_54xx.cmd','text')%在CCS 中打开ccstut_54xx.cmd 文件acTIvate(cc,'ccstut.c','text')%将ccstut.c 作为当前的活动文件insert(cc,'ccstut.c',64)%在第64 行加入断点halt(cc)%暂停CPUrestart(cc) %继续与CCS 保持联系run(cc,'runtohalt',20)%DSP 程序执行到断点ddatV = read(cc,address(cc,'ddat'),'single',4) %(1)读取C 代码初始化数据ddatidatV = read(cc,address(cc,'idat'),'int16',4) %(2)读取C代码初始化数据idatwrite(cc,address(cc,'ddat'),single([pi, 12.3, exp(-1), sin(pi/4)])) % (3)修改DSP 内存中的数据ddat write(cc,address(cc,'idat'),int16([1:4]))% (4)修改DSP 内存中的数据idatrun(cc,'runtohalt',20) %从断点处继续执行ddatV = read(cc,address(cc,'ddat'),'single',4)% (5)读取修改后的数据ddatidatV = read(cc,address(cc,'idat'),'int16',4) %(6)读取修改后的数据idat阅读本例工程文件可知,在C 代码中,变量初始化值为ddat=[16.3,-2.13,5.1,11.8],idat=[1,508,647,7000]。

执行上述(1)、(2)两语句,在MA TLAB 中获得了这两个变量的值ddatV 和idatV。

经过(3)、(4)两语句的修改,ddat 和idat 分别改为了新值ddat=[3.1416,12.3,0.3679,0.7071]和idat=[1,2,3,4]。

这一修改,可从(5)、(6)两语句的执行在MA TLAB 中得到验证,同时也可在CCS IDE 下通过变量观测器进行证实。

在MA TLAB 下,同样可以通过regread 和regwrite 来对CPU寄存器进行读写操作。

如tReg = regread(cc,'AL','2scomp') % 按二进制补码方式读取ALregread(cc,'TRN','binary') % 按无符号二进制数读取TRNregwrite(cc,'AH','FFFF','binary') % 按无符号二进制数读写AH3.3 利用CCSLink 嵌入式对象调试访问DSP 内存利用MA TLAB 的面向对象编程技术和CSLink,可以为目标程序中的所有C 符号创建嵌入式对象,并通过对象来操作该C 符号。

仍以上述程序为例,首先复位DSP,并创建一个嵌入式对象:restart(cc) % 复位程序,使PC 指向程序入口处goto(cc,'main') %将PC 定位到C 主程序入口cvar = createobj(cc,'idat') %(7)为操作嵌入式对象idat 创建MATLAB 对象cvar语句(7)创建了指向DSP 中C 符号的MA TLAB 对象,从而可以在MA TLAB 环境下实现对其全部或部分读取和修改。

read(cvar)%(8)将嵌入式数组读入到MATLAB 工作空间read(cvar,2)%只读取第2 个元素write(cvar,4,7001)%(9)将第4 个元素修改为7001set(cvar,'size',[2])%(10)将对象减小到2 个元素语句(8)将指向idat 的嵌入式数组cvar 读入MA TLAB,在语句(9)中对其第4 个元素进行了修改,而在语句(10)中对数组的大小进行了改变。

相关文档
最新文档