通信工程MATLAB上机实验12345.doc_第1页
通信工程MATLAB上机实验12345.doc_第2页
通信工程MATLAB上机实验12345.doc_第3页
通信工程MATLAB上机实验12345.doc_第4页
通信工程MATLAB上机实验12345.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB实验指导书王海燕石油大学计通学院通信工程系2008年9月实验一 熟悉MATLAB环境实验目的1熟悉MATLAB主界面,学会常用的窗口的操作2学会简单的矩阵输入3熟悉MATLAB基本语句的使用、矩阵与向量的基本运算实验原理 1.用户第一次使用MATLAB时,可通过 demo命令,启动MATLAB的演试程序,领略MATLAB所提供的强大的运算与绘图功能。也可以键入help进行进一步了解。2.MATLAB 是以矩阵作为基本编程单元的一种程序设计语言。它提供了各种矩阵的运算与操作,并有较强的绘图功能。在MATLAB中输入矩阵最方便的的方式是直接输入矩阵的元素,其方法为:1)用中括号 把所有矩阵元素括起来;2)同一行的不同数据元素之间用空格或逗号间隔;3)用分号(;)指定一行结束;4)也可以分成几行进行输入,用回车符代替分号;5)矩阵元素可以是任何matlab表达式 (系统将自动计算结果),可以是实数,也可以是复数,复数可用特殊函数i,j 输入。3.MATLAB语言最基本的赋值语句结构为:变量=表达式。表达式由操作符或其它字符,函数和变量名组成,表达式的结果为一个矩阵,显示在屏幕上,同时输送到一个变量(ans为默认)中并存放于workspace工作空间中以备调用。实验内容 1(1)用空格或逗号输入矩阵A=1 2 3;4 5 6;7 8 9或A=1,2,3;4,5,6;7,8,9(2)试用回车代替A中的分号,观察输出结果。要求:总结矩阵的输入2输入矩阵B=9,8,7;6,5,4;3,2,1;C=4,5,6;7,8,9;1,2,3;要求:(1)说明;的作用(2)给出查看B及C的结果的方法?3用edit或选择File|new菜单中的M-file进入编辑器,输入:Base=9,8,7;6,5,4;3,2,1;Base_info=Base+1保存为Base.m文件,并通过Debug中的run命令(或F5)运行之,观察有何异常现象。要求:解释异常现象的原因。4.打开Workspace窗口,学习save及load命令的使用(1)用save命令将上述输入的A、B、C三个变量存入data或data.mat文件;(2) 通过Current Directory查找data;(2)然后使用clc及clear 命令;(3)最后通过load data(或data.mat)命令(可通过向上的方向键找到上条save命令再修改成load命令的方法)将变量A、B、C调入Workspce;(4) 执行命令A+B+C要求:(1)观察使用上述命令后Workspce的变化;(2)使用命令save data_new A B -ascii(或ASCII),改变存储格式,重复上述过程(第2步查找data_new,第3步load data_new, 第4步改为A+B), 观察Workspce显示结果的不同;(3)查看data_new,在data_new中取出A的值。实验报告要求针对实验内容中的各项要求,做出总结,给出实验报告。实验二 MATLAB数值运算及绘图功能实验目的1 掌握MATLAB特殊函数创建矩阵及利用已有矩阵创建新矩阵的方法2 掌握矩阵的操作,矩阵之间的运算方法3 学会使用常用的几种矩阵函数进行简单的问题求解4 掌握plot基本绘图语句的使用实验原理 一、利用MATLAB特殊函数创建矩阵x=a:b;x=linspace(a,b,n);zeros(m,n);ones(m,n); eye(m,n)等randint(m,n):mn 0,1等概率随机阵rand(m,n):mn (0,1) 间均匀分布随机阵randn(m,n):mn 均值为0,方差为1的标准正态分布随机阵二、矩阵的操作1.矩阵中元素的表示:一是用两个下标来表示矩阵元素A(i,j),二是采用矩阵元素的索引值来引用矩阵元素A(index)称序号(索引)表示法。2.矩阵中元素的提取和修改(1)矩阵元素的提取矩阵A的第r行:A(r,:)矩阵A的第r列:A(:,r)取矩阵A的第i1i2行、第j1j2列,构成新矩阵:A(i1:i2, j1:j2) A的第i1i2行,构成新矩阵:A(i1:i2,:) 删除A的第j1j2列,构成新矩阵: A(:,j1:j2)= 将矩阵A和B拼接成新矩阵:A B;A;B(2)矩阵元素的修改可以利用下标对矩阵元素进行修改, 可用find函数修改3.矩阵中元素的数学运算元素取整函数: round(A) % 四舍五入取整fix(A) %将矩阵A中元素按离0近的方向取整floor(x) %向负无穷方向取整,即取不足整数 ceil(x) %向正无穷方向取整,即取过剩整数4.矩阵的一些特殊操作(旋转与变形)矩阵的变维a=1:12; b=reshape(a,3,4)c=zeros(3,4);c(:)=a(:)矩阵的变向rot90:旋转; fliplr:左右翻; flipud:上下翻矩阵的抽取diag(D) % 取D矩阵的主对角元素 X=diag(v) %以向量v为主对角线元素,其余元素为0构成矩阵Xa1=diag(A,1) %取 A 阵“第一上对角线”的元素A1=diag(a1,-1) %产生以 a1 数组元素为“第一下对角线”元素的二维数组矩阵的扩展repmat(D,1,3) %在水平方向“铺放”三个D 阵三、矩阵之间的运算1矩阵乘法:A*B,只有当前一矩阵的列数和后一矩阵的行数相同或者其中一个为标量时才能进行。2矩阵除法:运算符有两种“”( 左除)和“/”(右除),两矩阵相除,主要用于方程组求解。 A*x=B的解为x=AB;x*A=B的解为x=B/A。要解上述的联立方程式,可利用矩阵左除 做运算,即:X=AB, 左除时要求A、B的行数相等。四、常用的几个矩阵函数n=numel(A) %计算矩阵A中元素的个n= length(a) %计算向量中元素的个数m,n=size(A) %返回矩阵的行列数size(A,1) %返回矩阵的行数;size(A,2) %返回矩阵的列数max、min 各列最大、最小值,如: Y,I=max(A) %返回各列最大值Y及最大值在各列的位置mean 各列平均值;sum各列求和;std各列标准差;var各列方差;sort各列递增排序实验内容1.依(a)(d)的指示, 输入下列的矩阵:A = 5 0 5 B = 0 2+i 3-2i C= 1 2 30 5 0 2-i 0 -5+4i 5 10 154 0 4 3+2i -5-4i 0 3 6 9 (a) 使用 diag 函数相加的形式, 输入A矩阵(b) 使用复数矩阵的两种方法输入B矩阵,观察其显示结果(c) 利用冒号 ( : ), 输入C矩阵(d) 利用 zeros预赋值后再输入行向量的方法, 输入C矩阵要求:写出矩阵输入的MATLAB表达式2.写出下列命令的运算结果,然后验证:(1)A=eye(2); 5:5:11(3)a=1 2 4 5; b=(a=-2 & a4)(6)m=7 6 5 8 10 4; m(find(m=7)=3.使用矩阵的除法( )或( / )及利用函数inv解下列联立方程,验证结果是否相同。(选做)4.利用randn函数建立33的矩阵:(a)使用函数sum, 分别求此矩阵第一列的和、第三行的和(b)使用函数max, 找出此矩阵中, 最大的元素5.利用randint产生长为10的等概0、1二进制序列,要求按行的顺序读入4*4(不足的补零)的方阵并按列的顺序读出原序列交织后的序列。6.按如下要求,绘制两条曲线,一条是余弦曲线,另一条是按100Hz抽样频率对余弦曲线进行抽样得到的离散序列。设t的时长为0.1s。要求:(1)在同一窗口中使用hold on 命令绘出上述两条曲线,并设置图形属性如下:连续曲线:黑色,实线抽样序列:红色,虚线, 宽为3个象素图题为“连续余弦曲线及其抽样序列”,并加图例;(2)使用subplot命令绘出上述两条曲线;(3)交互式绘图方式将图题改为“余弦曲线”。7.画出如图所示单极性非归零码传输码型的示意图单极性非归零码:用电平1表示二元信息中的1,用电平0表示二元信息中的0,电平在整个码元的时间里不变,记作NRZ码,波形如图1所示。要求:(1)因为要用离散的点来表示连续的码元1或0,需给出码元的采样点数,如sam_num=300;(2)根据采样点数确定采样时间间隔,从而表示图中6个码元总时间的向量t,如t=0:1/sam_num:6;(3)“0”或“1”码元的幅值可用函数zeros和ones产生;(4)确定图示坐标axis的各参数;(5)用text命令在每个码元的中间位置处标记出各码元对应的二元信息1或0要求:FontWeight,bold,FontSize,14 实验报告要求1.写出每一实验的设计过程及实验结果2.总结实验,写出上机收获与体会实验三 MATLAB程序设计基础实验目的1.熟悉MATLAB的数据结构2.熟悉流程控制语句的使用,搞清MATLAB中循环体与C语言的不同3.掌握脚本与函数文件的编程方法4.进一步掌握绘图语句的使用实验原理一、MATLAB的数据类型在MATLAB中有六种常用基本数据类型:double(双精度数值)char(字符)sparse(稀疏数据):一般用于处理稀疏矩阵storage(存储型):只用于内存的有效存储cell(单元数组):struct(结构):一般只在大型程序中使用在MATLAB中,所有的数都用double浮点双精度类型来存储和运算。因而省略了定义类型的语句,编程时无需去思考分辨,也减少了错误。当然对于那些本来要用一两个字节来表示的变量来说,这种做法浪费内存,又降低了运算速度。但用牺牲(存储)空间和(运算)时间来换取人机交互友善性的战略被证明是有效的,它形成了科学计算语言的特色,使人们不在编程的细节上花精力,而把注意力集中到科学计算的方法和建模合理性等大问题上去。二、MATLAB的流程控制语句与C语言类似,MATLAB程序的控制结构也有顺序结构、选择结构和循环结构三种,另外还有一种试探结构。由于MATLAB以矩阵为运算单位,所以在for 和while循环结构及分支结构的使用上与C略有不同,这是特别要注意的,希望通过本次实验加以理解。1. for循环的格式for循环可接受有效维数的数组作为循环变量for x=array commands ;endFor循环语句的执行过程:当循环变量为矩阵时,其执行过程是从矩阵的第一列开始,依次将矩阵的各列之值赋值给变量,然后执行语句组中的语句,直到最后一列。2.switch 分支结构的格式switch switth_expr分支条件(数值或字符串)case 数值(或字符串)常量表达式1 case 数值(或字符串)常量表达式case_expr2,数值(或字符串)常量表达式case_expr3 case 数值(或字符串)常量表达式N otherwise end三、MATLAB的m文件m文件是由MATLAB语句构成的ASCII码文件,用户可以用普通的文本编辑把一系列MATLAB语句写进一个文件里,给定文件名,确定文件的扩展名为.m,并存储。m文件可分为两种:1.脚本文件(Scripts):也称命令文件,是由用户为解决特定的问题而编制的;2.函数文件(Function):子程序,可由用户编写,但它必须由其它m文件来调用实验内容1. 按要求给出结果(1)若有s=input( Please input a=); 给出运行时错误的输入方式: A)2 B) John C) 1 2 3 4 D) John(2)A=dec2bin(7,4)(3) xf=4 3 0 0;for k=0:2 xshift(k+1,:)=zeros(1,k),xf(1:end-k);endxshift2使用switch语句编写DTMF(Dual-Tone Multi-Frequency)拨号音编码时域波形仿真程序。说明:(1)一个双音多频电话机可以对12个按键编码,每个码都是两个单频正弦信号之和,例如:按键“5”由两个频率分别为770Hz和1336Hz的正弦信号组成;按键“#”分别由两个频率为941Hz和1447Hz的正弦信号组成。这两个单频正弦信号分别来自两个频率组,即列频率组(或称低频群)与行频率组(或称高频群),它们与每个按键的对应关系如下图所示:图1按键式拨号盘的配置(2)DTMF信号的指标是:在传送过程中每个按键数字占用100ms,其中DTMF必须存在至少40ms,且不得多于55ms,100ms里的其余时间是静声(无信号)。要求:(1)每输入一个数字给出相应的波形key=input(please input key valuve ,09 or # or *:,s);(2)fl表示低频率;fh表示高频率(3)根据所拨数字用switch给定fl及fh的值(4)主要参数如下:fs=8000; %语音信号采样值dt=1/fs;t=0:dt:0.05; %按要求给出DTMF信号的时长x=0.9*cos(2*pi*fl*t)+cos(2*pi*fh*t);sound(x,8000) %按时长仿真发出的拨号音plot(t,x)zoom xon, grid on3.利用如下两种方法,将随机产生的同一帧数据(如:randint(1,3*3)或randint(1,4*5),重新换位输出以实现交织:方法一:利用随机数产生函数alpha=randperm(data_length),实现交织。说明:data1 1 1 0 1; data_length5;alpha=randperm(data_length);%输出alpha为随机生成的5个数,若alpha5 3 1 2 4,可认为是索引号data_inter=data(alpha); %随机交织后的输出帧为data_inter=1 1 1 1 0,即data的第5位是data_inter的%第1位,依次类推。方法二:仿照方法一,编写函数alpha2= lincol_inter (data_length,m,n),使之产生按行读入,按列读出的序号;再利用data_inter=data(alpha2)完成一帧数据的交织。4.试编写一函数,使之具有如下功能:将随机产生的二进制序列按每2位(00:0,01:1,10:2,11:3)、3位或4位二进制位与十进制相对应的关系转变成相应十进制数序列。function NumTrans = fun_bin2dec(Xframe, COdelen)%Xframe随机产生的二进制序列%COdelen表示码长2、3、4等%NumTrans返回转变后的十进制序列Xlen = length(Xframe); %二进制信号序列长度NumTrans=zeros(1,Xlen/COdelen);%生成一行向量放转变成十进制的数5.将实验二中单极性非归零码的图形显示程序改写成函数形式:function snrz(data,sam_num)%输入一段二进制0,1码作为信源data%可在运行调用函数snrz前使用data=input(请输入所要传输的二进制0,1序列作为信源data=),或使用randint随机产生0、1序列%给出码元的采样点数sam_num%求信源的二进制单极性序列的输出序列y_data实验报告要求1.写出每一实验的设计过程2.总结实验,写出相应的体会3.总结程序调试常用技巧实验四 MATLAB在信号与系统中的应用波形合成与分解实验目的 1、通过本实验熟悉周期信号的合成、分解原理,进一步了解信号频谱的含义。2、加深对傅里叶级数及Gibbs现象的理解。3、掌握hold on图形保持命令的使用。实验原理 1.傅里叶级数按傅里叶级数的原理,任何周期信号都可以用一组三角函数的线性组合表示: 也就是说,可以用一组正弦波或余弦波来合成任意形状的周期信号。 2.Gibbs现象对于具有不连续点(跳变点)的波形,所取级数项数越多,近似波形的均方误差虽可减少,但在跳变点处的峰值不减小,此峰值随项数增多而向跳变点靠近,而峰值趋于跳变值的9%。3.周期信号波形的合成与分解的MATLAB实现例:已知方波的周期为,方波信号的角频率为:,其傅立叶级数展开式为:它只含有1,3,5等奇次谐波分量。设计MATLAB程序,演示由谐波合成方波的情况,并观察Gibbs现象。分析:分别计算直到N次谐波,并做图。实验内容有一周期为2,幅度为1的周期锯齿波信号,其三角形式傅立叶系数 ,故其三角形式的傅立叶级数形式为:1.做出N10时各次谐波累计的图形。2.分别做出一个周期内级数项数取N=31,N=81时的近似波形。比较一个周期内的合成信号与原信号的异同,并观察Gibbs现象。 实验报告要求1.简述实验目的及原理。2.总结实验,给出主要结论。实验五 MATLAB在通信系统仿真中的应用实验目的1.掌握信源随机二进制信号的产生方法2.了解数字信号复数映射的方法3.了解信道编码的仿真方法4.了解噪声信道和多径信道的仿真方法5. 熟悉利用MATLAB仿真通信系统的基本过程实验原理一、数字通信系统基本组成常用的数字通信系统基带传输模型如图5-1所示:5-1数字通信系统基带传输模型二、数字通信系统基本传输的仿真根据上述模型需完成以下仿真过程:1.随机二进制0、1信源信号的产生随机信号经常用来模拟噪声、错误或信号源。除了MATLAB的内置函数rand和randn,通信工具箱还提供randint函数。格式如下:out=randint(m,n)功能说明:产生mn的矩阵,其元素相互独立,取值范围为1或0,取值是等概的。2.信道的仿真方法(1)高斯白噪声信道高斯过程又称正态随机过程,它是一种普遍存在和重要的随机过程,在通信信道中的噪声,通常是一种高斯过程,故又称为高斯噪声。利用awgn函数可为信号叠加高斯白噪声,其常见的使用格式说明如下:y = awgn(x,snr) %adds white Gaussian noise to the vector signal x. The scalar snr specifies the signal-to-noise ratio per sample, in dB. If x is complex, then awgn adds complex noise. This syntax assumes that the power of x is 0 dBW.y = awgn(x,snr,measured)%It is the same as y = awgn(x,snr), except that awgn measures the power of x before adding noise本次实验采用第二种方法。(2)多径衰落信道在仿真过程中,若以抽样的序列来表示信号,多径的影响可以表示如下: 其中是第i条路径的衰落值,可以用一个信道向量表示为,其中表示延迟个码元信道的平均衰落。 举例说明,用信道向量1 0 0 0 0 0.5来表示莱斯多径,它意味着电磁波通过一个没有延迟,没有衰落的信道;和一个延迟为5个码元,衰落系数为0.5的信道。在这样的两径信道里,接收信号为: 在仿真噪声及多径对信号的影响,可先对信号加噪,再做多径处理,表示为: 其中是信道向量决定的滤波器。在MATLAB中可使用函数filter(Multipath,1,BaseSignal)给信号BaseSignal按Multipath所代表的多径向量加多径。3.数字信号的调制映射数字信号的调制映射的基本思想是将二进制序列,分成长度为n=1、2、4的组,分别对应BPSK、QPSK、16QAM。然后再把这些二进制序列组分别映射为星座图中对应点的复数表示,其映射采用如图5-2所示的星座映射图。由图5-2可得知,BPSK调制将0和1映射为2个点;正交振幅调制(16QAM)是将每四位比特流映射映射成星座坐标图中的16个点中的一个; QPSK将每两位比特流映射成星座坐标图中的4个点中的一个,其中有GRAY mapping 和 Natural mapping。Gray mpping表示按格雷码方式映射,Natural mapping 表示按自

温馨提示

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

评论

0/150

提交评论