通信系统仿真论文.docx
《通信系统仿真论文.docx》由会员分享,可在线阅读,更多相关《通信系统仿真论文.docx(9页珍藏版)》请在冰点文库上搜索。
通信系统仿真论文
《通信系统仿真》
专业:
通信工程
班级:
06级
姓名:
学号:
2009年12月20日
1、前言………………………………………………………………………3-3
2、正文………………………………………………………………………4-8
3、参考文献…………………………………………………………………9-9
摘要
TLAB名字是由MATrix和LABoratory两个词的前三个字母组合而成的.它是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件.被誉为"巨人肩上的工具".由于使用Matlab编程运算与人进展科学计算的思路和表达方式完全一致,所以不象学习其它高级语言--如Basic、Fortran和C等那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一便于使用的集成环境中.在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来.
引言
MATLAB的含义是矩阵实验室〔MATRIXLABORATORY〕,主要用于方便矩阵的存取,其根本元素是无须定义维数的矩阵.MATLAB自问世以来,就是以数值计算称雄.MATLAB进展数值计算的根本单位是复数数组〔或称阵列〕,这使的MATLAB高度"向量化".经过十几年的完善和扩大,现已开展成为线性代数课程的标准工具.由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的.美国许多大学的实验室都安装有MATLAB供学习和研究之用.在那里,MATLAB是攻读学位的大学生硕士生博士生必须掌握的根本工具.
MATLAB的应用X围很广,在医疗技术研究中,计算机技术研究中、嵌入式技术研究中、DSP技术研究中、电源技术研究中都有应用,本文主要从MATLAB在DSP中的应用来研究。
正文
MATLAB的作用:
根本的数据处理
优化和解方程
动态过程仿真:
实时的和非实时的
数据来源:
Excel、数据库、A/D等等
嵌入式控制:
Pc/104和DSP
神经元网络、小波分析、GA等等
虚拟现实网络
MATLAB辅助DSP设计的方法概述
实现MATLAB辅助DSP设计的方法有两种,即CCSLink和EmbeddedTargetforTITMS320C6000DSP。
前者可实现MATLAB与C2000/C5000/C6000DSP之间的数据交互和程序控制;后者可实现从Simulink模型自动生成DSP目标代码,但仅支持C6000系列的局部DSP器件。
考虑到实验平台是以C5000DSP为根底的,并且第二种工具较容易操作等因素,下面主要研究利用CCSLink辅助DSP设计的方法。
1、mbeddedTargetforTITMS320C6000DSP
CodeposerStudio(CCS)是TI提供的DSP的集成开发环境。
对于C6000系列而言,利用工具EmbeddedTargetforTITMS320C6000DSP,用户可以从Simulink模型直接生成针对DSP目标板的可执行文件或者CCS工程文件,实现了MATLAB/Simulink与CCS集成开发环境(IDE)的无缝连接,从而把设计人员从繁杂的DSP编程中解脱出来,将主要的精力放在设计而不是DSP编程上,所以极大地缩短了系统的测试和开发周期,进而保证了所设计系统的高性能。
2、MATLABLinkforCodeposerStudio
集成在MATLAB6.5或更高版本中的CCSLink工具把MATLAB、TIDSP与其集成开发环境CCS连接在一起,使得我们可以在MATLAB环境下就可以完成对CCS和DSP目标板的操作,包括与目标内存之间的数据交互,检测处理器的状态,控制DSP程序的运行等。
它提供了MATLAB、CCS和目标DSP板的双向连接,开发者可以利用MATLAB中强大的可视化、数据处理和分析工具对DSP中的数据进展分析和再处理,以辅助DSP系统设计,这样就极大地降低了开发人员编写DSP代码的难度和工作量,提高了整个DSP系统的性能和可行性。
我们利用CCSLink提供的相关函数能够实现MATLAB与目标DSP的存储器与存放器间的信息交互,如同操作MATLAB变量一样来读、写TIDSP中的存储器或存放器,即整个目标DSP对于MATLAB而言是透明的。
CCSLink支持TI的C2000/C5000/C6000等多系列DSP,应用广泛。
3、SLink的实现方式与工作原理
〔1〕CCSLink的实现方式
利用CCSLink即可实现MATLAB、CCS和目标DSP之间的信息交互。
CCSLink共提供了3种实现方式:
1〕使用与CCSIDE的连接对象。
利用此对象来创建CCSIDE和MATLAB的连接,从MATLAB命令窗中即可运行CCSIDE中的应用程序,查询目标DSP的状态信息,修改或读取目标DSP的存储器或存放器中的数据,甚至可以调试DSP程序。
其工作原理见3.2节。
2〕使用与RTDX(Real-TimeDataExchange)的连接对象。
提供MATLAB和硬件DSP之间的实时通信通道。
利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时地向硬件目标DSP发送和取出数据而不必停止DSP上运行的程序。
例如把原始数据发送给程序进展处理,并把处理结果取回到MATLAB空间中进展分析。
RTDX连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,它们不能分别创建。
3〕使用嵌入式对象。
在MATLAB环境中创建一个可以代表嵌入在目标C程序中的变量的对象。
利用嵌入式对象可直接访问嵌入在目标DSP中的存储器和存放器中的变量,即把目标C程序中的变量作为MATLAB的一个变量对待。
〔2〕CCSLink的工作原理
上面的三种方式在具体实现时略有不同,但是其原理相似,不失一般性,我们通过第一种方式——与CCSIDE的连接对象,来介绍CCSLink的工作机理。
1〕选择目标DSP并创建CCSIDE连接对象
在MATLAB环境下使用函数ccsdsp并配置相应的属性名和属性值即可创建一个CCSIDE连接对象cc:
cc=ccsdsp(‘boardnum’,x,‘proum’,y,‘timeout’,z);
其中,boardnum、proum、timeout都是属性名。
分别表示创建连接对象时所使用的目标板编号、DSP处理器编号与全局超时值。
2〕在MATLAB环境下加载CCS工程文件
projfile=fullfile(matlabroot,‘toolbox’,‘tiddk’,…,‘ccsproject.pjt’); %取得工程文件
projpath=fileparts(projfile); %取得工程文件路径
open(cc,projfile); %加载工程文件,该函数实现把文件filename加载在CCSIDE中
cd(cc,projpath); %改变CCS的工作路径
3〕在MATLAB环境下编译、连接并下载可执行文件
创建了CCSIDE连接对象并加载工程文件后,即可通过函数build()编译和工程文件,以生成针对目标DSP的可执行文件〔.out文件〕;通过函数load()下载可执行文件到目标DSP中。
具体方法如下:
build(cc); %编译、工程文件,生成目标DSP可执行文件
load(cc,‘ccsproject.out’); %下载可执行文件到目标DSP,可执行文件名与工程名一样
4〕在MATLAB环境下控制程序运行
CCSLink提供了3个函数用于控制目标DSP的运行状态。
通过这些函数,在MATLAB下对DSP的控制操作就像在CCSIDE中一样方便,实际上也确实是这样进展的。
halt(cc); %中断处理器的运行
restart(cc); %复位程序计数器PC,重新执行程序
run(cc,‘runtohalt’,30);%执行程序到断点处,最后一个参数表示超时时间,此处为30s
5〕在MATLAB环境下对CCSIDE连接对象进展操作
在MATLAB中可以方便的操作DSP存储器和存放器中的数据,包括读操作和写操作。
下面以读写目标DSP存储器和存放器中的数据来说明。
date=read(cc,[256,0],‘double’,100); %从目标存储器目的地址100H(即十进制数256)处开始,读取100个双精度数并赋给MATLAB对象datereg=regread(cc,‘A0’,‘2sp’); %读取DSP存放器A0中的数据,并转化成双精度数分配给MATLAB对象reg
write(cc,[256,0],double([1.02.03.0]));%向目标存储器100H开始的地址处,写入三个双精度数据
6〕关闭CCSIDE连接对象
当一切操作执行完成后,需要删除ccsdsp对象,以收回系统资源。
clearcc; %关闭CCSIDE连接对象
〔4〕CCSLink应用实例
通过CCSLink工具,可以使用MATLAB来进展DSP的辅助设计。
在此以FIR滤波器为例,介绍CCSLink在DSP设计中的应用。
在该实例中,FIR滤波的核心内容由DSP实现,而算法仿真、系数产生、用户界面、结果验证等局部由MATLAB辅助完成。
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)8kHz,阶数(N)40。
然后借助函数fir1(N,WN)即可返回对应滤波器的系数矩阵,其中N为阶数,WN为滤波器的归一化截止频率,即WN=2Fc/Fs,且0≤WN≤1。
2)DSP滤波算法实现
结合MATLAB产生的滤波器系数,就可以编写DSP滤波主程序了,关键代码如下:
FIR_TASK:
STM #K_FIR_BFFR,BK ;设置FIR循环缓冲区的大小 LD *INBUF_P+,-1,A ;数据输入FIR_FILTER:
STL A,*FIR_DATA_P+% ;最新数据替代最旧数据RPTZ A,(K_FIR_BFFR-1)MAC *FIR_DATA_P+0%,*FIR_COFF_P+0%,A;乘累加STH A,*OUTBUF_P ;数据输出
3)MATLAB辅助设计
本设计中,算法仿真、系数产生、用户界面等局部由MATLAB辅助完成。
算法仿真、系数产生方法在4.1中已详细介绍,本节重点介绍用户界面局部。
本图形用户界面可以实现如下功能:
修改参数,如滤波参数n和Wn,这种参数选取方法防止了反复修改DSP程序的弊端,可以满足不同层次使用者的使用;控制操作过程,如加载工程文件、下载可执行文件、运行程序等;绘制DSP输入数据的时域与频域信号;绘制滤波后DSP输出数据的时域与频域信号;使用MATLAB提供的滤波函数对输入数据进展滤波计算,并把所得结果与DSP输出信号进展比拟,以验证或改良DSP算法。
用户界面的流程图如图1所示,主要由图形界面和回调函数两大局部组成。
其中,图形界面由文件FIR_BPF.m实现;回调函数总共由6个文件实现,分别是input.m,input2.m,output.m,output2.m,lvbopin.m和lvbohou.m。
当输入带有干扰的方波信号后,分别查看输入波形、MATLAB滤波输出信号、DSP滤波输出信号,结果如图2所示。
比拟MATLAB滤波输出信号和DSP滤波输出信号,据此可以采用修改滤波器系数或DSP程序等措施来改良DSP滤波算法。
图1用户图形界面流程图
图2实验结果
总结
MATLAB中包括了被称作工具箱〔TOOLBOX〕的各类应用问题的求解工具.工具箱实际上是对MATLAB进展扩展应用的一系列MATLAB函数〔称为M文件〕,它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等.随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用X围也越来越广泛,成为涉与数值分析的各类工程师不可不用的工具.MATLAB5.3中包括了图形界面编辑GUI,改变了以前单一的"在指令窗通过文本形的指令进展各种操作"的状况.这可让使用者也可以象VBVCVJDELPHI等那样进展一般的可视化的程序编辑.在命令窗口〔matlabmandwindow〕键入simulink,就出现〔SIMULINK〕窗口.以往十分困难的系统仿真问题,用SIMULINK只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视原因所在.
参考文献
1、周开利邓春晖MATLAB根底与其应用教程大学
2、王跃宗,X京会TMS320DM642DSP应用系统设计与开发人民邮电
3、X志涌、杨祖樱MATLAB教程航空航天大学
4、陈怀琛数字信号处理教程——MATLAB释义与实现电子工业