《通信系统中的软件仿真.pptx》由会员分享,可在线阅读,更多相关《通信系统中的软件仿真.pptx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、会计学1通信系统中的软件仿真通信系统中的软件仿真一、一维数组的创建和寻访1、一维数组的创建(1)逐个元素输入法例:x=2 pi/2 sqrt(3)3+5i x=2.0000 1.5708 1.7321 3.0000+5.0000i(2)冒号生成法该法通过“步长”设定,生成一维“行”数组的方法。例:x=a:inc:b%inc是采样点的步长(3)定数线性采样法该法在设定的“总点数”下,均匀采样生成一维“行”数组。例:x=linspace(a,b,n)%a,b分别是生成数组的第一和最后一个元素,n是采样总点数。第1页/共42页(4)定数对数采样法该法在设定的“总点数”下,经“常用对数”采样生成一维“
2、行”数组例:x=logspace(a,b,n)%a,b分别代表生成数组的第一和最后元素分别为:10a,10b,n是采样点数。2、一维数组的子数组寻访和赋值【例1】子数组的寻访。rand(state,0)%把均匀分布伪随机发生器置为0 x=rand(1,5)%产生(15)的均匀分布随机数组 x=0.9501 0.2311 0.6068 0.4860 0.8913 x(3)%寻访数组x的第三个 ans=0.6068第2页/共42页x(1 2 5)%寻访数组的第一、二、五元素组成的子数组ans=0.9501 0.2311 0.8913 x(1:3)%寻访数组前三个元素组成的子数组 ans=0.950
3、1 0.2311 0.6068 x(3:end)%寻访除三个元素外的全部其它元素。end是最后一个元素的下标 ans=0.6068 0.4860 0.8913 x(3:-1:1)%由前3个元素倒排构成的子数组 ans=0.6068 0.2311 0.9501 x(find(x0.5)%由大于0.5 的元素构成的子数组 ans=0.9501 0.6068 0.8913 第3页/共42页x(1 2 3 4 4 3 2 1)%对元素可以重复寻访,使所得数组长度允许大于原数组ans=Columns 1 through 7 0.9501 0.2311 0.6068 0.4860 0.4860 0.606
4、8 0.2311 Column 8 0.9501 二、二维数组的创建1、直接输入法【例2】在MATLAB环境下,用下面三条指令创建二维数组C。a=2.7358;b=33/79;C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i C=1.0000 5.4716+0.4177i 0.6909 0.7071 4.8244 3.5000+1.0000i 第4页/共42页注意事项:整个数组必须以方括号为其首尾数组的行与行之间必须用分号或回车隔离;数组元素必须由逗号或空格分隔。2、利用M文件创建和保存数组(1)打开文件编辑调试器,并在空白填写框中输入以下内容%MyMat
5、rix.mCreation and preservation of matrix AMAM=101,102,103,104,105,106,107,108,109;.201,202,203,204,205,206,207,208,209;.301,302,303,304,305,306,307,308,309;(2)保存此文件,并文件起名为MyMatrix.m(3)只要在指令窗中运行此文件,数组AM就会自动生成于Matlab内存中.第5页/共42页3利用冒号表达式建立一个向量冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。4建立大矩阵大矩阵
6、可由方括号中的小矩阵或向量建立起来。例如:A=1,2,3;4,5,6;7,8,9;C=A,eye(size(A);ones(size(A),AC=1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 9第6页/共42页三、二维数组元素的标识1、“全下标”标识全下标标识由两个下标组成:行下标、列下标 2、“单下标”标识单下标标识就是由一个下标来指明元素在数组中的位置 3、“逻辑1”标识寻找数组中所有大于某值的元素的问题。【例3】找出数组 中所有绝对值大于3的元素。A=zeros(2,5);%预生成一个(25)全
7、零数组A(:)=-4:5%运用“全元素”法向A赋值L=abs(A)3%产生与A同维的“01”逻辑值数组islogical(L)%判断L是否逻辑值数组。输出若为1,则是X=A(L)%把L中逻辑值1对应的A元素取出 第7页/共42页A=-4 -2 0 2 4 -3 -1 1 3 5L=1 0 0 0 1 0 0 0 0 1ans=1X=-4 4 5 第8页/共42页四、二维数组的子数组寻访和赋值子数组的寻访和赋值子数组的寻访和赋值使用说明使用说明A(r,c)A(r,c)它由它由A A的的“r r指定行指定行”和和“c c指定列指定列”上的元素组成上的元素组成A(r,:)A(r,:)它由它由A A的
8、的“r r指定行指定行”和和“全部列全部列”上的元素组成上的元素组成A(:,c)A(:,c)它由它由A A的的“全部行全部行”和和“c c指定列指定列”上的元素组成上的元素组成A(:)A(:)“单下标全元素单下标全元素”寻访,它由寻访,它由A A的各列按自左至右的次序,首的各列按自左至右的次序,首尾相接而生成尾相接而生成“一维长列一维长列”数组数组A(s)A(s)“单下标单下标”寻访,生成寻访,生成“s s指定指定”一维数组,一维数组,s s若是若是“行数组行数组”(或列数组),则(或列数组),则A(s)A(s)是长度相同的是长度相同的“行数组行数组”(或列数组(或列数组A(L)A(L)“逻辑
9、逻辑1”1”寻访,生成一维列数组,由与寻访,生成一维列数组,由与A A同样大小的同样大小的”逻辑数逻辑数组组L L中的中的“1”1”元素选出元素选出A A的对应元素,按单下标次序排成长列的对应元素,按单下标次序排成长列A(r,c)=SaA(r,c)=Sa以以“双下标双下标”方式,对子数组方式,对子数组A(r,c)A(r,c)进行赋值,进行赋值,SaSa的的“行宽,列行宽,列长长”必须与必须与A(r,c)A(r,c)的的“行宽、列长行宽、列长”相同相同A(:A(:)=D(:)=D(:)全元素赋值方式,结果保持全元素赋值方式,结果保持A A的行宽、列长不变,条件是的行宽、列长不变,条件是A A、D
10、 D两个数组的总元素数相等,但行宽、列长不一定相同两个数组的总元素数相等,但行宽、列长不一定相同A(s)=SaA(s)=Sa按单下标方式对按单下标方式对A A的部分元素重新赋值,结果保持的部分元素重新赋值,结果保持A A的行宽、列的行宽、列长不变,长不变,s s单下标数组的长度必须与单下标数组的长度必须与“一维数组一维数组”SaSa的长度相等。的长度相等。第9页/共42页1矩阵元素的提取 通过下标引用矩阵的元素,例如,A(3,2)=8采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。矩阵元素按列存储,先第一列,再第二列,依次类推。例如A=1,2,3;4,5,6;A
11、(3)ans=2序号(Index)与下标(Subscript)是一一对应的,以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind 和ind2sub 函数求得。第10页/共42页2矩阵的拆分(1)利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。还可
12、利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。例如:第11页/共42页 C(1,4,3:end)ans=3 1 0 0 1 1 2 3(2)利用空矩阵删除矩阵的元素 在MATLAB中,定义 为空矩阵。给变量X赋空矩阵的语句为X=。注意,X=与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。C=1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 1 1 4 5 6 1 1 1 7 8 9第12页/共42页【例4】不同赋值方式示例。A=zeros(2,4)%创
13、建(2*4)的全零数组A=0 0 0 0 0 0 0 0 A(:)=1:8%全元素赋值方式 A=1 3 5 7 2 4 6 8 s=2 3 5%产生单下标数组行数组s=2 3 5A(s)%由“单下标行数组”寻访产生A元素组成的行数组ans=2 3 5第13页/共42页Sa=10 20 30%Sa是长度为3的“列数组”Sa=10 20 30A(s)=Sa%单下标方式赋值 A=1 20 30 7 10 4 6 8A(:,2 3)=ones(2)%双下标赋值方式:把A的第2、3列元素全赋为1A=1 1 1 7 10 1 1 8 第14页/共42页【例5】演示pow2的数组运算性质。A=1:4;5:8
14、%生成A(2*4)数组A=1 2 3 4 5 6 7 8 pow2(A)%计算2的幂也生成数组ans=2 4 8 16 32 64 128 256 五、执行数组运算的常用函数第15页/共42页六、数组运算和矩阵运算【例 6】两种不同转置的比较clear;A=zeros(2,3);A(:)=1:6;%全元素赋值A=A*(1+i)%运用标量与数组乘产生复数矩阵A_A=A.%数组转置,即非共轭转置A_M=A%矩阵转置,即共轭转置A=1.0000+1.0000i 3.0000+3.0000i 5.0000+5.0000i 2.0000+2.0000i 4.0000+4.0000i 6.0000+6.0
15、000iA_A=1.0000+1.0000i 2.0000+2.0000i 3.0000+3.0000i 4.0000+4.0000i 5.0000+5.0000i 6.0000+6.0000iA_M=1.0000-1.0000i 2.0000-2.0000i 3.0000-3.0000i 4.0000-4.0000i 5.0000-5.0000i 6.0000-6.0000i 第16页/共42页指令指令含义含义指令指令含义含义A.A.非共轭转置,相当于非共轭转置,相当于conj(Aconj(A)A-BA-B对应元素相减对应元素相减A=sA=s把标量把标量s s赋给赋给A A的每个元素的每个元
16、素A.A.B B对应元素相乘对应元素相乘s+Bs+B标量标量s s分别与分别与B B元素之和元素之和A./BA./BA A的元素被的元素被B B的对应元素除的对应元素除s-B,B-ss-B,B-s标量标量s s分别与分别与B B元素之差元素之差B.AB.A(一定与上相同)(一定与上相同)s.*As.*A标量标量s s分别与分别与B B元素之积元素之积exp(A)exp(A)以自然数以自然数e e为底,分别以为底,分别以A A的元素为的元素为指数,求幂指数,求幂s./B,B.ss./B,B.ss s分别被分别被B B的元素除的元素除log(A)log(A)对对A A的各元素求对数的各元素求对数A
17、.A.nnA A的每个元素自乘的每个元素自乘n n次次sqrt(A)sqrt(A)对对A A的各元素求平方根的各元素求平方根A.A.pp对对A A各元素分别求非整数幂各元素分别求非整数幂f(A)f(A)求各元素的函数值求各元素的函数值p.p.AA以以p p为底,分别以为底,分别以A A的元素为的元素为指数求幂指数求幂A AB BA A、B B阵对应元素间的关系运算阵对应元素间的关系运算A+BA+B对应元素相加对应元素相加A AB BA A、B B阵对应元素间的逻辑运算阵对应元素间的逻辑运算运算指定形式第17页/共42页八、标准矩阵生成函数和数组操作函数1通用的标准矩阵常用的产生通用特殊矩阵的函
18、数有:zeros:产生全0矩阵(零矩阵)。ones:产生全1矩阵(幺矩阵)。eye:产生单位矩阵。rand:产生01间均匀分布的随机矩阵。randn:产生均值为0,方差为1的标准正态分布随机矩阵。第18页/共42页【例】分别建立33、32和与矩阵A同样大小的零矩阵。解:(1)zeros(3)(2)zeros(3,2)(3)设A为23矩阵,则可以用zeros(size(A)建立一个与矩阵A同样大小零矩阵。A=1 2 3;4 5 6;%产生一个23阶矩阵Azeros(size(A)%产生一个与矩阵A同样大小的零矩阵第19页/共42页【例】建立随机矩阵:(1)在区间20,50内均匀分布的5阶随机矩阵
19、。(2)均值为0.6、方差为0.1的5阶正态分布随机矩阵。解:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)第20页/共42页2用于专门学科的特殊矩阵(1)魔方矩阵魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,n2 共n2个整数组成。MATLAB提供了求魔方矩阵的函数magic(n),其功能是生成一个n阶魔方阵。(2)范得蒙矩阵vander(V)(3)希尔伯特矩阵hilb(n)希尔伯特矩阵的逆矩阵invhilb(n)(4)托普利兹矩阵toeplitz(x)(5)伴随矩阵compan(p)(6)帕
20、斯卡矩阵pascal(n)第21页/共42页例将101125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。解:M=100+magic(5)M=117 124 101 108 115 123 105 107 114 116 104 106 113 120 122 110 112 119 121 103 111 118 125 102 109第22页/共42页【例9】标准数组产生的演示。ones(1,2)%产生长度为2的全1行数组ans=1 1 ones(2)%产生(22)全1阵ans=1 1 1 1 randn(state,0)%把正态随机数发生器置0randn(2,3
21、)%产生(23)的正态随机阵ans=-0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909 D=eye(3)%产生(33)的单位阵D=1 0 0 0 1 0 0 0 1 第23页/共42页diag(D)%取D阵的对角元素ans=1 1 1 diag(diag(D)%内diag取D的对角元素,外diag利用一维数组生成对角阵ans=1 0 0 0 1 0 0 0 1 repmat(D,1,3)%在水平方向“铺放”3个D阵ans=Columns 1 through 9 1 0 0 1 0 0 1 00 0 1 0 0 1 0 0 10 0 0 1 0 0 1 0
22、01第24页/共42页2、数组操作函数【例 10】diag与reshape的使用演示。a=-4:4%产生一维数组A=reshape(a,3,3)%把一维数组a重排成(33)的二维数组a=Columns 1 through 9 -4 -3 -2 -1 0 1 2 34A=-4 -1 2 -3 0 3 -2 1 4 a1=diag(A,1)%取A阵“第一上对角线”元素a1=-1 3 第25页/共42页A1=diag(a1,-1)%产生以a1数组元素为“第一下对角线”元素的二维数组A1=0 0 0 -1 0 0 0 3 0 A.%转置ans=-4 -3 -2 -1 0 1 2 3 4 flipud(
23、A)%上下对称交换ans=-2 1 4 -3 0 3 -4 -1 2 第26页/共42页九、数组构成技法综合【11】数组的扩展。(1)数组的赋值扩展法A=reshape(1:9,3,3)%创建(33)数组AA=1 4 7 2 5 8 3 6 9 A(5,5)=111%扩展为(55)数组,扩展部分除(5,5)元素为111外,其余均为0A=1 4 7 0 0 2 5 8 0 0 3 6 9 0 0 0 0 0 0 0 0 0 0 0 111 1、索引扩展数组第27页/共42页A(:,6)=222%标量对子数组赋值,并扩展为(56)数组A=1 4 7 0 0 222 2 5 8 0 0 222 3
24、6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 (2)多次寻访扩展法AA=A(:,1:6,1:6)%相当于指令repmat(A,1,2)AA=1 4 7 0 0 222 1 4 7 0 0 222 2 5 8 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 0 0 0 0 111 222 第28页/共42页(3)合成扩展法B=ones(2,6)%创建(26)全1数组B=1 1 1 1 1 1 1 1 1 1 1 1 AB
25、_r=A;B%行数扩展合成AB_r=1 4 7 0 0 222 2 5 8 0 0 222 3 6 9 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 1 1 1 1 1 1 1 1 1 1 1 1 第29页/共42页AB_c=A,B(:,1:5)%列数扩展合成AB_c=1 4 7 0 0 222 1 1 2 5 8 0 0 222 1 1 3 6 9 0 0 222 1 1 0 0 0 0 0 222 1 1 0 0 0 0 111 222 1 1【例12】提取子数组,合成新数组。A%重显A数组A=1 4 7 0 0 222 2 5 8 0 0 222 3 6 9
26、 0 0 222 0 0 0 0 0 222 0 0 0 0 111 222 第30页/共42页AB_BA=triu(A,1)+tril(A,-1)%利用操作函数,使主对角元素为全为0AB_BA=0 4 7 0 0 222 2 0 8 0 0 222 3 6 0 0 0 222 0 0 0 0 0 222 0 0 0 0 0 222 AB1=A(1:2,end:-1:1);B(1,:)%灵活合成 AB1=222 0 0 7 4 1 222 0 0 8 5 2 1 1 1 1 1 1 第31页/共42页【例13】单下标寻访和reshape指令演示。clearA=reshape(1:16,2,8)
27、%变一维数组成(28)数组A=1 3 5 7 9 11 13 15 2 4 6 8 10 12 14 16 reshape(A,4,4)%变(28)数组为(44)数组ans=1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 s=1 3 6 8 9 11 14 16;%定义“单下标”数组A(s)=0%利用“单下标”数组对A的元素重新赋值A=0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0 第32页/共42页【例14】“对列(或行)同加一个数”三种的操作方法。clear,A=reshape(1:9,3,3)A=1 4 7 2 5 8 3 6 9 b
28、=1 2 3;A_b1=A-b(1 1 1,:)%使A的第1,2,3行分别减b向量1 2 3A_b1=0 2 4 1 3 5 2 4 6 A_b2=A-repmat(b,3,1)A_b2=0 2 4 1 3 5 2 4 6 第33页/共42页A_b3=A(:,1)-b(1),A(:,2)-b(2),A(:,3)-b(3)A_b3=0 2 4 1 3 5 2 4 6 【例15】逻辑函数的运用示例。randn(state,1),R=randn(3,6)%创建正态随机阵R=0.8644 0.8735 -1.1027 0.1684 -0.5523 -0.6149 0.0942 -0.4380 0.39
29、62 -1.9654 -0.8197 -0.2546 -0.8519 -0.4297 -0.9649 -0.7443 1.1091 -0.2 L=abs(R)1.5%不等式条件运算,结果给了出逻辑数组L=0 0 0 1 0 0 1 1 1 1 0 1 0 1 0 0 0 1 第34页/共42页R(L)=0%“逻辑1”对应的元素赋0值R=0.8644 0.8735 -1.1027 0 -0.5523 -0.6149 0 0 0 0 -0.8197 0 -0.8519 0 -0.9649 -0.7443 1.1091 0 s=(find(R=0)%利用find获得符合关系等式条件的元素“单下标”s
30、=2 5 6 8 10 11 17 18 R(s)=111%利用“单下标”定位赋值R=0.8644 0.8735 -1.1027 111.0000 -0.5523 -0.6149 111.0000 111.0000 111.0000 111.0000 -0.8197 111.0000 -0.8519 111.0000 -0.9649 -0.7443 1.1091 111.0000 ii,jj=find(R=111);%利用find得符合关系等式的元素“双下标”disp(ii),disp(jj)2 2 3 2 1 2 2 3 1 2 2 3 4 4 6 6 第35页/共42页2、数组编辑器扩展数
31、组 双击MATLAB界面工作区中的任一数组变量,都能打开数组编辑器,对该数组进行编辑操作 第36页/共42页3、cat函数扩展数组 catcat系列函数包括:系列函数包括:catcat,horzcathorzcat和和vertcatvertcat。不。不管哪个连接函数,都必须保证被操作的数组可管哪个连接函数,都必须保证被操作的数组可以被连接,即在某一个方向上尺寸一致。以被连接,即在某一个方向上尺寸一致。catcat函数函数语法:语法:Z=cat(dim,A,B,C,)Z=cat(dim,A,B,C,)horzcathorzcat函数函数语法:语法:Z=horzcat(A,B,C)Z=horzc
32、at(A,B,C)vertcatvertcat函数函数语法:语法:Z=vertcat(A,B,C)Z=vertcat(A,B,C)第37页/共42页第38页/共42页七、多项式的表达方式及其操作1、多项式的创建(1)多项式系数向量的直接输入法(2)利用指令:P=poly(AR)产生多项式系数向量若AR是方阵,则多项式P就是该方阵的特征多项式若AR=ar1 ar2 ar3arn,则AR的元素被认为是多项式P的根【例 7】求3阶方阵A的特征多项式。A=11 12 13;14 15 16;17 18 19;PA=poly(A)PPA=poly2str(PA,s)PA=1.0000 -45.0000
33、-18.0000 0.0000PPA=s3-45 s2-18 s+1.8303e-014 第39页/共42页2、多项式运算函数指令指令含义含义p=conv(p1,p2)p=conv(p1,p2)P P是多项式是多项式p1p1和和p2p2的乘积多项式的乘积多项式q,r=deconv(p1,p2)q,r=deconv(p1,p2)多项式多项式p1p1被被p2p2除的商多项式为除的商多项式为q q,而余多项式为,而余多项式为r rp=ploy(AR)p=ploy(AR)求方阵求方阵ARAR的特征多项式的特征多项式p p;或求向量;或求向量ARAR指定根所对应的多指定根所对应的多项式项式dp=poly
34、der(p)dp=polyder(p)求多项式求多项式p p的导数多项式的导数多项式dpdpdp=polyder(p1,p2)dp=polyder(p1,p2)求多项式求多项式p1,p2p1,p2乘积的导数多项式乘积的导数多项式dpdpNum,Den=ployder(p1,p2)Num,Den=ployder(p1,p2)对有理分式对有理分式(p1/p2)(p1/p2)求导数所得的有理分式为求导数所得的有理分式为(Num/Den)(Num/Den)P=polyfit(x,y,n)P=polyfit(x,y,n)求求x,yx,y向量给定的数据的向量给定的数据的n n阶拟合多项式阶拟合多项式p p
35、pA=polyval(p,S)pA=polyval(p,S)按数组运算规则计算多项式值;按数组运算规则计算多项式值;p p为多项式,为多项式,S S为矩阵为矩阵PM=polyvalm(p,S)PM=polyvalm(p,S)按矩阵运算规则计算多项式值;按矩阵运算规则计算多项式值;p p为多项式,为多项式,S S为矩阵为矩阵r,p,k=residue(b,a)r,p,k=residue(b,a)部分分式展开,部分分式展开,b,ab,a分别是分子、分母多项式系数向量;分别是分子、分母多项式系数向量;r r、p p、k k分别是留数、极点和直项分别是留数、极点和直项r=roots(p)r=roots(p)求多项式求多项式p p的根的根第40页/共42页【例8】求 的“商”及“余”多项式。p1=conv(1,0,2,conv(1,4,1,1);%计算分子多项式p2=1 0 1 1;%注意缺项补零q,r=deconv(p1,p2);cq=商多项式为 ;cr=余多项式为 ;disp(cq,poly2str(q,s),disp(cr,poly2str(r,s)商多项式为 s+5余多项式为 5 s2+4 s+3 第41页/共42页