《Matlab与通信仿真》实验指导书(上) 刘毓杨辉徐健和煦黄庆东吉利萍编著 通信与信息工程学院 2009-12
《Matlab 与通信仿真》实验指导书(上) 刘毓 杨辉 徐健 和煦 黄庆东 吉利萍编著 通信与信息工程学院 2009-12
目录 第一章MALTAB基础知识.,· 1.1 MATLAB基础知识 明。,。,1 1.2 MATLAB基本运算.2 1.3 MATLAB程序设计.7 第二章MATLAB计算结果可视化和确知信号分析.13 2.1计算结果可视化.13 2.2确知信号分析. .17 第三章随机信号与数字基带仿真,······ 3.1基本原理和实现示例.24 3.2蒙特卡罗算法. .31 第四章棋拟调制MATLAB实现.··· .35 4.1模拟调制. 35 4.2AM调制解调的MATLAB实现. .36 第五章模拟信号的数字传输.·.·.。 .45 5.1脉冲编码调制.· 45 5.2低通抽样定理. 45 5.3均匀量化原理. .46 5.4非均匀量化. .48 第六章数字频带传输系统.52 6.1数字频带传输原理. 52 6.2信道加性高斯白噪声功率的讨论 。.。,。,。,。,,53 6.3仿真分析.54 第七章通信系统仿真综合实验.,·, 68 7.1基本原理. 68 72实验内容. .68
目 录 第一章 MALTAB 基础知识 . 1 1.1 MATLAB 基础知识 .1 1.2 MATLAB 基本运算 .2 1.3 MATLAB 程序设计 .7 第二章 MATLAB 计算结果可视化和确知信号分析 . 13 2.1 计算结果可视化.13 2.2 确知信号分析.17 第三章 随机信号与数字基带仿真 . 24 3.1 基本原理和实现示例.24 3.2 蒙特卡罗算法.31 第四章 模拟调制 MATLAB 实现 . 35 4.1 模拟调制.35 4.2 AM 调制解调的 MATLAB 实现 .36 第五章 模拟信号的数字传输. 45 5.1 脉冲编码调制.45 5.2 低通抽样定理.45 5.3 均匀量化原理.46 5.4 非均匀量化.48 第六章 数字频带传输系统 . 52 6.1 数字频带传输原理.52 6.2 信道加性高斯白噪声功率的讨论.53 6.3 仿真分析.54 第七章 通信系统仿真综合实验 . 68 7.1 基本原理.68 7.2 实验内容.68
第一章MATLAB基础知识 第一章MALTAB基础蜘识 本章目标 ●了解MATLAB程序设计语言的基本特点,熟悉MATLAB软件运行环境 。掌握创建、保存、打开m文件及函数的方法 。掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进 行处理的能力 1.1 MATLAB基础知识 L.L.1 MATLAB程序设计语言简介 MATLAB,Matrix Laboratory的缩写,是由Math Works公司开发的一套用于科学工 程计算的可视化高性能语言,具有强大的矩阵运算能力。与大家常用的Fortran和C等高 级语言相比,MATLAB的语法规则更简单,更贴近人的思维方方式,被称为“草稿纸式的 语言”。MATLAB软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分 组成。 1.1.2 MATLAB界面及帮助 MATLAB基本界面如图1-1所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、 状态栏、垂直和水平波动条等区域。 标题栏菜单栏工具栏 命令行区 状态栏 垂直和水平滚动条 ◆HATLAB 日▣☒ Eile Edit yiew Yek Window Help De年?Curent Directory C.MATLABEp5wrk 0 woclpece 7☒ Command Window ☒ 日n盼sakB圆 >》B=iwA) 可e Sire Bytes Class 田A 3x3 72 double arra 田B 3x3 72 double arro -0.0345 0.0345 -0.7759 田as double arra -0.0172 0.0172 -0.1379 33 0.1659 -0.040 1.2028 用 1at 8 double arra 田ney 2x6 double arra 》A林B 用, 1知 8 double arrs ans 1x1 8 double arra 用y 3x4 9 double arra 1.0000 0.0000 0 0 1.0000 0.0000 0.0000 -0.0000 1.0000 Workspace Current Directory >》=p1/2*wp06)+78 r= [7,1938:2,31,8:1,45] B=inv (A) 711.7045 A*B h=[7,19,8:2,31,8:1.4,5] >》 《 么Stat 图1-1 MATLAB基本界面 (1)菜单栏
第一章 MATLAB 基础知识 1 第一章 MALTAB 基础知识 本章目标 ⚫ 了解 MATLAB 程序设计语言的基本特点,熟悉 MATLAB 软件运行环境 ⚫ 掌握创建、保存、打开 m 文件及函数的方法 ⚫ 掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进 行处理的能力 1.1 MATLAB 基础知识 1.1.1 MATLAB 程序设计语言简介 MATLAB,Matrix Laboratory 的缩写,是由 MathWorks 公司开发的一套用于科学工 程计算的可视化高性能语言,具有强大的矩阵运算能力。与大家常用的 Fortran 和 C 等高 级语言相比,MATLAB 的语法规则更简单,更贴近人的思维方方式,被称为“草稿纸式的 语言”。MATLAB 软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分 组成。 1.1.2 MATLAB 界面及帮助 MATLAB 基本界面如图 1-1 所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、 状态栏、垂直和水平波动条等区域。 图 1-1 MATLAB 基本界面 (1)菜单栏
第一章MATLAB基础知识 在MATLAB主窗口的菜单栏,共包含File、Edit、iew、Web、Window和Help6 个菜单项。 ●File菜单项:File菜单项实现有关文件的操作。 ●Edit莱单项:Edit菜单项用于命令窗口的编辑操作。 ●View菜单项:View菜单项用于设置MATLAB集成环境的显示方式。 ●Web菜单项:Web菜单项用于设置MATLAB的Web操作。 Vindow菜单项:主窗口菜单栏上的Window菜单,只包含一个子菜单Close al山,用于 关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。 ●Help菜单项:Help菜单项用于提供帮助信息。 (2)工具栏 MATLAB主窗口的工具栏共提供了10个命令按钮。这些命令按钮均有对应的菜单命 令,但比菜单命令使用起来更快捷、方便。 (3)命令行区 MATLAB按以下顺序对输入命令进行解释: 。检查它是否是工作空间中的变量,实则显示变量内容。 ●检查它是否是嵌入函数,是则运行之。 ● 检查它是否是子函数。 ●检查它是否是私有函数。 ● 检查它是否是位于MATLAB搜索路径范围内的函数文件或脚本文件。 MATLAB里有以下几种方法可获得帮助: (1)帮助命令(help)是查询函数相关信息的最直接方式,信息会直接显示在命令窗口中。 键入help sin,会显示sin相关信息。 (2)lookfor命令可以从键入的关键字列出所有相关的题材,和hep相比,lookfor覆盖范 围更广,可查找到某个主题所有词组或短语。 (3)帮助窗口(help wir血dow)提供与帮助命令相同的信息,但帮助窗口界面更为方便直接。 (4)帮助桌面(help desk)通过在命令窗口中选择帮助菜单的“help desk”选项或键入 helpdesk命令即可进入帮助桌面。 (5)在线帮助页是帮助桌面的在线帮助均有相应的PDF格式文件。 (6)Mathworks网站,对于连接入Internet的用户通过Mathworks公司的网站 wwW.nathworks.com询问有关问题。 1.2 MATLAB基本运算 1.2.1 MATLAB内部特殊变量和常数 MATLAB内部有很多变量和常数,用来表达特殊含义,常用的有: ●变量ans:指示当前未定义变量名的答案。 ●常数eps:表示浮点相对精度,其值是从1.0到下一个最大浮点数之间的差值。 ●常数Inf:表示无穷大。 ●虚数单位ij:表示不定型值,是由0/0运算产生。 ●常数p:表示圆周率r。 1.2.2变量类型 (1)变量命名规则 ATLAB中对变量的命名应遵循以下规则: ●变量名可以由字母、数字和下划线混合组成,但必须以字母开头
第一章 MATLAB 基础知识 2 在 MATLAB 主窗口的菜单栏,共包含 File、Edit、View、Web、Window 和 Help 6 个菜单项。 ⚫ File 菜单项:File 菜单项实现有关文件的操作。 ⚫ Edit 菜单项:Edit 菜单项用于命令窗口的编辑操作。 ⚫ View 菜单项:View 菜单项用于设置 MATLAB 集成环境的显示方式。 ⚫ Web 菜单项:Web 菜单项用于设置 MATLAB 的 Web 操作。 ⚫ Window 菜单项:主窗口菜单栏上的 Window 菜单,只包含一个子菜单 Close all,用于 关闭所有打开的编辑器窗口,包括 M-file、Figure、Model 和 GUI 窗口。 ⚫ Help 菜单项:Help 菜单项用于提供帮助信息。 (2)工具栏 MATLAB 主窗口的工具栏共提供了 10 个命令按钮。这些命令按钮均有对应的菜单命 令,但比菜单命令使用起来更快捷、方便。 (3)命令行区 MATLAB 按以下顺序对输入命令进行解释: ⚫ 检查它是否是工作空间中的变量,实则显示变量内容。 ⚫ 检查它是否是嵌入函数,是则运行之。 ⚫ 检查它是否是子函数。 ⚫ 检查它是否是私有函数。 ⚫ 检查它是否是位于 MATLAB 搜索路径范围内的函数文件或脚本文件。 MATLAB 里有以下几种方法可获得帮助: (1)帮助命令(help)是查询函数相关信息的最直接方式,信息会直接显示在命令窗口中。 键入 help sin,会显示 sin 相关信息。 (2)lookfor 命令可以从键入的关键字列出所有相关的题材,和 help 相比,lookfor 覆盖范 围更广,可查找到某个主题所有词组或短语。 (3)帮助窗口(help window)提供与帮助命令相同的信息,但帮助窗口界面更为方便直接。 (4)帮助桌面(help desk)通过在命令窗口中选择帮助菜单的“help desk”选项或键入 helpdesk 命令即可进入帮助桌面。 (5)在线帮助页是帮助桌面的在线帮助均有相应的 PDF 格式文件。 ( 6) Mathworks 网站,对于连接入 Internet 的用户通过 Mathworks 公司的网站 www.mathworks.com 询问有关问题。 1.2 MATLAB 基本运算 1.2.1 MATLAB 内部特殊变量和常数 MATLAB 内部有很多变量和常数,用来表达特殊含义,常用的有: ⚫ 变量 ans:指示当前未定义变量名的答案。 ⚫ 常数 eps:表示浮点相对精度,其值是从 1.0 到下一个最大浮点数之间的差值。 ⚫ 常数 Inf:表示无穷大。 ⚫ 虚数单位 i j:表示不定型值,是由 0/0 运算产生。 ⚫ 常数 pi:表示圆周率π。 1.2.2 变量类型 (1)变量命名规则 MATLAB 中对变量的命名应遵循以下规则: ⚫ 变量名可以由字母、数字和下划线混合组成,但必须以字母开头
第一章MATLAB基础知识 ●. 字符长度不能大于31。 ·变量命名区分大小写。 (2)局部变量和全局变量 局部变量是指那些每个函数体内自己定义的,不能从其他函数和MATLAB工作空间访 问的变量。 全局变量是指用关键字“goal”声明的变量。全局变量名应尽量大写,并能反映它本 身的含义。如果需要在工作空间和几个函数中都能访问一个全局变量,必须在工作空间和 几个函数中都声明该变量是全局的。 1.2.3内存变量管理 (1)内存变量的删除与修政 clear命令用于刑除MATLAB工作空间中的变量。 cc命令用于清空MATLAB命令窗口中的变量。 who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who 命令只显示出驻留变量的名称,wos在给出变量名的同时,还给出它们的大小、所占字节 数及数据类型等信息。 (2)内存变量文件 利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩 展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为: save文件名[变量名表]卜append-ascii] load文件名[变量名表]-ascii 1.2.4 MATLAB常用数学函数 MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐 项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数使用说明: ●三角函数以弧度为单位计算。 ● abs函数可以求实数的绝对值、复数的模、字符申的ASCⅡ码值。 ● 用于取整的函数有fi、loor、ceil、round,要注意它们的区别。 ● rem与mod函数的区别。rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标 量。 1.2.5 MATLAB矩阵生成 MATLAB具有强大的矩阵运算和数据处理功能,对矩阵的处理必须遵从代数规则。 (1)矩阵的建立 ·直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元 素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔, 不同行的元素之间用分号分隔。 ●利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例 子来说明如何利用M文件创建矩阵。 ●利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:el:e2:e3,其中e1为初始值,e2为步 长,3为终止值。 在MATLAB中,还可以用linspace函数产生行向量。其调用格式为:linspacet(a,b,n), 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。显然,linspace(a,b,n)与
第一章 MATLAB 基础知识 3 ⚫ 字符长度不能大于 31。 ⚫ 变量命名区分大小写。 (2)局部变量和全局变量 局部变量是指那些每个函数体内自己定义的,不能从其他函数和 MATLAB 工作空间访 问的变量。 全局变量是指用关键字“global”声明的变量。全局变量名应尽量大写,并能反映它本 身的含义。如果需要在工作空间和几个函数中都能访问一个全局变量,必须在工作空间和 几个函数中都声明该变量是全局的。 1.2.3 内存变量管理 (1)内存变量的删除与修改 clear 命令用于删除 MATLAB 工作空间中的变量。 clc 命令用于清空 MATLAB 命令窗口中的变量。 who和 whos这两个命令用于显示在 MATLAB 工作空间中已经驻留的变量名清单。who 命令只显示出驻留变量的名称,whos 在给出变量名的同时,还给出它们的大小、所占字节 数及数据类型等信息。 (2)内存变量文件 利用 MAT 文件可以把当前 MATLAB 工作空间中的一些有用变量长久地保留下来,扩 展名是.mat。MAT 文件的生成和装入由 save 和 load 命令来完成。常用格式为: save 文件名 [变量名表] [-append][-ascii] load 文件名 [变量名表] [-ascii] 1.2.4 MATLAB 常用数学函数 MATLAB 提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐 项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。函数使用说明: ⚫ 三角函数以弧度为单位计算。 ⚫ abs 函数可以求实数的绝对值、复数的模、字符串的 ASCII 码值。 ⚫ 用于取整的函数有 fix、floor、ceil、round,要注意它们的区别。 ⚫ rem 与 mod 函数的区别。rem(x,y)和 mod(x,y)要求 x,y 必须为相同大小的实矩阵或为标 量。 1.2.5 MATLAB 矩阵生成 MATLAB 具有强大的矩阵运算和数据处理功能,对矩阵的处理必须遵从代数规则。 (1)矩阵的建立 ⚫ 直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元 素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔, 不同行的元素之间用分号分隔。 ⚫ 利用 M 文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个 M 文件。下面通过一个简单例 子来说明如何利用 M 文件创建矩阵。 ⚫ 利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中 e1 为初始值,e2 为步 长,e3 为终止值。 在 MATLAB 中,还可以用 linspace 函数产生行向量。其调用格式为:linspace(a,b,n), 其中 a 和 b 是生成向量的第一个和最后一个元素,n 是元素总数。显然,linspace(a,b,n)与