MATLAB辅助DSP设计的研究与实现_第1页
MATLAB辅助DSP设计的研究与实现_第2页
MATLAB辅助DSP设计的研究与实现_第3页
MATLAB辅助DSP设计的研究与实现_第4页
MATLAB辅助DSP设计的研究与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    MATLAB辅助DSP设计的研究与实现摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTAC)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。仿真结果表明,该滤波器带宽的可调范围为126 MHz,阻带抑制率大于35 dB,带内波纹小于05 dB,采用18 V电源,TSMC 018m CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。关键词:Butte摘要:提出结合MATLAB来开发DSP系统的思想,阐述了实现该思想的两种工具,

2、并详细介绍了使用MATLAB Link for Code Composer Studio辅助DSP设计的相关内容,包括其功能特点、实现方式、工作原理等。最后结合典型的FIR滤波器实例,探讨了使用该工具的方法,并设计了图形用户界面。结果表明应用MATLAB辅助开发DSP系统可以发挥二者的优势,缩短开发周期,降低开发门槛,优化开发过程。关键字:MATLAB;数字信号处理器;CCSLink;CCS 1 引言数字信号处理器(Digital Signal Processor,DSP)是指一类具有专门为完成数字信号处理任务而优化设计的系

3、统体系结构、硬件和软件资源的单片可编程处理器件。数字信号处理器是实现数字信号处理任务的一个重要而有效的手段,随着通信和信息技术的飞速发展,数字信号处理器件在最近20年得到了空前的发展和应用。MATLAB是美国MathWorks公司开发的一种科学计算软件,专门以矩阵的形式处理数据,在科学计算、控制系统、信息处理等多种领域有着广泛的应用。MATLAB具有强大的计算、分析和可视化功能,但MATLAB语言是解释执行的,执行速度较慢;而DSP是为了完成实时数字信号处理任务而设计的,算法的高效实现是DSP器件的显著特点,但是其开发门槛高。如果能把MATLAB和DSP开发工具结合在一起,取长补短,相辅相成,

4、将是DSP设计人员梦寐以求的一种新的开发思想。MathWorks公司和TI公司联合开发的MATLAB Link for Code Composer Studio(简称CCSLink)和Embedded Target for TI TMS320C6000 DSP工具正是这一思想的完美实现。本文所作研究是以自行研制的DSP教学实验箱为平台进行的,其DSP采用TMS320VC5416芯片实现。本文内容安排如下:第1部分在介绍相关背景知识的基础上,引入使用MATLAB辅助DSP设计的思想;第2部分介绍了MATALB中实现这一思想的两种工具;第3部分介绍了工具之一CCSLink的实现方式及工作原理;第4

5、部分结合实验平台给出了CCSLink的应用实例。第五部分对本文作了总结。2  MATLAB辅助DSP设计的方法概述实现MATLAB辅助DSP设计的方法有两种,即CCSLink和Embedded Target for TI TMS320C6000 DSP。前者可实现MATLAB与C2000/C5000/C6000 DSP之间的数据交互和程序控制;后者可实现从Simulink模型自动生成DSP目标代码,但仅支持C6000系列的部分DSP器件。考虑到实验平台是以C5000 DSP为基础的,并且第二种工具较容易操作等因素,下面主要研究利用CCSLink辅助DSP设计的方法。2.1 Embed

6、ded Target for TI TMS320C6000 DSPCode Composer Studio(CCS)是TI提供的DSP的集成开发环境。对于C6000系列而言,利用工具Embedded Target for TI TMS320C6000 DSP,用户可以从Simulink模型直接生成针对DSP目标板的可执行文件或者CCS工程文件,实现了MATLAB/Simulink与CCS集成开发环境(IDE)的无缝连接,从而把设计人员从繁杂的DSP编程中解脱出来,将主要的精力放在设计而不是DSP编程上,所以极大地缩短了系统的测试和开发周期,进而保证了所设计系统的高性能。2.2 MATLAB L

7、ink for Code Composer Studio集成在MATLAB6.5或更高版本中的CCSLink工具把MATLAB、TI DSP及其集成开发环境CCS连接在一起,使得我们可以在MATLAB环境下就可以完成对CCS和DSP目标板的操作,包括与目标内存之间的数据交互,检测处理器的状态,控制DSP程序的运行等。它提供了MATLAB、CCS和目标DSP板的双向连接,开发者可以利用MATLAB中强大的可视化、数据处理和分析工具对DSP中的数据进行分析和再处理,以辅助DSP系统设计,这样就极大地降低了开发人员编写DSP代码的难度和工作量,提高了整个DSP系统的性能和可行性。我们利用CCSLin

8、k提供的相关函数能够实现MATLAB与目标DSP的存储器及寄存器间的信息交互,如同操作MATLAB变量一样来读、写TI DSP中的存储器或寄存器,即整个目标DSP对于MATLAB而言是透明的。CCSLink支持TI的C2000/C5000/C6000等多系列DSP,应用广泛。3  CCSLink的实现方式及工作原理3.1 CCSLink的实现方式利用CCSLink即可实现MATLAB、CCS和目标DSP之间的信息交互。CCSLink共提供了3种实现方式:1)使用与CCS IDE的连接对象。利用此对象来创建CCS IDE和MATLAB的连接,从MATLAB命令窗中即可运行CCS IDE

9、中的应用程序,查询目标DSP的状态信息,修改或读取目标DSP的存储器或寄存器中的数据,甚至可以调试DSP程序。其工作原理见3.2节。2)使用与RTDX(Real-Time Data Exchange)的连接对象。提供MATLAB和硬件DSP 之间的实时通信通道。利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时地向硬件目标DSP发送和取出数据而不必停止DSP上运行的程序。例如把原始数据发送给程序进行处理,并把处理结果取回到MATLAB空间中进行分析。RTDX连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,它们不能分别创建

10、。3)使用嵌入式对象。在MATLAB环境中创建一个可以代表嵌入在目标C程序中的变量的对象。利用嵌入式对象可直接访问嵌入在目标DSP中的存储器和寄存器中的变量,即把目标C程序中的变量作为MATLAB的一个变量对待。3.2 CCSLink的工作原理上面的三种方式在具体实现时略有不同,但是其原理相似,不失一般性,我们通过第一种方式与CCS IDE的连接对象,来介绍CCSLink的工作机理。1)选择目标DSP并创建CCS IDE连接对象在MATLAB环境下使用函数ccsdsp并配置相应的属性名和属性值即可创建一个CCS IDE连接对象cc:cc=ccsdsp(boardnum, x, procnum,

11、 y, timeout, z);其中,boardnum、procnum、timeout都是属性名。分别表示创建连接对象时所使用的目标板编号、DSP处理器编号及全局超时值。2)在MATLAB环境下加载CCS工程文件projfile=fullfile(matlabroot, toolbox, tiddk, , ccsproject.pjt);   %取得工程文件projpath = fileparts(projfile);  %取得工程文件路径open(cc, projfile);   %加载工程文件,该函数实现把文件filename加载在CCS

12、IDE中cd(cc, projpath);    %改变CCS的工作路径3)在MATLAB环境下编译、连接并下载可执行文件创建了CCS IDE连接对象并加载工程文件后,即可通过函数build()编译和链接工程文件,以生成针对目标DSP的可执行文件(.out文件);通过函数load()下载可执行文件到目标DSP中。具体方法如下:build(cc);              %编译、链接工程文件,生成目标DSP可执行文件 loa

13、d(cc, ccsproject.out);     %下载可执行文件到目标DSP,可执行文件名与工程名相同4)在MATLAB环境下控制程序运行CCSLink提供了3个函数用于控制目标DSP的运行状态。通过这些函数,在MATLAB下对DSP的控制操作就像在CCS IDE中一样方便,实际上也确实是这样进行的。halt(cc);         %中断处理器的运行restart(cc);     %复位程序计数器PC,重新执行程序run(c

14、c, runtohalt, 30); %执行程序到断点处,最后一个参数表示超时时间,此处为30s5)在MATLAB环境下对CCS IDE连接对象进行操作在MATLAB中可以方便的操作DSP存储器和寄存器中的数据,包括读操作和写操作。下面以读写目标DSP存储器和寄存器中的数据来说明。date=read(cc, 256,0, double, 100);  %从目标存储器目的地址100H(即十进制数256)处开始,读取100个双精度数并赋给MATLAB对象datereg=regread(cc, A0, 2scomp);       

15、; %读取DSP寄存器A0中的数据,并转化成双精度数分配给MATLAB对象regwrite(cc, 256,0, double(1.0 2.0 3.0);%向目标存储器100H开始的地址处,写入三个双精度数据6)关闭CCS IDE连接对象当一切操作执行完成后,需要删除ccsdsp对象,以收回系统资源。clear cc;         %关闭CCS IDE连接对象4  CCSLink应用实例通过CCSLink工具,可以使用MATLAB来进行DSP的辅助设计。在此以FIR滤波器为例,介绍CCSLink在DS

16、P设计中的应用。在该实例中,FIR滤波的核心内容由DSP实现,而算法仿真、系数产生、用户界面、结果验证等部分由MATLAB辅助完成。4.1 FIR滤波器设计设输入信号为x(n),输出信号为y(n),则FIR滤波器对应的差分方程可表示为:其中,h(k)(k=0,1,2,N-1)表示滤波器系数序列,是滤波器设计的关键。h(k)可以通过MATLAB工具箱提供的滤波器函数fir1()和fir2()来获取:首先通过建立MATLAB/Simulink模型,根据所需设计低通滤波器的性能要求来确定滤波器的阶数和截止频率等参数。本例所设计的FIR低通滤波器参数为:截止频率(Fc)2kHz,采样频率(Fs)8kH

17、z,阶数(N)40。然后借助函数fir1(N, WN)即可返回对应滤波器的系数矩阵,其中N为阶数,WN为滤波器的归一化截止频率,即WN= 2Fc/Fs,且0WN1。4.2 DSP滤波算法实现结合MATLAB产生的滤波器系数,就可以编写DSP滤波主程序了,关键代码如下:FIR_TASK:STM              #K_FIR_BFFR, BK        ; 设置FIR循环缓冲区的大小&#

18、160;  LD          *INBUF_P+, -1, A         ; 数据输入FIR_FILTER:STL        A, *FIR_DATA_P+%     ; 最新数据替代最旧数据RPTZ      A, (K_FIR_B

19、FFR-1)MAC       *FIR_DATA_P+0%, *FIR_COFF_P+0%, A ; 乘累加STH        A,*OUTBUF_P             ; 数据输出4.3 MATLAB辅助设计本设计中,算法仿真、系数产生、用户界面等部分由MATLAB辅助完成。算法仿真、系数产生方法在4.1中已详细介绍,本节重点介绍用户界

20、面部分。本图形用户界面可以实现如下功能:修改参数,如滤波参数n和Wn,这种参数选取方法避免了反复修改DSP程序的弊端,可以满足不同层次使用者的使用;控制操作过程,如加载工程文件、下载可执行文件、运行程序等;绘制DSP输入数据的时域及频域信号;绘制滤波后DSP输出数据的时域及频域信号;使用MATLAB提供的滤波函数对输入数据进行滤波计算,并把所得结果与DSP输出信号进行比较,以验证或改良DSP算法。当输入带有干扰的方波信号后,分别查看输入波形、MATLAB滤波输出信号、DSP滤波输出信号,结果如图2所示。比较MATLAB滤波输出信号和DSP滤波输出信号,据此可以采用修改滤波器系数或DSP程序等措

21、施来改进DSP滤波算法。图1 用户图形界面流程图                             图2 实验结果         5 结束语本文探索并实现了利用CCSLink辅助DSP设计的完整过程。同时以FIR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论