《数字信号处理matlab上机实验教学讲义》由会员分享,可在线阅读,更多相关《数字信号处理matlab上机实验教学讲义(52页珍藏版)》请在金锄头文库上搜索。
1、1,Matlab基础介绍,、Matlab 简介 、Matlab 的安装与启动 、Matlab 编程基础 、Matlab 在数字信号处理课程中的应用,2,一、Matlab 简介,Matlab名字是由Matrix和Laboratory两个词的前三个字母组合而成的,是由MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。到20世纪90年代,MATLAB已经成为国际控制界公认的标准计算软件. Matlab编程运算与人进行科学计算的思路和表达方式完全一致。不象学习其它高级语言如Basic、Fortran和C等那样难于掌握。 其基本元素是矩阵。 具有强大的数值计算和图示能力。 具
2、有丰富的工具箱(ToolBox)。 具有强大的与外部程序如C的交互接口。 在高校中,Matlab成为数学,信息,控制等诸多学科有关课程的有效教学工具。,3,二、Matlab 的安装,4,Matlab的启动,5,操作桌面的缺省外貌,6,通用操作界面 指令窗(Command Window) 历史指令窗(Command History) 当前目录浏览器(Current Directory Browser) 工作空间浏览器(Workspace Browser) 内存数组编辑器(Array Editor) M文件编辑器/调试器(Editor/Debugger) 帮助导航/浏览器(Help Navigat
3、or/Browser),7,三、 Matlab 编程基础,1 变量 2 数组,向量与矩阵的创建和访问 3 部分特殊变量和常数 4 部分常用运算符 5 Matlab的程序设计 6 m文件的创建,保存,运行 7 基本数学函数和基本绘图函数 8 编程举例,8,3.1 变量,变量无需定义即可使用。 变量名的大小写是敏感的。 变量的第一个字符必须为英文字母,而且不超过31个字符。 变量名可以包含下连字符、数字,但不能为空格符、标点 。,9,局部(Local)变量:它存在于函数空间内部的中间变量,产生于该函数的运行过程中,其影响范围也仅限于该函数本身 。 全局(Global)变量:通过 global 指令
4、,MATLAB也允许几个不同的函数空间以及基本工作空间共享同一个变量。,10,11,最简单的计算器使用法【例】求 的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容 (12+2*(7-4)/32 (2)在上述表达式输入完成后,按【Enter】键,该指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。 ans =2 输入help *可查看该命令的帮助信息。,12,3.2 数组,向量与矩阵的创建和访问,在Matlab中,这三个概念在创建和显示的时候没有任何区别。 向量的创建 【例】 要创建一个向量,在命令窗口下输入:t=0:1:10 屏幕显示: t =0 1 2 3 4
5、 5 6 7 8 9 10 注意:向量的第一个元素的下标是1,而不是0。T=0:1:10产生了010步长为1的共11个数,保存在t(1),t(2),t(11)中。,13,定数线性采样法x=linspace(a,b,n), x=linspace(0,pi,11) x =Columns 1 through 7 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850Columns 8 through 11 2.1991 2.5133 2.8274 3.1416,14,矩阵的创建 【例】 创建一个33的矩阵,输入 :a=1 2 3;4 5 6;7 8 9 或a=1,2,
6、3; 4,5,6; 7,8,9 或a=1,2,34,5,67,8,9 屏幕输出 a =1 2 34 5 67 8 9,15,整个输入数组必须以方括号“”为其首尾; 数组的行与行之间必须用分号“;”或回车键【Enter】隔开; 数组元素必须由逗号“,”或空格分隔。,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,16,标准数组生成函数,17,访问矩阵的某一个元素:a(3,2)ans=8访问矩
7、阵某行(列)的所有元素: a(3,:) a(:,2) 注意:这两个符号分别是1*3行向量和3*1列向量,18,【例】子数组的寻访。 rand(state,0) %把均匀分布伪随机发生器置为0状态 x=rand(1,5) %产生的均布随机数组 x = 0.9501 0.2311 0.6068 0.4860 0.8913 x(3) %寻访数组x的第三个元素。 ans = 0.6068 x(1 2 5) %寻访数组x的第一、二、五个元素组成的子数组。 ans = 0.9501 0.2311 0.8913 x(1:3) %寻访前三个元素组成的子数组 ans =0.9501 0.2311 0.6068,
8、19,【例】创建二维数组C。 a=2.7358; b=33/79; %这两条指令分别给变量 a ,b 赋值。 C=1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i %这指令用于创建二维数组C C =1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000+1.0000i,20,【例】二维数组的子数组寻访和赋值。 A=zeros(2,4) %创建的全零数组 A =0 0 0 00 0 0 0 A(:)=1:8 %全元素赋值方式 A =1 3 5 72 4 6 8,21,3.3部分特殊变量和常数,ans 最近生成的无名
9、结果 eps 浮点数的相对误差 pi 3.14145926i 虚数单位j 虚数单位 inf 无穷大,如n/0 NaN 非数,真实记述0/0,/,0运算的后果;,22, a=0/0 Warning: Divide by zero. (Type “warning off MATLAB:divideByZero“ to suppress this warning.) a =NaN isnan(a) ans =1,23,t=-2*pi:pi/10:2*pi; %该自变量数组中,存在0值 y=sin(t)./t; %在t=0处,计算将产生NaN tt=t+(t=0)*eps; %使0元素被一个“机器零”
10、小数代替 yy=sin(tt)./tt; %用sin(eps)/eps近似代替sin(0)/0极限 subplot(1,2,1),plot(t,y),axis(-7,7,-0.5,1.2), xlabel(t),ylabel(y),title(残缺图形) subplot(1,2,2),plot(tt,yy),axis(-7,7,-0.5,1.2),24,3.4部分常用运算符,3.4.1 算术运算符 加 减* 乘(包括标量乘,矩阵乘,标量与矩阵乘)/ 除(包括标量除,矩阵除标量,数组除标量) 矩阵求幂(矩阵必须为方阵).* 数组相乘./ 数组相除. 数组求幂 注意:.* ./ 表示两个同维数组中
11、的对应元素做乘,除 . 表示对数组的每个元素求幂,25,【例】输入 A=1,3;2,4 B=1,2;3,4 C=A*B 屏幕输出: A = 1 3 2 4 B =1 23 4 C =10 1414 20,26,C=A.*B 屏幕输出: A = 1 32 4 B =1 23 4 C =1 66 16,27,【例】演示pow2的数组运算性质。 A=1:4;5:8 %生成数组 A =1 2 3 45 6 7 8 pow2(A) %计算的结果也是数组 ans =2 4 8 1632 64 128 256,28,【例】复数矩阵的生成及运算 A=1,3;2,4-5,8;6,9*i B=1+5i,2+6i;
12、3+8*i,4+9*i C=A*B A =1.0000 - 5.0000i 3.0000 - 8.0000i2.0000 - 6.0000i 4.0000 - 9.0000i B =1.0000 + 5.0000i 2.0000 + 6.0000i3.0000 + 8.0000i 4.0000 + 9.0000i C =1.0e+002 *0.9900 1.1600 - 0.0900i1.1600 + 0.0900i 1.3700,29,3.4.2 关系运算符, 大于= 大于等于= 等于= 不等于 运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。,30, A=1:9,B=10-A,
13、r0=(A4),r1=(A=B) A =1 2 3 4 5 6 7 8 9 B =9 8 7 6 5 4 3 2 1 r0 =1 1 1 0 0 0 0 0 0 r1 =0 0 0 0 1 0 0 0 0,31,3.4.3 逻辑运算符,& 与 | 或 非 运算法则: 若逻辑真,结果为1;若逻辑假,结果为0。,32,3.4.4 其他常见符号,= 变量赋值% 注释符 共轭转置符: 冒号运算符n:s:m 产生nm,步长为s的序列,s可以为 正或负或者小数,默认值为1。,33,3.5 Matlab 程序设计,Matlab的工作方式有二种1. 交互式的指令操作方式。即用户在命令窗口中输入命令并按下回车键
14、后,系统执行该指令并立即给出运算结果。2. m文件的编程方式。m文件是由 matlab语句构成的文件,且文件名必须以.m为扩展名,如example.m。用户可以用任何文件编辑器来对M文件进行编辑。,34,m文件有两种: 第一种:可单独运行。需在command窗口打开。直接双击在文本窗口打开,只能编辑。语句后加 ;号。同C语言。 %labdft.m x=ones(1,8),zeros(1,248); n=0:(length(x)-1); w=(2*pi/length(x)*n; Am3,pha3=dft3(x); 语句后不加 ;号可在command窗口看到结果。,35,第二种:不可单独运行,但能被其他M文件直接调用(须在MATLAB可寻的路径,如同一目录),相当于函数。%dft3.m: function Am,pha = dft3(x) Xk = fft(x); Am=abs(Xk); pha=angle(Xk);,