logo资料库

通信原理MATLAB仿真实验指导书V7.0综合版林志谋20140122.pdf

第1页 / 共94页
第2页 / 共94页
第3页 / 共94页
第4页 / 共94页
第5页 / 共94页
第6页 / 共94页
第7页 / 共94页
第8页 / 共94页
资料共94页,剩余部分请下载后查看
通信原理 Matlab 仿真实验指导书 厦门海洋职业技术学院 林志谋 leansmall@163.com 2014 年 1 月 更新
通信原理 Matlab 仿真实验指导书 V7.0 综合版 林志谋 leansmall@163.com 前 言 Matlab 的名称源自 Matrix Laboratory,它的首创者是在数值线性代数领域 颇有影响的 Cleve Moler 博士,他也是生产经营 Matlab 产品的美国 Mathworks 公司的创始人之一。 Matlab 是一种科学计算软件,专门以矩阵的形式处理数据。Matlab 将高性 能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而使其被广泛 地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作中。 Matlab 程序语言设计和 Simulink 是 Matlab 主要的两种仿真设计的工具。 Matlab 程序语言设计语法相对简单,功能较为强大,仿真设计最为灵活,需要 较高的设计技巧;Simulink 是 Matlab 最重要的组件之一,它提供一个动态系统 建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要 通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink 具有适应面广、 结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点 Simulink 已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有 大量的第三方软件和硬件可应用于或被要求应用于 Simulink。 现有的 Matlab 实验指导书基本上都是以 Matlab 语言程序设计进行通信系统 的仿真,而本实验指导书主要是以较为通俗易懂的 Matlab Simulink(V6.5)为基 础平台,兼顾 Matlab 程序语言设计入门,适合在校大专生和本科生作为实验参 考书,让大家在初步了解通信系统理论的基础上,利用 Matlab 提供的通信工具 箱和信号处理工具箱中的模块,对通信系统中的调制和解调,编码和解码,信号 差错控制等系统进行模型构建、系统设计、仿真演示、结果显示,在增强学生动 手能力的同时,进一步加深对通信原理基础理论的理解。 信 息 技 术 系 通 信 教 研 室 林 志 谋 2014 年 1 月 22 日 - 1 -
通信原理 Matlab 仿真实验指导书 V7.0 综合版 林志谋 leansmall@163.com 目 录 实验 1:MATLAB 基础知识 .................................................................. 3 实验 2:MATLAB SIMULINK 的建模仿真 ........................................ 9 实验 3:通信的信道与噪声仿真 .......................................................... 17 实验 4:AM 调制与解调仿真 ............................................................... 22 实验 5:DSB 调制与解调仿真 .............................................................. 29 实验 6:SSB 调制与解调仿真 .............................................................. 34 实验 7:抽样定理及 PCM 编码与解码仿真 ....................................... 39 实验 8:通信基带系统测量工具眼图仿真 .......................................... 47 实验 9:2ASK 调制与解调仿真 ........................................................... 53 实验 10:2FSK 调制与解调仿真 .......................................................... 58 实验 11:2PSK 调制与解调仿真 .......................................................... 63 实验 12:载波同步的平方环法仿真 .................................................... 68 实验 13:循环码的编码和解码仿真 .................................................... 71 实验 14:卷积码的编码和解码仿真 .................................................... 75 综合实验:CDMA 通信系统的 MATLAB 综合仿真 ........................ 78 附录:MATLAB 程序设计 ................................................................... 90 - 2 -
通信原理 Matlab 仿真实验指导书 V7.0 综合版 林志谋 leansmall@163.com 实验 1:MATLAB 基础知识 一、实验目的: 1.熟悉 MATLAB 开发环境 2.掌握矩阵、变量、表达式的各种基本运算 3.熟悉和了解 MATLAB 图形绘制程序编辑的基本指令; 4.熟悉掌握利用 MATLAB 图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 5.掌握 plot、subplot 等指令格式和语法。 二、实验原理: 1.MATLAB基础知识 1.1 MATLAB 程序设计语言简介 MATLAB,Matrix Laboratory的缩写,是由 MathWorks 公司开发的一套用于科学工程计 算的可视化高性能语言,具有强大的矩阵运算能力。与大家常用的 Fortran 和 C 等高级语言 相比,MATLAB 的语法规则更简单,更贴近人的思维方方式,被称为“草稿纸式的语言”。MATLAB 软件主要由主包、仿真系统(simulink)和工具箱(toolbox)三大部分组成。 1.2 MATLAB 界面及帮助 MATLAB 基本界面如图 1-1 所示,命令窗口包含标题栏、菜单栏、工具栏、命令行区、 状态栏、垂直和水平波动条等区域。 图 1-1 MATLAB 基本界面 (1)菜单栏 在 MATLAB 主窗口的菜单栏,共包含 File、Edit、View、Web、Window 和 Help 6 个菜单项。 File 菜单项:File 菜单项实现有关文件的操作。 - 3 -
通信原理 Matlab 仿真实验指导书 V7.0 综合版 林志谋 leansmall@163.com 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 询问有关问题。 2.熟悉 MATLAB 环境: MATLAB 桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器 文件和搜索路径浏览器。 3.掌握 MATLAB 常用命令 清除命令窗口中内容 清除工作空间中变量 对所选函数的功能、调用格式及相关函数给出说明 clc clear help lookfor 查找具有某种功能的函数但却不知道该函数的准确名称 who 查询工作空间中的变量信息 4.MATLAB变量与运算符 变量命名规则如下: (1) 变量名可以由英语字母、数字和下划线组成 (2) 变量名应以英文字母开头 (3) 长度不大于 31 个 (4) 区分大小写 MATLAB中设置了一些特殊的变量与常量,列于下表。 表1 MATLAB的特殊变量与常量 变量名 ANS 功能说明 默认变量名,以应答 最近一次操作运算结果 变量名 realmin 功能说明 最小的正实数 - 4 -
通信原理 Matlab 仿真实验指导书 V7.0 综合版 林志谋 leansmall@163.com i或j pi eps 虚数单位 圆周率 INF(inf) NAN(nan) 不定值(0/0) 无穷大 浮点数的相对误差 nargin 函数实际输入 realmax 最大的正实数 nargout MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符 表 2 MATLAB 算术运算符 操作符 功能说明 操作符 + - * .* ^ .^ 加 减 矩阵乘 数组乘 矩阵乘方 数组乘方 \ .\ / ./ ' .' 表 3 MATLAB 关系运算符 参数个数 函数实际输出 参数个数 功能说明 矩阵左除 数组左除 矩阵右除 数组右除 矩阵转置 数组转置 操作符 == ~= > < >= <= 表 4 MATLAB 逻辑运算符 逻辑运算符 逻辑运算 & | ~ Xor And Or Not 表 5 MATLAB 特殊运算 功能说明 等于 不等于 大于 小于 大于等于 小于等于 说明 逻辑与 逻辑或 逻辑非 逻辑异或 符号 : ; , () [] {} 功能说明示例 符号 功能说明 示例 1:1:4;1:2:11 分隔行 分隔列 构成向量、矩阵 构成单元数组 . .. … % 注释 ! = 调用操作 系统命令 用于赋值 5.MATLAB的一维、二维数组的寻访 - 5 -
通信原理 Matlab 仿真实验指导书 V7.0 综合版 林志谋 leansmall@163.com 表6 子数组访问与赋值常用的相关指令格式 指令格式 A(r,c) A(r,:) A(:,c) A(:) A(i) A(r,c)=Sa A(:)=D(:) 指令功能 数组A中r指定行、c指定列之元素组成的子数组 数组A中r指定行对应的所有列之元素组成的子数组 数组A中c指定列对应的所有行之元素组成的子数组 数组A中各列元素首尾相连组成的“一维长列”子数组 "一维长列"子数组中的第i个元素 数组A中r指定行、c指定列之元素组成的子数组的赋值 数组全元素赋值,保持A的行宽、列长不变,A、D两组元素 总合应相同 6.MATLAB的基本运算 表 7 两种运算指令形式和实质内涵的异同表 数组运算 含义 指令 非共轭转置 A.' 把标量s赋给A的每个元素 A=s s+B 标量s分别与B元素之和 s-B,B-s 标量s分别与B元素之差 s.*A 标量s分别与A元素之积 s./B,B.\s 标量s分别被B的元素除 A.^n A.^p A+B A-B A.*B A./B B.\A exp(A) A的每个元素自乘n次 对A各元素分别求非整数幂 对应元素相加 对应元素相减 对应元素相乘 A的元素别B的对应元素除 与上相同 以自然数e为底,分别以A的元素为 指数,求幂 对A的各元素求对数 log(A) sqrt(A) 对A的各元素求平方根 矩阵运算 指令 A’ s*A S*inv(B) A^n A^p A+B A-B A*B A/B B\A expm(A) 含义 共轭转置 标量 s分别与 A每个元 素之积 B阵的逆乘s A阵为方阵,自乘n次 方阵A的非整数乘方 矩阵相加 矩阵相减 内维相同矩阵相乘 A右除B A左除B A的矩阵指数函数 logm(A) sqrtm(A) A的矩阵对数函数 A的矩阵平方根函数 7.MATLAB的常用函数 表8 标准数组生成函数 指令 含义 diag 产生对角形数组(对高维不适用) rand eye 产生单位数组(对高维不适用) magic 产生魔方数组(对高维不适用) ones 产生全1数组 指令 含义 产生均匀分布随机数组 产生正态分布随机数组 产生全0数组 randn zeros size() 返回 指定矩阵 的 行数和列 数 - 6 -
通信原理 Matlab 仿真实验指导书 V7.0 综合版 林志谋 leansmall@163.com 表9 数组操作函数 指令 diag flipud 含义 提取对角线元素,或生成对角阵 以数组“水平中线”为对称轴,交换上下对称位置上的 数组元素 fliplr 以数组“垂直中线”为对称轴,交换左右对称位置上的 reshape rot90 det rank 在总元素数不变的前提下,改变数组的“行数、列数” 数组元素 矩阵逆时针旋转90度 方阵的行列式值 矩阵的秩 三、实验内容和步骤: 1.学习使用help命令: 例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令, 依照此方法类推) 2.学习使用clc、clear all: 观察command window、command history和workspace等窗口的变化结果,执行前后有什么不 同? 3.初步程序的编写练习: 新建M-file,保存(自己设定文件名,例如exerc1、exerc2、 exerc3……),学习使用MATLAB 的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。 注意:每一次M-file的修改后,都要存盘。 4.二维曲线绘图基本指令演示。 t=(0:pi/50:2*pi)'; k=0.4:0.1:1; Y=cos(t)*k; plot(t,Y) plot指令基本操作演示 问题4.1:本例运作后,再试验plot(t),观察产生图形的有什么不同,为什么? 问题4.2:本例运作后,再试验plot(Y), 观察产生图形的有什么不同,为什么? 问题4.3:本例运作后,再试验plot(Y,t) ,观察产生图形的有什么不同,为什么? 5.用图形表示连续调制波形Y=sin(t)sin(9t) 及其包络线。 t=(0:pi/100:pi)'; y1=sin(t)*[1,-1]; y2=sin(t).*sin(9*t); t3=pi*(0:9)/9; y3=sin(t3).*sin(9*t3); plot(t,y1,'r:',t,y2,'b',t3,y3,'bo') - 7 -
分享到:
收藏