第一讲 MATLAB简介 matlaB 5.3. Ink 1.1 MATLAB与通信仿真 1.1.1通信电路与系统仿真 1.1.2 MATLAB的发展史 1.1.3 MATLAB语言的主要特点 1.2 MATLAB简介 1.2.1 MATLAB的计算功能 MATLAB的数据结构、数值计算功能、符号计算功能(*)。 1.2.2 MATLAB中的计算结果可视化 维曲线图形三维曲面图形、句柄图形、图形用户界面 (GUI)编程
1 第一讲 MATLAB简介 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 1.1.2 MATLAB的发展史 1.1.3 MATLAB语言的主要特点 1.2 MATLAB简介 1.2.1 MATLAB的计算功能 MATLAB的数据结构、数值计算功能、符号计算功能(*)。 1.2.2 MATLAB中的计算结果可视化 二维曲线图形三维曲面图形、句柄图形、图形用户界面 (GUI)编程
1.1 MATLAB与通信仿真 1.1.1通信电路与系统仿真 般来说,通信电路与系统仿真过程可以分为五个步骤: (1)系统建模:根据要分析的通信电路与系统,建立相应的数 学模型。 (2)仿真算法:找到合适的仿真算法。 MATLAB已经被确认为 准确、可靠的科学计算标准软件 (3)仿真语言:应用仿真语言编写计算程序。 MTLAB语言有 非常突出的优点,是通信电路与系统仿真首选的仿真语言。 (4)仿真计算:根据初步的仿真结果对该数学模型进行验证。 (5)系统仿真:进行系统仿真,并认真地分析仿真的结果 仿真算法、仿真语言和仿真程序构成了数字仿真软件。 数学模型的正确性、仿真算法的可行性、仿真程序的准确性 和可靠性,最后编制成一个成熟的仿真软件
2 1.1 MATLAB与通信仿真 1.1.1 通信电路与系统仿真 ▪ 一般来说,通信电路与系统仿真过程可以分为五个步骤: (1)系统建模:根据要分析的通信电路与系统,建立相应的数 学模型。 (2)仿真算法:找到合适的仿真算法。MATLAB已经被确认为 准确、可靠的科学计算标准软件。 (3)仿真语言:应用仿真语言编写计算程序。MTLAB语言有 非常突出的优点,是通信电路与系统仿真首选的仿真语言。 (4)仿真计算:根据初步的仿真结果对该数学模型进行验证。 (5)系统仿真:进行系统仿真,并认真地分析仿真的结果。 ▪ 仿真算法、仿真语言和仿真程序构成了数字仿真软件。 ▪ 数学模型的正确性、仿真算法的可行性、仿真程序的准确性 和可靠性,最后编制成一个成熟的仿真软件
1.1.1通信电路与系统仿真(续) 通信电路与系统仿真在教学实践中应用越来越普遍。 对于改进教学效果、给学生提供形象化的信息、激发学生 的学习兴趣、提高学生的自学能力、加强学生对授课内容的 理解等无疑是十分有益的。有利于对学生分析问题的能力和 解决问题的能力的培养。 学生掌握了系统仿真的方法以后,不但使他加强了对所学课 程的理解,同时还便于钻研一些他本人感兴趣的问题,有利 于部分学有余力的学生进一步自学的要求 在美国和欧洲大学中,九十年代将 MATLAB正式列入了电 子工程专业研究生和本科生的教学计划, MATLAB是必须 掌握的基本工具。 在设计研究单位和工业界, MATLAB也成为工程师们应 该掌握的一种工具,是被认作进行高效研究、开发的首选 软件工具
3 1.1.1 通信电路与系统仿真(续) ▪ 通信电路与系统仿真在教学实践中应用越来越普遍。 • 对于改进教学效果、给学生提供形象化的信息、激发学生 的学习兴趣、提高学生的自学能力、加强学生对授课内容的 理解等无疑是十分有益的。有利于对学生分析问题的能力和 解决问题的能力的培养。 • 学生掌握了系统仿真的方法以后,不但使他加强了对所学课 程的理解,同时还便于钻研一些他本人感兴趣的问题,有利 于部分学有余力的学生进一步自学的要求。 • 在美国和欧洲大学中,九十年代将MATLAB正式列入了电 子工程专业研究生和本科生的教学计划,MATLAB是必须 掌握的基本工具。 • 在设计研究单位和工业界,MATLAB也成为工程师们应 该掌握的一种工具,是被认作进行高效研究、开发的首选 软件工具
1.1.2 MATLAB的发展史 MATLAB名字由 MATrix和 LABoratory两词的前三个字母 组合而成。那是20世纪七十年代,时任美国新墨西哥大学计 算机科学系主任的 Cleve moler出于减轻学生编程负担的动机 为学生设计了一组调用 LINPACK和 EISPACK矩阵软件工具 包库程序的的“通俗易用”的接口,此即用 FORTRAN编写 的萌芽状态的 MATLAB 1984年由 Little, moler、 Steve bangert合作成立 Math works 公司,并把 MATLAB正式推向市场。从这时起, MATLAB的 内核采用C语言编写,而且除原有的数值计算能力外,还新增 了数据图视功能。 1997年仲春, MATLAB5.0版问世,紧接着是152,以及 和1999年春的53版。现今的 MATLAB拥有更丰富的数据类型 和结构、更友善的面向对象、更加快速精良的图形可视、更广 博的数学和数据分析资源、更多的应用开发工具
4 1.1.2 MATLAB的发展史 ▪ MATLAB名字由MATrix和LABoratory 两词的前三个字母 组合而成。那是20世纪七十年代,时任美国新墨西哥大学计 算机科学系主任的Cleve Moler出于减轻学生编程负担的动机, 为学生设计了一组调用LINPACK和EISPACK矩阵软件工具 包库程序的的“通俗易用”的接口,此即用FORTRAN编写 的萌芽状态的MATLAB。 ▪ 1984年由Little、Moler、Steve Bangert合作成立MathWorks 公司,并把MATLAB正式推向市场。从这时起,MATLAB的 内核采用C语言编写,而且除原有的数值计算能力外,还新增 了数据图视功能。 ▪ 1997年仲春,MATLAB5.0版问世,紧接着是5.1、5.2,以及 和1999年春的5.3版。现今的MATLAB拥有更丰富的数据类型 和结构、更友善的面向对象、更加快速精良的图形可视、更广 博的数学和数据分析资源、更多的应用开发工具
1.1.3 MATLAB语言的主要特点 (1)具有丰富的数学功能 包括矩阵各种运算。如:正交变换、三角分解、特征值、 常见的特殊矩阵等。 包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码 函数、贝塔函数、椭圆函数等。 包括各种数学运算功能。如:数值微分、数值积分、插值、 求极值、方程求根、FFT、常微分方程的数值解等。 (2)具有很好的图视系统 可方便地画出两维和三维图形。 高级图形处理。如:色彩控制、句柄图形、动画等 图形用户界面GUI制作工具,可以制作用户菜单和控件 使用者可以根据自己的需求编写出满意的图形界面
5 1.1.3 MATLAB语言的主要特点 (1)具有丰富的数学功能 ▪ 包括矩阵各种运算。如:正交变换、三角分解、特征值、 常见的特殊矩阵等。 ▪ 包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码 函数、贝塔函数、椭圆函数等。 ▪ 包括各种数学运算功能。如:数值微分、数值积分、插值、 求极值、方程求根、FFT 、常微分方程的数值解等。 (2)具有很好的图视系统 ▪ 可方便地画出两维和三维图形。 ▪ 图形用户界面GUI制作工具,可以制作用户菜单和控件。 使用者可以根据自己的需求编写出满意的图形界面。 ▪ 高级图形处理。如:色彩控制、句柄图形、动画等
1.1.3 MATLAB语言的主要特点(续) (3)可以直接处理声言和图形文件。 声言文件。如:WAV文件(例: wavread, sound等)。 图形文件。如:bmp、gif、px、fif、jpeg等文件。 (4)具有若干功能强大的应用工具箱。 如: SIMULINK、COMM、DsP、 SIGNAL等16种工具箱 (5)使用方便,具有很好的扩张功能。 使用 MATLAB语言编写的程序可以直接运行,无需编译。 可以M文件转变为独立于平台的EXE可执行文件。 MATLAB的应用接口程序API是 MATLAB提供的十分重要 的组件,由一系列接口指令组成。用户就可在 FORTRAN 或C中,把 MATLAB当作计算引擎使用 (6)具有很好的帮助功能 提供十分详细的帮助文件(PDF、HIML、demo文件 联机查询指令;help指令(例: help elfun, help exp,hel simulink), lookfor关键词(例: lookfor fourier)
6 1.1.3 MATLAB语言的主要特点(续) (3)可以直接处理声言和图形文件。 (4)具有若干功能强大的应用工具箱。 (5)使用方便,具有很好的扩张功能。 ▪ 声言文件。如: WAV文件(例:wavread,sound等)。 ▪ 图形文件。如:bmp 、gif 、 pcx 、tif 、jpeg等文件。 ▪ 如:SIMULINK、COMM、DSP、 SIGNAL等16种工具箱。 (6)具有很好的帮助功能 ▪ 可以M文件转变为独立于平台的EXE可执行文件。 ▪ 使用MATLAB语言编写的程序可以直接运行,无需编译。 ▪ 提供十分详细的帮助文件(PDF 、HTML 、demo文件)。 ▪ 联机查询指令:help指令(例:help elfun,help exp,help simulink),lookfor关键词(例:lookfor fourier )。 ▪ MATLAB的应用接口程序API是MATLAB提供的十分重要 的组件 ,由 一系列接口指令组成。用户就可在FORTRAN 或C中 , 把MATLAB当作计算引擎使用
1.2 MATLAB简介 1.2.1 MATLAB的计算功能 1) MATLAB的数据类型 现有四种基本数据类型:双精度数组、字符串数组、元胞 数组、构架数组。 元胞数组( Cell Array)如同银行里的保险箱库一样。 该数组的基本组分是元胞(Cel),以下标来区分。 元胞可以存放任何类型、任何大小的数组。 同一个元胞数组中各元胞的内容可以不同 构架数组( Structure Array)也能存放各类数据。 该数组的基本组分是构架( Structure),以下标来区分 构架必须在划分“域”后才能使用。 数据不能存放于构架,只能存放在域中 构架的域可以存放任何类型、任何大小的数组 不同构架的同名域中存放的内容可不同。(例122
7 1.2 MATLAB简介 1.2 .1 MATLAB的计算功能 (1) MATLAB的数据类型 ▪ 现有四种基本数据类型:双精度数组、字符串数组、元胞 数组、构架数组。 ▪ 元胞数组(Cell Array)如同银行里的保险箱库一样。 • 该数组的基本组分是元胞(Cell),以下标来区分。 • 元胞可以存放任何类型、任何大小的数组。 ▪ 构架数组(Structure Array)也能存放各类数据。 • 该数组的基本组分是构架(Structure ),以下标来区分。 • 构架必须在划分“域”后才能使用。 • 数据不能存放于构架,只能存放在域中。 • 构架的域可以存放任何类型、任何大小的数组。 • 不同构架的同名域中存放的内容可不同。(例1_2_2 ) • 同一个元胞数组中各元胞的内容可以不同。(例1_2_1)
(2) MATLAB的基本数值计算功能 基本计算功能: MATLAB有强大的函数库。(常用的基本 函数库和常用的三角函数库等) 矩阵运算及数组运算 矩阵运算符:+加法,-减法,*乘法,幂,\左除, /右除,‘转置。 数组运算符:+加法,,-减法,乘法,^幂, 左除,右除,,共轭。 例123:已知t的采样数据是(nxm)维数组。 要计算y=esi(5)对一般的计算语言来说,必须采用 两层循环才能得到结果。 MATLAB处理这类问题则简洁快 捷得多,它只需直截了当的一条指令y=exp(-2*t)*sin(5*t), 就可获得同样是(m×m)维的y数组 数组函数和矩阵函数
8 (2) MATLAB的基本数值计算功能 ▪ 基本计算功能:MATLAB有强大的函数库。(常用的基本 函数库和常用的三角函数库等) ▪矩阵运算及数组运算。 •矩阵运算符:+ 加法,- 减法,* 乘法,^ 幂,\ 左除, / 右除,‘转置。 •数组运算符:.+ 加法,.- 减法,.* 乘法,.^ 幂,.\ 左除,./ 右除,.‘ 共轭。 ▪数组函数和矩阵函数。 例 1_2_3:已知 的采样数据是 维数组。 要计算 。对一般的计算语言来说,必须采用 两层循环才能得到结果。MATLAB处理这类问题则简洁快 捷得多,它只需直截了当的一条指令y = exp(-2*t).*sin(5*t) , 就可获得同样是 维的 数组。 t (nm) sin( 5 ) 2 y e t − t = (nm) y
(3) MATLAB的高级数值计算功能 关系运算和逻辑运算 多项式:多项式的求根、分解、求导数以及多项式的拟合。 例124:在付立叶变换( Fourier)、Z变换和拉氏变 换(Tap1ace)中,常有两个多项式之比, MATLAB中提 供函数 residue执行部分分式展开 数据分析函数:对数据集合进行统计分析。例如:求最大 值、最小值、平均值、标准偏差、相关系数等。 数值分析函数:求函数极值、函数零点和极点、数值积分 数值微分、微分方程的数值解等。 付立叶变换和付立叶逆变换。 例125:应用数值积分,求时间函数w(t)的 Fourier级数 展开系数。 例126:应用FFT,求时间函数w(t的 Fourier级数展开 系数
9 (3) MATLAB的高级数值计算功能 ▪关系运算和逻辑运算。 ▪多项式:多项式的求根、分解、求导数以及多项式的拟合。 ▪数据分析函数:对数据集合进行统计分析。例如:求最大 值、最小值、平均值、标准偏差、相关系数等。 ▪数值分析函数:求函数极值、函数零点和极点、数值积分、 数值微分、微分方程的数值解等。 ▪付立叶变换和付立叶逆变换。 例 1_2_4:在付立叶变换(Fourier)、 Z 变换和拉氏变 换(Laplace)中,常有两个多项式之比,MATLAB中提 供函数 residue 执行部分分式展开。 例 1_2_5:应用数值积分,求时间函数w(t)的Fourier级数 展开系数。 例 1_2_6:应用FFT,求时间函数w(t)的Fourier级数展开 系数
(4) MATLAB的符号计算 符号计算的两大特点:符号解和任意精度解。 MATLAB的符号计算借助符号工具箱( Symbolic)实现。 符号表达式和符号矩阵。 定义基本符号对象的指令有两个:sym,syms 符号表达式:y=m(2*sn(x)*cos(x 符号矩阵: msy= symc[l/a+x), sin( x),(b-x/a+x): l, exp(x),x 2) 符号矩阵的基本运算。 两个符号矩阵的和:smad(A,B) 两个符号矩阵的差: symsub(A,B) 两个符号矩阵的积: sammul(A,B) 符号矩阵的求逆: inverse(B) 两个符号矩阵的除: syndic(A
10 (4) MATLAB的符号计算 ▪ 符号表达式和符号矩阵。 ▪ 符号矩阵的基本运算。 ▪ 符号计算的两大特点:符号解和任意精度解。 ▪ MATLAB的符号计算借助符号工具箱(Symbolic)实现。 • 定义基本符号对象的指令有两个:sym,syms。 • 符号表达式: y = sym('2*sin( x)*cos(x)') 。 • 符号矩阵: msy = sym('[1/(a + x),sin( x),(b − x)/(a + x);1,exp( x), x^2]') • 两个符号矩阵的和:symadd(A,B) • 两个符号矩阵的差:symsub(A,B) • 两个符号矩阵的积:symmul(A,B) • 两个符号矩阵的除:symdiv(A,B) • 符号矩阵的求逆:inverse(B)