通信原理仿真实验指导 一MATLAB版 编辑:田敏、李新弘、查志华 信息科学与技术学院现代通信教研室
通信原理仿真实验指导 -MATLAB 版 编辑:田敏、李新弘、查志华 信息科学与技术学院现代通信教研室
教材使用说明 本教材由三部分组成。第一部分是实验中应当遵循的详尽的实验向导:第二部分包括 实验内容、预习作业和课后作业:第三部分是附录。附录A为大家概述了仿真环境的一些 基本假设,通过仔细地阅读附录A将有助于对仿真环境比较深刻的理解:附录B简明地列出 了诵信系统工具句中的MAΠAB函傲清单。 完成本教材中的实验,你无须预先掌握任何关于MATLAB软件的知识,从某种意义上说 任何人都可以根据操作向导轻松地完成实验。如果你想完成本教材所包含内容以外的实 验,MATLAB在线帮助功能通常能够满足你的要求,使你得心应手。 在做每一个实哈之前,首先应当完成预习作业。这些问颗是从与特定实验相关的原材 中提取出来的。其目的是让同学们有所准备,以便在实验中对基本概念理解得更加深刻
―V― 教材使用说明 本教材由三部分组成。第一部分是实验中应当遵循的详尽的实验向导;第二部分包括 实验内容、预习作业和课后作业;第三部分是附录。附录 A 为大家概述了仿真环境的一些 基本假设,通过仔细地阅读附录 A 将有助于对仿真环境比较深刻的理解;附录 B 简明地列出 了通信系统工具包中的 MATLAB 函数清单。 完成本教材中的实验,你无须预先掌握任何关于 MATLAB软件的知识,从某种意义上说, 任何人都可以根据操作向导轻松地完成实验。如果你想完成本教材所包含内容以外的实 验,MATLAB 在线帮助功能通常能够满足你的要求,使你得心应手。 在做每一个实验之前,首先应当完成预习作业。这些问题是从与特定实验相关的原材料 中提取出来的。其目的是让同学们有所准备,以便在实验中对基本概念理解得更加深刻
字体和印刷约定 本教材的一些习惯用法: ●斜体字用来表示它是MATLAB函数名,有时也表示强调,例如: 利用MATLAB函数gaus pdf和gaus cdf显示随机变量的概率密度函数和分布函数。 ●“>》”符号是MATLAB的提示符,运行MATLAB后在你的终端上会出现此符号。有时 则由于MATLAB版本或设置的不同,在MATLAB的命令窗口中并没有此符号,但这 些都不会影响实验过程。 ●文本中的铅字(粗体字)表示它们是从MATLAB命令窗口得到的变量。你可以直接 调用其值进行计算。例如计算随机序列abc的均值和方差 >mean_abc mean(abc):var_abc var(abc): 其中mean_abc和var_abc分别代表abc的均值和方差 ●出现在文本行中首字母大写的单词是你应键入的命令。例如: 如果ee_diag函数的第二个参数是负的,要显示下一个轨迹请敲击“Enter”键,这里的 “Enter'”就是你必须键入的命令。 ●出现在黑线框中的问题是课后作业,这些问题必须以书面形式完成并在做下一次实 验之前交给指导教师。最后实验成绩评定时也要以此为参考。例如: 问题12如果分布率是基于2000次实验的结果,计算每面发生的次数。 ●为了实现在通信系统工具包(Communication System Toolbox)内部的通信,大量的 MATLAB全局变量是必不可少的。MATLAB的staI函数会为每一个实验中所用全 局变量赋以必要的初值。进入MATLAB工作站进行实验的第一步,你必须首先执行下 面的命令: >start 之后,你会得到一个友好的界面,它会给你提供一些其它信息。 请切记: ●安装MATLAB时,请安装"Signal Processing”库 ●运行前,请将程序目录“ele45”设置成MATLAB的运行目录 ●每一次实验之前都必须首先执行start命令 ●对于每一个函数,我们可以采用“help函数名”获得该函数的详细使用帮助, -VI-
―VI― 字体和印刷约定 本教材的一些习惯用法: l 斜体字用来表示它是 MATLAB 函数名,有时也表示强调,例如: 利用 MATLAB 函数 gaus_pdf 和 gaus_cdf 显示随机变量的概率密度函数和分布函数。 l “>>”符号是 MATLAB 的提示符,运行 MATLAB 后在你的终端上会出现此符号。有时 则由于 MATLAB 版本或设置的不同,在 MATLAB 的命令窗口中并没有此符号,但这 些都不会影响实验过程。 l 文本中的铅字(粗体字)表示它们是从 MATLAB 命令窗口得到的变量。你可以直接 调用其值进行计算。例如计算随机序列 abc 的均值和方差 >> mean_abc = mean(abc) ; var_abc = var(abc); 其中 mean_abc 和 var_abc 分别代表 abc 的均值和方差。 l 出现在文本行中首字母大写的单词是你应键入的命令。例如: 如果 eye_diag 函数的第二个参数是负的,要显示下一个轨迹请敲击“Enter”键,这里的 “Enter”就是你必须键入的命令。 l 出现在黑线框中的问题是课后作业,这些问题必须以书面形式完成并在做下一次实 验之前交给指导教师。最后实验成绩评定时也要以此为参考。例如: 问题 1.2 如果分布率是基于 2000 次实验的结果,计算每面发生的次数。 l 为了实现在通信系统工具包(Communication System Toolbox)内部的通信,大量的 MATLAB 全局变量是必不可少的。MATLAB 的 start 函数会为每一个实验中所用全 局变量赋以必要的初值。进入 MATLAB 工作站进行实验的第一步,你必须首先执行下 面的命令: >> start 之后,你会得到一个友好的界面,它会给你提供一些其它信息。 请切记: l 安装 MATLAB 时,请安装”Signal Processing”库 l 运行前,请将程序目录“ele45”设置成 MATLAB 的运行目录 l 每一次实验之前都必须首先执行 start 命令 l 对于每一个函数,我们可以采用“help 函数名”获得该函数的详细使用帮助
实验三数字信号的基带传输 [实验目的: 在这个实验中我们将观察到二进制信息是如何进行编码的。我们将主要了解: ●目前用干数字桶信的基带码型 ●不同码型的功率谱密度 。信道失真的原因 ●通过眼图观察码间串扰和信道噪声的影响 [参考文献]: 1.沈振元等,“通信系统原理”,西安电子科技大学出版社,1993 2.曹志刚,钱亚生,“现代通信原理”,清华大学出版社,1992 3.王立宁等编,“MATLAB与通信仿真”,人民邮电出版社,2000 [预习作业: 1.给出二进制序列b1,0,1,0,11,用如下的码型绘出代表序列b的波形草图: a单极性不归零码 b双极性不归零码 c单极性归零码 d双极性归零码 e曼彻斯特码(manchester)(即成对的二进制码) 2.此处假定为单位幅度并且码元速率R=kbs。确定并绘出以上码型的功率谱密度函 数。令F>0为功率谱密度函数中第一个零点的位置。假设各个码型的传输带宽B=F, 那么请确定第1问中各种码型的带宽,并由此观察R的作用。 3.y)代表采用双极性不归零码编码的信道输出波形。为了显示眼图,将y(①)送入水平扫 描时间为3T,的示波器中,绘出相应眼图。 1,5r 0.5 -15
―15― 实验三 数字信号的基带传输 [实验目的]: 在这个实验中我们将观察到二进制信息是如何进行编码的。我们将主要了解: l 目前用于数字通信的基带码型 l 不同码型的功率谱密度 l 信道失真的原因 l 通过眼图观察码间串扰和信道噪声的影响 [参考文献]: 1. 沈振元等,“通信系统原理”,西安电子科技大学出版社,1993 2. 曹志刚,钱亚生,“现代通信原理”,清华大学出版社,1992 3. 王立宁等编,“MATLAB 与通信仿真”,人民邮电出版社,2000 [预习作业]: 1. 给出二进制序列 b=[1,0,1,0,1,1],用如下的码型绘出代表序列 b 的波形草图: a 单极性不归零码 b 双极性不归零码 c 单极性归零码 d 双极性归零码 e 曼彻斯特码 (manchester)(即成对的二进制码) 2. 此处假定为单位幅度并且码元速率 Rb=1kbps。确定并绘出以上码型的功率谱密度函 数。令 F1>0 为功率谱密度函数中第一个零点的位置。假设各个码型的传输带宽 BT=F1 , 那么请确定第 1 问中各种码型的带宽,并由此观察 Rb 的作用。 3. y(t)代表采用双极性不归零码编码的信道输出波形。为了显示眼图,将 y(t)送入水平扫 描时间为 3Tb 的示波器中,绘出相应眼图。 0 1 2 3 4 5 6 7 8 9 10 -1.5 -1 -0.5 0 0.5 1 1.5 Time(xTbsec) y(t)[v]
实验步骤: A.常用码型 A.1使用MATLAB函数wave gen来产生代表二进制序列的波形,函数wave gen的格式是: wave_gen((二进制码元,码型',R) 此处R,是二进制码元速率,单位为比特/秒(bs)。产生如下的二进制序列: >b=[101011 使用R,=100Obps的单极性不归零码产生代表b的波形且显示波形x: >>x=wave_gen(b,'unipolar_nrz',1000). >waveplot(x) A.2用如下码型重复步骤A1(提示:可以键入“help wave_gen”来获取帮助) a双极性不归零码 b单极性归零码 c双极性归零码 d受仞斯特码(nanchester) 问题3.1由上述码型确定的哪些波形在任何情况下始终没有直流成份?为什么 直流成份的缺少对波形传输有特殊的意义? A3码型的功率谱密度函数 产生一个1000个样值的二进制序列: >>b=binary(1000). 显示A.1使用的单极性不归零码的功率谱密度函数(PSD),并记录在表3.1中: psd(wave gen() 定义:Fpl:第一个谱峰 Fml:第一个频谱零点 Fp2:第二个谱峰. Fnl:第二个频谱零点 使用其它四种不同的码型,在表3.1中记录你观察到的数据: 表3.1 R=1000 Fpl Fnl Fp2 Fn2 B 单极性不归零码 双极性不归零码 单极性归零码 双极性归零码 曼彻斯特码 (Manchester) 注意:第一个频谱零点的位置决定传输带宽B A4为了显示PSD函数对二进制码率的依赖我们用曼彻斯特码和不同的R,来证实这点 >>psd(wave gen(b,'manchester',Rs)); 此处R取5kbps,10kbps,20kbps三个值,你也可用A.1中的其他码型来取代曼彻斯特码。 -16-
―16― [实验步骤]: A. 常用码型 A.1 使用 MATLAB 函数 wave_gen 来产生代表二进制序列的波形,函数 wave_gen 的格式是: wave_gen(二进制码元,‘码型’,Rb ) 此处 Rb 是二进制码元速率,单位为比特/秒(bps)。产生如下的二进制序列: >> b = [1 0 1 0 1 1]; 使用 Rb=1000bps 的单极性不归零码产生代表 b 的波形且显示波形 x: >> x = wave_gen(b,‘unipolar_nrz’,1000); >> waveplot(x) A.2 用如下码型重复步骤 A.1(提示:可以键入“help wave_gen”来获取帮助) a 双极性不归零码 b 单极性归零码 c 双极性归零码 d 曼彻斯特码 (manchester) 问题 3.1 由上述码型确定的哪些波形在任何情况下始终没有直流成份?为什么 直流成份的缺少对波形传输有特殊的意义? A.3 码型的功率谱密度函数: 产生一个 1000 个样值的二进制序列: >> b = binary(1000); 显示 A.1 使用的单极性不归零码的功率谱密度函数(PSD),并记录在表 3.1 中: >> psd(wave_gen(b,‘unipolar_nrz’)); 定义: Fp1:第一个谱峰. Fn1:第一个频谱零点 Fp2:第二个谱峰. Fn1:第二个频谱零点 使用其它四种不同的码型,在表 3.1 中记录你观察到的数据: 表 3.1 Rb=1000 Fp1 Fn1 Fp2 Fn2 BT 单极性不归零码 双极性不归零码 单极性归零码 双极性归零码 曼彻斯特码 (Manchester) 注意:第一个频谱零点的位置决定传输带宽 BT。 A.4 为了显示 PSD 函数对二进制码率的依赖,我们用曼彻斯特码和不同的 Rb 来证实这点: >> psd(wave_gen(b,‘manchester’,Rb )); 此处 Rb 取 5kbps,10kbps,20kbps 三个值,你也可用 A.1 中的其他码型来取代曼彻斯特码