[信息与通信]Matlab与数字通信系统仿真.ppt

上传人:音乐台 文档编号:2000605 上传时间:2019-01-30 格式:PPT 页数:50 大小:969KB
返回 下载 相关 举报
[信息与通信]Matlab与数字通信系统仿真.ppt_第1页
第1页 / 共50页
[信息与通信]Matlab与数字通信系统仿真.ppt_第2页
第2页 / 共50页
[信息与通信]Matlab与数字通信系统仿真.ppt_第3页
第3页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[信息与通信]Matlab与数字通信系统仿真.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]Matlab与数字通信系统仿真.ppt(50页珍藏版)》请在三一文库上搜索。

1、Matlab基础与数字通信仿真,赵婷婷,内容,Matlab简介,1,Matlab与数字通信仿真,4,Matlab语言基础,2,Matlab绘图基础,3,内容,Matlab 简介,1,Matlab窗口环境,Matlab是什么?,Matlab是什么?,Matlab = Matrix Laboratory = 矩阵实验室 由MathWorks公司于1984年推出的一套高性能的数值计算和可视化数学软件 基本元素是矩阵 数学表达式与运算规则符合通常的习惯 语法不严格 具有强大的数值计算和图示能力 具有丰富的工具箱(ToolBox) 强大的help功能,Matlab窗口环境,脚本M文件 在命令窗口中输入并

2、执行 它所用的变量都要在工作空间中获取,Matlab窗口环境,程序文件 以.m格式进行存取程序 运行时只需在工作空间中键入其名称即可,MATLAB语句形式 变量表达式; 通过等号将表达式的值赋予变量。 当键入回车键时,该语句被执行。 语句执行之后,窗口自动显示出语句执行的结果。 如果不希望结果回显,只需在语句后加分号即可。,Matlab窗口环境,MATLAB语句形式 变量表达式; 通过等号将表达式的值赋予变量。 当键入回车键时,该语句被执行。 语句执行之后,窗口自动显示出语句执行的结果。 如果不希望结果回显,只需在语句后加分号即可。,Matlab窗口环境,命令行编辑器 方向键和控制键可以编辑修

3、改已输入的命令 :回调上一行命令 :回调下一行命令 多行命令() : 如果命令语句超过一行或者太长希望分行输入,可以使用多行命令继续输入,Matlab窗口环境,例如: S=1-12+13+4+ 9-4-18;,内容,Matlab 语言基础,2,基本运算符,变量,矩阵,常用函数,基本语句,Matlab语言基础: 变量,变量的命名 变量无需定义即可使用 变量的名字必须以字母开头,之后可以是任意字母、数字或下划线(不能超过31个字符) 变量名称区分字母的大小写 变量可包含下连字符、数字,但不能包含空格、标点,变量操作 在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调

4、用 采用clear将清除内存内的所有变量 采用“clear 变量名”清除指定变量,一些特殊的变量,ans :最近生成的无名变量 i, j :虚数单位 pi :圆周率 nargin :函数的输入变量个数 eps :计算机的最小数 nargout :函数的输出变量个数,inf :无穷大(2/0) realmin :最小正实数 realmax :最大正实数 nan :不定量(0/0) flops :浮点运算数,Matlab语言基础: 变量,常用的数学运算符,运算式中,通常不需要考虑空格 多条命令可以放在一行中 同行中各条命令可用分号隔开,表示禁止结果显示 同行中各条命令也可用逗号隔开,表示需要显示结

5、果, - 加 - 减 * - 乘 / - 左除 - 右除 - 幂,Matlab语言基础: 基本运算符,常用的关系运算符, - 大于 = - 大于等于 - 小于 = - 小于等于 = - 等于 = - 不等于,运算法则 若关系式成立,结果为1 若关系式不成立,结果为0,Matlab语言基础: 基本运算符,常用的逻辑运算符,& - 与 | - 或 ! - 非,运算法则 若逻辑真,结果为1 若逻辑假,结果为0,Matlab语言基础: 基本运算符,其他常见符号,Matlab语言基础: 基本运算符,= - 变量赋值 % - 注释符 - 共轭转置符 . - 转置符 : - 冒号运算符,举例: n:s:m

6、产生nm、步长为s的序列,循环语句 for-end循环 :循环次数事先确定时使用 while-end 循环:循环次数不能事先确定时使用,Matlab语言基础: 基本语句,for i=n:s:m 语句体 end s 为步长 可以为正数,负数或小数,while 表达式 语句体 end 表达式为真,执行语句体 表达式为假,终止该循环,分支语句 if-elseif-else-end: 具有优先级 switch-case-otherwise-end:无优先级,Matlab语言基础: 基本语句,if 表达式1 语句体1 elseif 表达式2 语句体2 else 语句体else end,switch 变量

7、 case 变量值1 语句体1 case 变量值2 语句体2 otherwise 语句体otherwise end,常用的数学函数,abs - 求绝对值 sin - 正弦 cos - 余弦 tan - 正切 asin - 反正弦 acos - 反余弦 atan - 反正切 sqrt - 求平方根,exp - ex imag - 求虚部 real - 求实部 sign - 求符号 log - 求自然对数 log10 - 以10为底的对数 conj - 共轭复数,Matlab语言基础: 常用函数,Matlab语言基础: 矩阵,矩阵的生成,例如:创建一个33矩阵 输入 :a=1 2 3;4 5 6;

8、7 8 9 或者a=1 2 3 4 5 6 7 8 9 屏幕输出: a = 1 2 3 4 5 6 7 8 9,矩阵的元素直接排列在方括号内 行与行之间用分号隔开 每行内的元素使用空格或逗号隔开 大的矩阵可以用分行输入,回车键代表分号,矩阵的生成,举例: 输入 a=1:2:10 屏幕输出: a= 1 3 5 7 9 输入 a=10:-2:1 屏幕输出: a= 10 8 6 4 2,用线性等间距生成向量矩阵 start : step : end start:起始值 step: 步长(默认为1,可为负值) end: 终止值,Matlab语言基础: 矩阵,一些常用的特殊矩阵,eye(2,3) ans

9、= 1 0 0 0 1 0,eye(2) ans= 1 0 0 1,V=5 7 2; A=diag(V) A= 5 0 0 0 7 0 0 0 2,Matlab语言基础: 矩阵,单位矩阵:eye(m,n); eye(m) 零矩阵: zeros(m,n); zeros(m) 一矩阵: ones(m,n); ones(m) 对角矩阵:对角元素向量 V=a1,a2,an A=diag(V) 随机矩阵:rand(m,n)产生一个mn的均匀分布的随机矩阵,zeros(2,3) ans= 0 0 0 0 0 0,zeros(2) ans= 0 0 0 0,ones(2,3) ans= 1 1 1 1 1

10、1,ones(2) ans= 1 1 1 1,rand(2,2) ans = 0.4154 0.8744 0.0150 0.9708,矩阵元素的访问 通过确认矩阵下标,可以对矩阵的子块进行插入、提取和重排 注意:MATLAB中矩阵下标从1开始,而不是从0开始,Matlab语言基础: 矩阵,A(m,n):提取第m行,第n列元素 A(:,n) :提取第n列元素 A(m,:) :提取第m行元素 A(m1:m2,n1:n2):提取m1m2行和n1 n2列的所有元素 A(:) :得到一个长列矢量,其元素按矩阵的列进行排列,A= 1 2 3 4 5 6;,A(2,1) ans=4,A(2,:) ans=

11、4 5 6,A(:,2) ans= 2 5,A(1:2,2:3) ans= 2 3 5 6,A(:) ans= 1 4 2 5 3 6,矩阵的扩展与消除 矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。 消除子块:如果将矩阵的子块赋值为空矩阵 ,则相当于消除了相应的矩阵子块。,Matlab语言基础: 矩阵,A= 1 2 3 4 5 6;,A(3,2)=7 A=1 2 3 4 5 6 0 7 0,A(2,:)= A=1 2 3,矩阵的大小,Matlab语言基础: 矩阵,m,n=size(A,x):返

12、回矩阵的行列数m与n 当x=1,则只返回行数m 当x=2,则只返回列数n length(A)=max(size(A):返回行数或列数的最大值,A= 1 2 3 4 5 6;,size(A) ans= 2 3,size(A,1) ans= 2,size(A,2) ans= 3,矩阵的运算,举例 A=1+i 2-2i; -3+3i -4-4i A= 1+ i 2-2i -3+3i -4-4i,B=A B= 1- i -3-3i 2+2i -4+4i,C=A. C= 1+ i -3+3i 2-2i -4-4i,Matlab语言基础: 矩阵,转置:转置符号有两种形式 A - 共轭转置 A. - 普通转

13、置 求逆 :inv(A) 求行列式:det(A),矩阵的四则运算与幂运算,.* - 点乘 . - 点右除 ./ - 点左除 . - 点幂,点运算是两个维数相同矩阵对应元素间的运算,Matlab语言基础: 矩阵, - 矩阵加 - 矩阵减 * - 矩阵乘 / - 矩阵左除 - 矩阵右除 - 矩阵幂,内容,Matlab绘图基础,3,Matlab绘图基础,MATLAB提供了丰富的绘图功能,help graph2d可得到所有画二维图形的命令 help graph3d可得到所有画三维图形的命令,plot(x,y,属性)或者stem():绘图 figure:选择图像 figure(1);figure(2);

14、figure(n) 打开不同的图形窗口,以便绘制不同的图形 grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格 hold on: 当前图形保持不变,同时允许在这个坐标内绘制另外一个图形 hold off:使新图覆盖旧的图形,Matlab绘图基础,举例: t=0:pi/20:9*pi; f=sin(t); figure(1) plot(t,f,r:*) grid on,Matlab绘图基础,设定对数坐标,Matlab绘图基础,semilogx:x轴为对数坐标,y轴为线性坐标 semilogy:y轴为对数坐标,x轴为线性坐标,设定轴的范围,axis(xmin xm

15、ax ymin ymax) axis(equal):将x坐标轴和y坐标轴的单位刻度调整为一样,文字标示,Matlab绘图基础,text(x,y,字符串) 在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串 gtext(字符串) 利用鼠标在图形的某一位置标示字符串 title(字符串) 在所画图形的最上端显示说明该图形标题的字符串 xlabel(字符串),ylabel(字符串) 设置x,y坐标轴的名称。 legend(字符串1,字符串,字符串n) 在屏幕上开启一个小视窗,然后依据绘图命令的先后用对应的字符串区分图形上的线,t=0:pi/20:5*pi; f=sin(t) figure(1

16、) subplot(121) plot(t,f) grid on subplot(122) plot(t,-f) grid on,Matlab绘图基础,subplot(mnk):分割图形显示窗口 m:上下分割个数,n:左右分割个数,k:子图编号,内容,Matlab与数字通信仿真,4,Matlab与数字通信仿真,Matlab与数字通信仿真,Matlab与数字通信仿真,产生随机数,randsrc:产生给定符号集合的随机数 randn :产生正态分布的随机数 randint :产生均匀分布的随机整数,举例:产生0、1分布的随机序列 randsrc(1,N,0,1;0.5,0.5) randint(1

17、,N),Matlab与数字通信仿真,产生随机数,Matlab与数字通信仿真,Matlab与数字通信仿真,数字调制,qammod qamdemod genqammod genqamdemod pammod, pamdemod 建议自己编写!,举例:进行QPSK调制,const=1+j,-1+j,1-j,-1-j; y=genqammod(x, const);,数字调制,Matlab与数字通信仿真,Matlab与数字通信仿真,Matlab与数字通信仿真,插值,upsample 建议自己编写!,举例:进行8倍上采样 N=8; y=upsample(x,N);,Matlab与数字通信仿真,Matlab

18、与数字通信仿真,波形成型,y = rcosflt(x, Fd, Fs, type_flag, r, delay) filter=rcosine(Fd,Fs, type_flag, r, delay) y = conv(x,filter) 建议自己编写!,Matlab与数字通信仿真,波形成型,给大家的建议,自己去编写课程相关的函数: 养成好的习惯: 变量、函数的命名有意义,加入注释(%),增强可读性 .m文件(主程序)开头先把环境打扫干净(clc;clear) !注意在子程序中不要用clear 尽量使用矩阵运算 程序尽量模块化,即采用主程序调用子程序 参数值最好集中放在程序的开始部分,以便维护,推荐几本书,现代通信系统使用MATLAB 约翰 G 谱罗克斯,马苏德 萨勒赫,刘树棠译 西安交通大学出版社 MATLAB与通信仿真 王立宁,乐光新,赞菲 人民邮电出版社 精通MATLAB 5 张宜华 清华大学出版社,Thank You for your attention!,It is time for Q&A!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1