通信系统仿真(第一次课)资料课件_第1页
通信系统仿真(第一次课)资料课件_第2页
通信系统仿真(第一次课)资料课件_第3页
通信系统仿真(第一次课)资料课件_第4页
通信系统仿真(第一次课)资料课件_第5页
已阅读5页,还剩177页未读 继续免费阅读

下载本文档

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

文档简介

通信系统仿真讲授人:肖湘Email:xiaoxiang1806@163.com

通信系统仿真讲授人:肖湘相关书籍《Matlab/Simulink通信系统建模与仿真实例分析》邵玉斌,清华大学出版社《基于Matlab的通信系统仿真》赵静等,北京航空航天大学出版社《Matlab及在电子信息类课程中的应用》唐向宏等,电子工业出版社《MATLAB基础教程》薛山,清华大学出版社相关书籍《Matlab/Simulink通信系统建模与仿真实教学目标了解通信系统建模仿真思想与方法掌握Matlab语言的基本操作学会使用Simulink进行建模与仿真教学目标了解通信系统建模仿真思想与方法对学习者的要求三个重要环节课前预习课上认真听讲,思考课后实践、消化经常进行阶段应用掌握知识的窍诀:反复上机实践对学习者的要求三个重要环节其他约定不得迟到、早退、缺课,有事请假上课时请关闭手机或者调静音迟交的作业恕不修改,只作记录最终成绩=期末考试成绩+平时成绩其他约定内容通信系统建模与仿真1Matlab简介2Matlab语言基础3内容通信系统建模与仿真1Matlab简介2Matlab语言基内容通信系统建模仿真1分类概念、方法工具内容通信系统建模仿真1分类概念、方法工具1.1通信仿真的概念在对原有的通信系统做出改进或建立一个新系统之前,通常需要对这个系统进行建模和仿真,通过仿真结果衡量方案的可行性,从中选择最合理的系统配置和参数设置,然后再应用于实际系统中。这个过程就是通信仿真。1.1通信仿真的概念在对原有的通信系统做出改进或建立一个新1.1通信仿真的概念随着数字通信技术的发展,特别是与计算机技术的相互融合,通信系统和信号处理技术变得越来越复杂。强大的计算机辅助分析与设计工具和系统仿真方法作为将新的技术理论成果转换为实际产品的高效而低成本途径越来越受到业界的青睐。1.1通信仿真的概念随着数字通信技术的发展,特别是与计算机1.1通信仿真的概念建模和仿真的作用和意义:利用系统建模和软件仿真技术,我们几乎可以对所有的设计细节进行分层次的建模和评估。通过仿真技术和方法,我们可以有效地将数学分析模型和经验模型结合起来。利用系统仿真方法,可以迅速构建一个通信系统模型,提供一个便捷,高效和精确的评估平台。1.1通信仿真的概念1.1通信仿真的概念系统仿真的数学基础定义:仿真也称为模拟,在本质上,系统的计算机仿真就是根据物理系统的运行原理建立相应的数学描述并进行计算机数值求解的过程。建模和仿真过程建立系统数学模型或仿真模型编写系统的计算机仿真模型求解分析关键问题求解算法算法的改进简化系统模型

1.1通信仿真的概念系统仿真的数学基础1.1通信仿真的概念计算机仿真的一般过程建立计算机程序(层次化的)执行仿真对仿真模型和仿真结果的检验仿真验证包含以下方面内容:对仿真数学模型有效性的验证。对计算机仿真模型(程序)的验证。对仿真算法的验证。仿真结果置信度分析。1.1通信仿真的概念计算机仿真的一般过程1.2通信仿真的基本方法将给定问题映射为仿真模型。把整个问题分解为一组子问题。选择合适的建模、仿真和估计方法,并将其用于解决这些子问题。综合各子问题的解决结果以提供对整个问题的解决方案。1.2通信仿真的基本方法将给定问题映射为仿真模型。1.3通信系统模型的分类按照系统层次分类按照信号类型分类按照系统特征分类1.3通信系统模型的分类按照系统层次分类1.3通信系统模型的分类按照系统层次分类通信系统的最高层次描述是通信网络层次在网络层次之下,是对通信节点和链路以及传输信号的具体化,称为链路层次模型。电路实现层次的模型。1.3通信系统模型的分类按照系统层次分类1.3通信系统模型的分类按照信号类型分类根据函数类型的不同可以将信号划分为模拟信号,数字信号,时间连续信号,时间离散信号等。按照链路层通信系统仿真模型中流通的信号类型不同,可以将其划分为连续时间系统,离散时间系统,模拟系统,数字系统以及混合系统等。

1.3通信系统模型的分类按照信号类型分类1.3通信系统模型的分类按照系统特征分类恒参系统变参系统或时变系统确定系统随机系统无记忆系统有记忆系统或动态系统(系统的当前输出与输入信号的历史值有关)1.3通信系统模型的分类按照系统特征分类1.4通信系统仿真的优点和局限性优点:

难以使用解析法求解的情况下系统仿真手段就成为了一个极为有效的工具。利用仿真技术往往可以绕过艰深的甚至是不可能的数学解析求解,而较为轻易地获得问题的数值结果。在对现代通信系统新协议、新算法和新的体系结构的设计和性能评估中,只能通过仿真来检验所考察的对象,以验证有关的假设,评价算法的性能。仿真技术也是理解原理,验证理论,进行探索和发现的有效途径。1.4通信系统仿真的优点和局限性优点:1.4通信系统仿真的优点和局限性缺点模型的建立、验证和确认比较困难。对实际系统的建模的原理和方法不当使得与实际系统的差别较大。建模过程中忽略了部分次要因素,使得模型仿真结果偏离实际系统。仿真试验时间太短,给结果分析带来较大误差。随机变量的概率分布类型或参数选取不当。仿真输出结果的统计误差。计算机字长、编码和应用算法也会影响仿真结果。1.4通信系统仿真的优点和局限性缺点1.5系统建模仿真方法与仿真工具系统建模仿真方法与仿真工具的关系仿真工具是实现建模和数值求解过程的软件和硬件平台。我们所希望的现代仿真平台和编程语言环境具有如下基本特征:简便高效的仿真描述语言。层次化和模块化建模的能力。可视化的建模方式。软件硬件协同仿真的能力。交互性和图形环境。跨平台和可移植性。1.5系统建模仿真方法与仿真工具系统建模仿真方法与仿真工具1.5系统建模仿真方法与仿真工具仿真环境的构成和要求模块库。模块编辑和配置器。仿真管理器。后处理部分。文件和数据库管理。帮助文档。1.5系统建模仿真方法与仿真工具仿真环境的构成和要求1.5系统建模仿真方法与仿真工具常用仿真工具的选择网络层次的建模:OPNET,NS链路层次的仿真:Matlab/Simulink,Systemview,Scilab以及C,C++电路实现层次的仿真:Spice,VHDL本课程以Matlab/Simulink作为建模和仿真平台1.5系统建模仿真方法与仿真工具常用仿真工具的选择作业安装MATLAB系统作业安装MATLAB系统内容Matlab简介2Matlab窗口环境Matlab是什么?内容Matlab简介2Matlab窗口环境Matlab是什2.1Matlab是什么?一、概述

MATLAB的名称源自MatrixLaboratory,它的首创者是在数值线性代数领域颇有影响的CleveMoler博士,他也是生产经营MATLAB产品的美国Mathworks公司的创始人之一。

MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而使其被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作中。2.1Matlab是什么?一、概述MATLAB产品族可以用来进行如下工作:数值分析;数值和符号计算;工程与科学绘图;控制系统的设计与仿真;数字图像处理;数字信号处理;通讯系统设计与仿真;财务与金融工程等。2.1MATLAB简介MATLAB产品族可以用来进行如下工作:2.1MATL二、MATLAB仿真的意义

当在实际电子通信系统中进行试验研究比较困难或者根本无法实现时,仿真技术就成为必然的选择。2.1MATLAB简介二、MATLAB仿真的意义2.1MATLAB简介MATLAB与其它计算机高级语言如C,C++等相比,MATLAB语言编程要简洁得多,编程语句更加接近数学描述,可读性好,其强大的图形功能和可视化数据处理能力也是其它高级语言望尘莫及的。对于具有任何一门高级语言基础的学生来说,学习MATLAB十分容易。2.1MATLAB简介MATLAB与其它计算机高级语言如MATLAB使得人们摆脱了常规计算机编程的繁琐,让人们能够将大部分精力投入到研究问题的数学建模上。可以说,应用MATLAB这一数学计算和系统仿真的强大工具,可以使科学研究的效率得以成百倍的提高。2.1MATLAB简介MATLAB使得人们摆脱了常规计算二、MATLAB特点跨平台的数学语言超高级语言语法简单,编程风格接近数学风格强大的绘图功能计算精度很高拥有学科众多,领域广泛的工具箱可移植2.2MATLAB特点二、MATLAB特点2.2MATLAB特点三、MATLAB入门操作命令窗口CommandWindow

历史命令窗口CommandHistory

当前目录窗口CurrentDirectory

工作空间窗口Workspace2.3MATLAB界面三、MATLAB入门操作2.3MATLAB界面通信系统仿真(第一次课)资料课件通信系统仿真(第一次课)资料课件1.CommandWindow

可显示除图像以外的所有结果最简单的计算器使用法准备阶段2.3MATLAB界面1.CommandWindow2.3MATLABMATLAB语句形式变量=表达式;通过等号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果不希望结果回显,只需在语句后加分号即可。2.3MATLAB界面MATLAB语句形式2.3MATLAB界面命令行编辑器方向键和控制键可以编辑修改已输入的命令↑:回调上一行命令↓:回调下一行命令多行命令(…):如果命令语句超过一行或者太长希望分行输入,可以使用多行命令继续输入

2.3MATLAB界面例如:S=1-12+13+4+…9-4-18;命令行编辑器2.3MATLAB界面例如:复数和复数矩阵

MATLAB把复数作为一个整体处理。虚数单位用预定义变量i或j表示;复数z=a+bi=直角坐标是和极坐标系之间转换的MATLAB指令:

real(z)imag(z)abs(z)angle(z)MATLAB的矩阵元素允许是复数、复变量和由它们组成的表达式2.3MATLAB界面复数和复数矩阵2.3MATLAB界面指令窗的常用控制指令

clc清除指令窗中显示内容

clear清除工作空间中保存的变量

exit关闭/退出MATLABquit关闭/退出MATLAB2.3MATLAB界面指令窗的常用控制指令2.3MATLAB界面2.CommandHistoryWindow

记录着用户在指令窗中所输入过的所有指令行。

2.3MATLAB界面2.CommandHistoryWindow23.CurrentDirectoryWindow

组织、管理和使用所有matlab文件和非matlab文件。2.3MATLAB界面3.CurrentDirectoryWindow4.WorkspaceWindow

内存变量的查阅、保存和编辑。(who,whos)2.3MATLAB界面4.WorkspaceWindow2.3MAT内容Matlab语言基础3基本运算符变量绘图常用函数基本语句内容Matlab语言基础3基本运算符变量绘图常用函数3.1Matlab语言基础:变量变量的命名变量无需定义即可使用变量的名字必须以字母开头,之后可以是任意字母、数字或下划线(不能超过31个字符)变量名称区分字母的大小写不能包含空格、标点变量操作在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调用采用clear将清除内存内的所有变量采用“clear变量名”清除指定变量3.1Matlab语言基础:变量变量的命名变量操作3.1.1矩阵矩阵的赋值要求整个矩阵的值必须放在方括号中;同一行中各元素之间以逗号“,”或者空格分开;不同行的元素以分号“;”隔开。3.1.1矩阵矩阵的赋值要求3.1.1矩阵操作结果?a=[1,2,3,4,5,6]b=[1,2,3;4,5,6]c=[1,2,3;4,5,6];[1,2,3;4,5,6]3.1.1矩阵操作结果?3.1.2变量元素的标注变量的元素用圆括号“()”中的数字来注明a=[1,2,3;4,5,6;7,8,9];a(2,2)a(4,4)=5.6size(a)3.1.2变量元素的标注变量的元素用圆括号“()”中的数字来3.1.3赋值技巧在MATLAB中,为变量的赋值提供一些简便快捷的方法冒号:产生递进向量t=i:j:k(t=1:2:10t=1:10)利用冒号给全行赋值a(5,:)=[5,4,3,2]利用行,列标注构成新的矩阵b=a([2,4],[1,3])a([2,4,5],:)=[]3.1.3赋值技巧在MATLAB中,为变量的赋值提供一些简3.1.4特殊的矩阵和数组除了采用直接输入方法对变量赋值外,也可利用MATLAB的内部函数来对变量赋值,利用这些函数来创建和生成特殊矩阵或数组。在MATLAB中提供了许多生成矩阵的函数命令,这些函数命令存放在“matlab/elmat”目录下。3.1.4特殊的矩阵和数组除了采用直接输入方法对变量赋值外,3.1.4特殊矩阵和数组1单位矩阵函数

产生在对角线元素为1,其他元素为0的单位矩阵。a=eye(n)a=eye(m,n)a=eye(size(b))3.1.4特殊矩阵和数组1单位矩阵函数3.1.4特殊矩阵和数组2zero函数a=zero(n)a=zero(m,n)a=zero(size(b))ones函数a=ones(n)a=ones(m,n)a=ones(size(b))3.1.4特殊矩阵和数组2zero函数ones函数3.1.4特殊矩阵和数组3rand及randn函数X=rand(m,n)产生在(0,1)之间均匀分布的随机一维数组或行矢量X=randn(m,n)产生均值为0,方差为1的正态分布的随机一维数组或行矢量

3.1.4特殊矩阵和数组3rand及randn函数3.1.5内部特殊变量和常数ans:临时变量realmax:最大正浮点数,任何大于该值的运算都会溢出。realmin:最小正浮点数,任何小于该值的运算都会溢出。pi:常数,表示圆周率。Inf:常数,表示正无穷大。i/j:虚数单位,表示复数虚部单位。NaN:表示非数值,如Inf-Inf,0/0

3.1.5内部特殊变量和常数ans:临时变量3.1.6复数的赋值方法可将矩阵元逐个赋予复数z=[1+2i,3+4i,5+6i,7+8i]将矩阵的实部和虚部分别赋值z=[1,3,5,7]+[2,4,6,8]*i3.1.6复数的赋值方法可将矩阵元逐个赋予复数将矩阵的实部和常用的数学运算符运算式中,通常不需要考虑空格多条命令可以放在一行中同行中各条命令可用分号隔开,表示禁止结果显示同行中各条命令也可用逗号隔开,表示需要显示结果+----加-----减*----乘

/----左除

\----右除

^----幂3.2Matlab语言基础:基本运算符常用的数学运算符+----加常用的关系运算符

>----大于

>=----大于等于

<----小于

<=

----小于等于

==----等于

~=----不等于运算法则若关系式成立,结果为1若关系式不成立,结果为03.2Matlab语言基础:基本运算符常用的关系运算符>----大计算a=[1,2,3;4,5,6]b=[2,1;3,4;5,6]

a*ba=[1,2,3;4,5,6]b=[1+1i,2+2i,3+3i;4+4i,5+5i,6+6i]a.*b计算a=[1,2,3;4,5,6]b=[2,1常用的逻辑运算符

&----与

|----或

!----非运算法则若逻辑真,结果为1若逻辑假,结果为03.2Matlab语言基础:基本运算符常用的逻辑运算符&----与其他常见符号3.2Matlab语言基础:基本运算符

=

----变量赋值%----注释符

‘----共轭转置符

.’----转置符:----冒号运算符举例:

n:s:m产生n~m、步长为s的序列其他常见符号3.2Matlab语言基础:基本运算符循环语句for-end循环:循环次数事先确定时使用while-end循环:循环次数不能事先确定时使用3.3Matlab语言基础:基本语句fori=n:s:m

语句体ends为步长可以为正数,负数或小数while表达式语句体end表达式为真,执行语句体表达式为假,终止该循环循环语句3.3Matlab语言基础:基本语句fori=分支语句if-elseif-else-end:具有优先级switch-case-otherwise-end:无优先级3.3Matlab语言基础:基本语句if表达式1

语句体1elseif表达式2

语句体2………..else

语句体elseendswitch变量

case变量值1语句体1case变量值2语句体2……otherwise

语句体otherwiseend分支语句3.3Matlab语言基础:基本语句if表达常用的数学函数abs----求绝对值sin----正弦cos----余弦tan----正切asin----反正弦acos----反余弦atan----反正切sqrt----求平方根exp----eximag----求虚部real----求实部sign----求符号log----求自然对数log10----以10为底的对数conj----共轭复数Matlab语言基础:常用函数常用的数学函数abs----求绝对值eMatlab语言基础:矩阵矩阵的生成例如:创建一个3×3矩阵输入:a=[123;456;789]

或者a=[123456789]

屏幕输出:a=123456789矩阵的元素直接排列在方括号内行与行之间用分号隔开每行内的元素使用空格或逗号隔开大的矩阵可以用分行输入,回车键代表分号Matlab语言基础:矩阵矩阵的生成例如:创建一个3×3矩矩阵的生成举例:输入a=[1:2:10]屏幕输出:a=13579输入a=[10:-2:1]屏幕输出:a=108642用线性等间距生成向量矩阵start:step:end

start:起始值

step:步长(默认为1,可为负值)

end:终止值Matlab语言基础:矩阵矩阵的生成举例:用线性等间距生成向量矩阵sta一些常用的特殊矩阵eye(2,3)ans=100010eye(2)ans=1001V=[572];A=diag(V)A=500070002Matlab语言基础:矩阵单位矩阵:eye(m,n);eye(m)零矩阵:zeros(m,n);zeros(m)一矩阵:ones(m,n);ones(m)对角矩阵:对角元素向量V=[a1,a2,…,an]A=diag(V)随机矩阵:rand(m,n)产生一个m×n的均匀分布的随机矩阵zeros(2,3)ans=000000zeros(2)ans=0000ones(2,3)ans=111111ones(2)ans=1111rand(2,2)ans=0.41540.87440.01500.9708一些常用的特殊矩阵eye(2,3)eye(2)V=[57矩阵元素的访问通过确认矩阵下标,可以对矩阵的子块进行插入、提取和重排注意:MATLAB中矩阵下标从1开始,而不是从0开始Matlab语言基础:矩阵

A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取m1~m2行和n1~n2列的所有元素A(:):得到一个长列矢量,其元素按矩阵的列进行排列A=[123456];A(2,1)ans=4A(2,:)ans=456A(:,2)ans=25A(1:2,2:3)ans=2356A(:)ans=142536矩阵元素的访问Matlab语言基础:矩阵A(矩阵的扩展与消除矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。消除子块:如果将矩阵的子块赋值为空矩阵[],则相当于消除了相应的矩阵子块。Matlab语言基础:矩阵A=[123456];A(3,2)=7A=[123456070]A(2,:)=[]A=[123]矩阵的扩展与消除Matlab语言基础:矩阵A=[12矩阵的大小Matlab语言基础:矩阵[m,n]=size(A,x):返回矩阵的行列数m与n当x=1,则只返回行数m当x=2,则只返回列数nlength(A)=max(size(A)):返回行数或列数的最大值A=[123456];size(A)ans=23size(A,1)ans=2size(A,2)ans=3矩阵的大小Matlab语言基础:矩阵[m,n]=size(矩阵的运算举例A=[1+i2-2i;-3+3i-4-4i]A=1+i2-2i-3+3i-4-4iB=A’B=1-i-3-3i2+2i-4+4iC=A.’C=1+i-3+3i2-2i-4-4iMatlab语言基础:矩阵转置:转置符号有两种形式

A’----共轭转置A.’----普通转置求逆:inv(A)

求行列式:det(A)矩阵的运算举例B=A’C=A.’Matlab语言基础:矩阵矩阵的四则运算与幂运算

.*----点乘

.\----点右除

./----点左除

.^----点幂点运算是两个维数相同矩阵对应元素间的运算Matlab语言基础:矩阵+----矩阵加-----矩阵减*----矩阵乘

/----矩阵左除

\----矩阵右除

^----矩阵幂矩阵的四则运算与幂运算.*----内容Matlab绘图基础3内容Matlab绘图基础3Matlab绘图基础MATLAB提供了丰富的绘图功能helpgraph2d可得到所有画二维图形的命令helpgraph3d可得到所有画三维图形的命令Matlab绘图基础MATLAB提供了丰富的绘图功能helpplot(x,y,’属性’)或者stem():绘图figure:选择图像

figure(1);figure(2);…;figure(n)打开不同的图形窗口,以便绘制不同的图形gridon:在所画出的图形坐标中加入栅格

gridoff:除去图形坐标中的栅格

holdon:当前图形保持不变,同时允许在这个坐标内绘制另外一个图形holdoff:使新图覆盖旧的图形Matlab绘图基础plot(x,y,’属性’)或者stem():绘图Matl举例:

t=[0:pi/20:9*pi];

f=sin(t);

figure(1)

plot(t,f,'r:*')

gridonMatlab绘图基础举例:Matlab绘图基础设定对数坐标Matlab绘图基础semilogx:x轴为对数坐标,y轴为线性坐标semilogy:y轴为对数坐标,x轴为线性坐标设定轴的范围axis([xminxmaxyminymax])axis(‘equal’):将x坐标轴和y坐标轴的单位刻度调整为一样设定对数坐标Matlab绘图基础semilogx:x轴为对数文字标示Matlab绘图基础text(x,y,’字符串’)在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串gtext(‘字符串’)利用鼠标在图形的某一位置标示字符串title(‘字符串’)在所画图形的最上端显示说明该图形标题的字符串xlabel(‘字符串’),ylabel(‘字符串’)设置x,y坐标轴的名称。legend(‘字符串1’,‘字符串’,…,‘字符串n’)在屏幕上开启一个小视窗,然后依据绘图命令的先后用对应的字符串区分图形上的线文字标示Matlab绘图基础text(x,y,’字符串’)t=[0:pi/20:5*pi];f=sin(t)figure(1)subplot(121)plot(t,f)gridonsubplot(122)plot(t,-f)gridonMatlab绘图基础subplot(mnk):分割图形显示窗口m:上下分割个数,n:左右分割个数,k:子图编号t=[0:pi/20:5*pi];Matlab绘图基础sub内容Matlab与数字通信仿真4内容Matlab与数字通信仿真4Matlab与数字通信仿真Matlab与数字通信仿真Matlab与数字通信仿真Matlab与数字通信仿真Matlab与数字通信仿真产生随机数randsrc:产生给定符号集合的随机数randn:产生正态分布的随机数randint:产生均匀分布的随机整数

举例:产生0、1分布的随机序列

randsrc(1,N,[0,1;0.5,0.5])randint(1,N)Matlab与数字通信仿真产生随机数randsrc:产生给定Matlab与数字通信仿真产生随机数Matlab与数字通信仿真产生随机数Matlab与数字通信仿真Matlab与数字通信仿真Matlab与数字通信仿真数字调制qammodqamdemodgenqammodgenqamdemodpammod,pamdemod建议自己编写!

举例:进行QPSK调制

输入2比特符号I路Q路00011011-11113-1-11021-1const=[1+j,-1+j,1-j,-1-j];y=genqammod(x,const);Matlab与数字通信仿真数字调制qammod举例:进行Q数字调制Matlab与数字通信仿真数字调制Matlab与数字通信仿真Matlab与数字通信仿真Matlab与数字通信仿真Matlab与数字通信仿真插值upsample建议自己编写!

举例:进行8倍上采样

N=8;y=upsample(x,N);

Matlab与数字通信仿真插值upsample举例:进行8Matlab与数字通信仿真Matlab与数字通信仿真Matlab与数字通信仿真波形成型y=rcosflt(x,Fd,Fs,type_flag,r,delay)filter=rcosine(Fd,Fs,type_flag,r,delay)y=conv(x,filter)建议自己编写!Matlab与数字通信仿真波形成型y=rcosflt(xMatlab与数字通信仿真波形成型Matlab与数字通信仿真波形成型给大家的建议自己去编写课程相关的函数:养成好的习惯:变量、函数的命名有意义,加入注释(%),增强可读性.m文件(主程序)开头先把环境打扫干净(clc;clear)!注意在子程序中不要用clear尽量使用矩阵运算程序尽量模块化,即采用主程序调用子程序参数值最好集中放在程序的开始部分,以便维护给大家的建议自己去编写课程相关的函数:ThankYouforyourattention!ThankYouforyourattention!通信系统仿真讲授人:肖湘Email:xiaoxiang1806@163.com

通信系统仿真讲授人:肖湘相关书籍《Matlab/Simulink通信系统建模与仿真实例分析》邵玉斌,清华大学出版社《基于Matlab的通信系统仿真》赵静等,北京航空航天大学出版社《Matlab及在电子信息类课程中的应用》唐向宏等,电子工业出版社《MATLAB基础教程》薛山,清华大学出版社相关书籍《Matlab/Simulink通信系统建模与仿真实教学目标了解通信系统建模仿真思想与方法掌握Matlab语言的基本操作学会使用Simulink进行建模与仿真教学目标了解通信系统建模仿真思想与方法对学习者的要求三个重要环节课前预习课上认真听讲,思考课后实践、消化经常进行阶段应用掌握知识的窍诀:反复上机实践对学习者的要求三个重要环节其他约定不得迟到、早退、缺课,有事请假上课时请关闭手机或者调静音迟交的作业恕不修改,只作记录最终成绩=期末考试成绩+平时成绩其他约定内容通信系统建模与仿真1Matlab简介2Matlab语言基础3内容通信系统建模与仿真1Matlab简介2Matlab语言基内容通信系统建模仿真1分类概念、方法工具内容通信系统建模仿真1分类概念、方法工具1.1通信仿真的概念在对原有的通信系统做出改进或建立一个新系统之前,通常需要对这个系统进行建模和仿真,通过仿真结果衡量方案的可行性,从中选择最合理的系统配置和参数设置,然后再应用于实际系统中。这个过程就是通信仿真。1.1通信仿真的概念在对原有的通信系统做出改进或建立一个新1.1通信仿真的概念随着数字通信技术的发展,特别是与计算机技术的相互融合,通信系统和信号处理技术变得越来越复杂。强大的计算机辅助分析与设计工具和系统仿真方法作为将新的技术理论成果转换为实际产品的高效而低成本途径越来越受到业界的青睐。1.1通信仿真的概念随着数字通信技术的发展,特别是与计算机1.1通信仿真的概念建模和仿真的作用和意义:利用系统建模和软件仿真技术,我们几乎可以对所有的设计细节进行分层次的建模和评估。通过仿真技术和方法,我们可以有效地将数学分析模型和经验模型结合起来。利用系统仿真方法,可以迅速构建一个通信系统模型,提供一个便捷,高效和精确的评估平台。1.1通信仿真的概念1.1通信仿真的概念系统仿真的数学基础定义:仿真也称为模拟,在本质上,系统的计算机仿真就是根据物理系统的运行原理建立相应的数学描述并进行计算机数值求解的过程。建模和仿真过程建立系统数学模型或仿真模型编写系统的计算机仿真模型求解分析关键问题求解算法算法的改进简化系统模型

1.1通信仿真的概念系统仿真的数学基础1.1通信仿真的概念计算机仿真的一般过程建立计算机程序(层次化的)执行仿真对仿真模型和仿真结果的检验仿真验证包含以下方面内容:对仿真数学模型有效性的验证。对计算机仿真模型(程序)的验证。对仿真算法的验证。仿真结果置信度分析。1.1通信仿真的概念计算机仿真的一般过程1.2通信仿真的基本方法将给定问题映射为仿真模型。把整个问题分解为一组子问题。选择合适的建模、仿真和估计方法,并将其用于解决这些子问题。综合各子问题的解决结果以提供对整个问题的解决方案。1.2通信仿真的基本方法将给定问题映射为仿真模型。1.3通信系统模型的分类按照系统层次分类按照信号类型分类按照系统特征分类1.3通信系统模型的分类按照系统层次分类1.3通信系统模型的分类按照系统层次分类通信系统的最高层次描述是通信网络层次在网络层次之下,是对通信节点和链路以及传输信号的具体化,称为链路层次模型。电路实现层次的模型。1.3通信系统模型的分类按照系统层次分类1.3通信系统模型的分类按照信号类型分类根据函数类型的不同可以将信号划分为模拟信号,数字信号,时间连续信号,时间离散信号等。按照链路层通信系统仿真模型中流通的信号类型不同,可以将其划分为连续时间系统,离散时间系统,模拟系统,数字系统以及混合系统等。

1.3通信系统模型的分类按照信号类型分类1.3通信系统模型的分类按照系统特征分类恒参系统变参系统或时变系统确定系统随机系统无记忆系统有记忆系统或动态系统(系统的当前输出与输入信号的历史值有关)1.3通信系统模型的分类按照系统特征分类1.4通信系统仿真的优点和局限性优点:

难以使用解析法求解的情况下系统仿真手段就成为了一个极为有效的工具。利用仿真技术往往可以绕过艰深的甚至是不可能的数学解析求解,而较为轻易地获得问题的数值结果。在对现代通信系统新协议、新算法和新的体系结构的设计和性能评估中,只能通过仿真来检验所考察的对象,以验证有关的假设,评价算法的性能。仿真技术也是理解原理,验证理论,进行探索和发现的有效途径。1.4通信系统仿真的优点和局限性优点:1.4通信系统仿真的优点和局限性缺点模型的建立、验证和确认比较困难。对实际系统的建模的原理和方法不当使得与实际系统的差别较大。建模过程中忽略了部分次要因素,使得模型仿真结果偏离实际系统。仿真试验时间太短,给结果分析带来较大误差。随机变量的概率分布类型或参数选取不当。仿真输出结果的统计误差。计算机字长、编码和应用算法也会影响仿真结果。1.4通信系统仿真的优点和局限性缺点1.5系统建模仿真方法与仿真工具系统建模仿真方法与仿真工具的关系仿真工具是实现建模和数值求解过程的软件和硬件平台。我们所希望的现代仿真平台和编程语言环境具有如下基本特征:简便高效的仿真描述语言。层次化和模块化建模的能力。可视化的建模方式。软件硬件协同仿真的能力。交互性和图形环境。跨平台和可移植性。1.5系统建模仿真方法与仿真工具系统建模仿真方法与仿真工具1.5系统建模仿真方法与仿真工具仿真环境的构成和要求模块库。模块编辑和配置器。仿真管理器。后处理部分。文件和数据库管理。帮助文档。1.5系统建模仿真方法与仿真工具仿真环境的构成和要求1.5系统建模仿真方法与仿真工具常用仿真工具的选择网络层次的建模:OPNET,NS链路层次的仿真:Matlab/Simulink,Systemview,Scilab以及C,C++电路实现层次的仿真:Spice,VHDL本课程以Matlab/Simulink作为建模和仿真平台1.5系统建模仿真方法与仿真工具常用仿真工具的选择作业安装MATLAB系统作业安装MATLAB系统内容Matlab简介2Matlab窗口环境Matlab是什么?内容Matlab简介2Matlab窗口环境Matlab是什2.1Matlab是什么?一、概述

MATLAB的名称源自MatrixLaboratory,它的首创者是在数值线性代数领域颇有影响的CleveMoler博士,他也是生产经营MATLAB产品的美国Mathworks公司的创始人之一。

MATLAB是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而使其被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作中。2.1Matlab是什么?一、概述MATLAB产品族可以用来进行如下工作:数值分析;数值和符号计算;工程与科学绘图;控制系统的设计与仿真;数字图像处理;数字信号处理;通讯系统设计与仿真;财务与金融工程等。2.1MATLAB简介MATLAB产品族可以用来进行如下工作:2.1MATL二、MATLAB仿真的意义

当在实际电子通信系统中进行试验研究比较困难或者根本无法实现时,仿真技术就成为必然的选择。2.1MATLAB简介二、MATLAB仿真的意义2.1MATLAB简介MATLAB与其它计算机高级语言如C,C++等相比,MATLAB语言编程要简洁得多,编程语句更加接近数学描述,可读性好,其强大的图形功能和可视化数据处理能力也是其它高级语言望尘莫及的。对于具有任何一门高级语言基础的学生来说,学习MATLAB十分容易。2.1MATLAB简介MATLAB与其它计算机高级语言如MATLAB使得人们摆脱了常规计算机编程的繁琐,让人们能够将大部分精力投入到研究问题的数学建模上。可以说,应用MATLAB这一数学计算和系统仿真的强大工具,可以使科学研究的效率得以成百倍的提高。2.1MATLAB简介MATLAB使得人们摆脱了常规计算二、MATLAB特点跨平台的数学语言超高级语言语法简单,编程风格接近数学风格强大的绘图功能计算精度很高拥有学科众多,领域广泛的工具箱可移植2.2MATLAB特点二、MATLAB特点2.2MATLAB特点三、MATLAB入门操作命令窗口CommandWindow

历史命令窗口CommandHistory

当前目录窗口CurrentDirectory

工作空间窗口Workspace2.3MATLAB界面三、MATLAB入门操作2.3MATLAB界面通信系统仿真(第一次课)资料课件通信系统仿真(第一次课)资料课件1.CommandWindow

可显示除图像以外的所有结果最简单的计算器使用法准备阶段2.3MATLAB界面1.CommandWindow2.3MATLABMATLAB语句形式变量=表达式;通过等号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果不希望结果回显,只需在语句后加分号即可。2.3MATLAB界面MATLAB语句形式2.3MATLAB界面命令行编辑器方向键和控制键可以编辑修改已输入的命令↑:回调上一行命令↓:回调下一行命令多行命令(…):如果命令语句超过一行或者太长希望分行输入,可以使用多行命令继续输入

2.3MATLAB界面例如:S=1-12+13+4+…9-4-18;命令行编辑器2.3MATLAB界面例如:复数和复数矩阵

MATLAB把复数作为一个整体处理。虚数单位用预定义变量i或j表示;复数z=a+bi=直角坐标是和极坐标系之间转换的MATLAB指令:

real(z)imag(z)abs(z)angle(z)MATLAB的矩阵元素允许是复数、复变量和由它们组成的表达式2.3MATLAB界面复数和复数矩阵2.3MATLAB界面指令窗的常用控制指令

clc清除指令窗中显示内容

clear清除工作空间中保存的变量

exit关闭/退出MATLABquit关闭/退出MATLAB2.3MATLAB界面指令窗的常用控制指令2.3MATLAB界面2.CommandHistoryWindow

记录着用户在指令窗中所输入过的所有指令行。

2.3MATLAB界面2.CommandHistoryWindow23.CurrentDirectoryWindow

组织、管理和使用所有matlab文件和非matlab文件。2.3MATLAB界面3.CurrentDirectoryWindow4.WorkspaceWindow

内存变量的查阅、保存和编辑。(who,whos)2.3MATLAB界面4.WorkspaceWindow2.3MAT内容Matlab语言基础3基本运算符变量绘图常用函数基本语句内容Matlab语言基础3基本运算符变量绘图常用函数3.1Matlab语言基础:变量变量的命名变量无需定义即可使用变量的名字必须以字母开头,之后可以是任意字母、数字或下划线(不能超过31个字符)变量名称区分字母的大小写不能包含空格、标点变量操作在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调用采用clear将清除内存内的所有变量采用“clear变量名”清除指定变量3.1Matlab语言基础:变量变量的命名变量操作3.1.1矩阵矩阵的赋值要求整个矩阵的值必须放在方括号中;同一行中各元素之间以逗号“,”或者空格分开;不同行的元素以分号“;”隔开。3.1.1矩阵矩阵的赋值要求3.1.1矩阵操作结果?a=[1,2,3,4,5,6]b=[1,2,3;4,5,6]c=[1,2,3;4,5,6];[1,2,3;4,5,6]3.1.1矩阵操作结果?3.1.2变量元素的标注变量的元素用圆括号“()”中的数字来注明a=[1,2,3;4,5,6;7,8,9];a(2,2)a(4,4)=5.6size(a)3.1.2变量元素的标注变量的元素用圆括号“()”中的数字来3.1.3赋值技巧在MATLAB中,为变量的赋值提供一些简便快捷的方法冒号:产生递进向量t=i:j:k(t=1:2:10t=1:10)利用冒号给全行赋值a(5,:)=[5,4,3,2]利用行,列标注构成新的矩阵b=a([2,4],[1,3])a([2,4,5],:)=[]3.1.3赋值技巧在MATLAB中,为变量的赋值提供一些简3.1.4特殊的矩阵和数组除了采用直接输入方法对变量赋值外,也可利用MATLAB的内部函数来对变量赋值,利用这些函数来创建和生成特殊矩阵或数组。在MATLAB中提供了许多生成矩阵的函数命令,这些函数命令存放在“matlab/elmat”目录下。3.1.4特殊的矩阵和数组除了采用直接输入方法对变量赋值外,3.1.4特殊矩阵和数组1单位矩阵函数

产生在对角线元素为1,其他元素为0的单位矩阵。a=eye(n)a=eye(m,n)a=eye(size(b))3.1.4特殊矩阵和数组1单位矩阵函数3.1.4特殊矩阵和数组2zero函数a=zero(n)a=zero(m,n)a=zero(size(b))ones函数a=ones(n)a=ones(m,n)a=ones(size(b))3.1.4特殊矩阵和数组2zero函数ones函数3.1.4特殊矩阵和数组3rand及randn函数X=rand(m,n)产生在(0,1)之间均匀分布的随机一维数组或行矢量X=randn(m,n)产生均值为0,方差为1的正态分布的随机一维数组或行矢量

3.1.4特殊矩阵和数组3rand及randn函数3.1.5内部特殊变量和常数ans:临时变量realmax:最大正浮点数,任何大于该值的运算都会溢出。realmin:最小正浮点数,任何小于该值的运算都会溢出。pi:常数,表示圆周率。Inf:常数,表示正无穷大。i/j:虚数单位,表示复数虚部单位。NaN:表示非数值,如Inf-Inf,0/0

3.1.5内部特殊变量和常数ans:临时变量3.1.6复数的赋值方法可将矩阵元逐个赋予复数z=[1+2i,3+4i,5+6i,7+8i]将矩阵的实部和虚部分别赋值z=[1,3,5,7]+[2,4,6,8]*i3.1.6复数的赋值方法可将矩阵元逐个赋予复数将矩阵的实部和常用的数学运算符运算式中,通常不需要考虑空格多条命令可以放在一行中同行中各条命令可用分号隔开,表示禁止结果显示同行中各条命令也可用逗号隔开,表示需要显示结果+----加-----减*----乘

/----左除

\----右除

^----幂3.2Matlab语言基础:基本运算符常用的数学运算符+----加常用的关系运算符

>----大于

>=----大于等于

<----小于

<=

----小于等于

==----等于

~=----不等于运算法则若关系式成立,结果为1若关系式不成立,结果为03.2Matlab语言基础:基本运算符常用的关系运算符>----大计算a=[1,2,3;4,5,6]b=[2,1;3,4;5,6]

a*ba=[1,2,3;4,5,6]b=[1+1i,2+2i,3+3i;4+4i,5+5i,6+6i]a.*b计算a=[1,2,3;4,5,6]b=[2,1常用的逻辑运算符

&----与

|----或

!----非运算法则若逻辑真,结果为1若逻辑假,结果为03.2Matlab语言基础:基本运算符常用的逻辑运算符&----与其他常见符号3.2Matlab语言基础:基本运算符

=

----变量赋值%----注释符

‘----共轭转置符

.’----转置符:----冒号运算符举例:

n:s:m产生n~m、步长为s的序列其他常见符号3.2Matlab语言基础:基本运算符循环语句for-end循环:循环次数事先确定时使用while-end循环:循环次数不能事先确定时使用3.3Matlab语言基础:基本语句fori=n:s:m

语句体ends为步长可以为正数,负数或小数while表达式语句体end表达式为真,执行语句体表达式为假,终止该循环循环语句3.3Matlab语言基础:基本语句fori=分支语句if-elseif-else-end:具有优先级switch-case-otherwise-end:无优先级3.3Matlab语言基础:基本语句if表达式1

语句体1elseif表达式2

语句体2………..else

语句体elseendswitch变量

case变量值1语句体1case变量值2语句体2……otherwise

语句体otherwiseend分支语句3.3Matlab语言基础:基本语句if表达常用的数学函数abs----求绝对值sin----正弦cos----余弦tan----正切asin----反正弦acos----反余弦atan----反正切sqrt----求平方根exp----eximag----求虚部real----求实部sign----求符号log----求自然对数log10----以10为底的对数conj----共轭复数Matlab语言基础:常用函数常用的数学函数abs----求绝对值eMatlab语言基础:矩阵矩阵的生成例如:创建一个3×3矩阵输入:a=[123;456;789]

或者a=[123456789]

屏幕输出:a=123456789矩阵的元素直接排列在方括号内行与行之间用分号隔开每行内的元素使用空格或逗号隔开大的矩阵可以用分行输入,回车键代表分号Matlab语言基础:矩阵矩阵的生成例如:创建一个3×3矩矩阵的生成举例:输入a=[1:2:10]屏幕输出:a=13579输入a=[10:-2:1]屏幕输出:a=108642用线性等间距生成向量矩阵start:step:end

start:起始值

step:步长(默认为1,可为负值)

end:终止值Matlab语言基础:矩阵矩阵的生成举例:用线性等间距生成向量矩阵sta一些常用的特殊矩阵eye(2,3)ans=100010eye(2)ans=1001V=[572];A=diag(V)A=500070002Matlab语言基础:矩阵单位矩阵:eye(m,n);eye(m)零矩阵:zeros(m,n);zeros(m)一矩阵:ones(m,n);ones(m)对角矩阵:对角元素向量V=[a1,a2,…,an]A=diag(V)随机矩阵:rand(m,n)产生一个m×n的均匀分布的随机矩阵zeros(2,3)ans=000000zeros(2)ans=0000ones(2,3)ans=111111ones(2)ans=1111rand(2,2)ans=0.41540.87440.01500.9708一些常用的特殊矩阵eye(2,3)eye(2)V=[57矩阵元素的访问通过确认矩阵下标,可以对矩阵的子块进行插入、提取和重排注意:MATLAB中矩阵下标从1开始,而不是从0开始Matlab语言基础:矩阵

A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取m1~m2行和n1~n2列的所有元素A(:):得到一个长列矢量,其元素按矩阵的列进行排列A=[123456];A(2,1)ans=4A(2,:)ans=456A(:,2)ans=25A(1:2,2:3)ans=2356A(:)ans=142536矩阵元素的访问Matlab语言基础:矩阵A(矩阵的扩展与消除矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。消除子块:如果将矩阵的子块赋值为空矩阵[],则相当于消除了相应的矩阵子块。Matlab语言基础:矩阵A=[123456];A(3,2)=7A=[123456070]A(2,:)=[]A=[123]矩阵的扩展与消除Matlab语言基础:矩阵A=[12矩阵的大小Matlab语言基础:矩阵[m,n]=size(A,x):返回矩阵的行列数m与n当x=1,则只返回行数m当x=2,则只返回列数nlength(A)=max(size(A)):返回行数或列数的最大值A=[123456];size(A)ans=23size(A,1)ans=2size(A,2)ans=3矩阵的大小Matlab语言基础:矩阵[m,n]=size(矩阵的运算举例A=[1+i2-2i;-3+3i-4-4i]A=1+i2-2i-3+3i-4-4iB=A’B=1-i-3-3i2+2i-4+4iC=A.’C=1+i-3+3i2-2i-4-4iMatlab语言基础:矩阵转置:转置符号有两种形式

A’----共轭转置A.’----普通转置求逆:inv(A)

求行列式:det(A)矩阵的运算举例B=A’C=A.’M

温馨提示

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

评论

0/150

提交评论