MATLAB语言具备高效、可视化及推理能力强等特点,在目前工程界是流行最广的科学计算语言。本书由语言篇和应用篇两部分组成,语言篇介绍MATLAB语言的基本语法,便于自学,又可作为教学教材。应用篇讲述MATLAB近百个实例程序,涉及的课程范围有电路、信号与系统、数字信号处理、控制系统等。这些实例使用了MATLAB中多方面的语句,可使读者能迅速掌握MATLAB编程的技巧,提高完成工程课程的效率。本书可作为学习MATLAB语言的入门教材;也可供理工科大学师生及工程技术人员参考。 \r\n
\r\n
第1篇 语 言 篇 \r\n\r\n 第1章 MATLAB语言概述 \r\n\r\n 1.1 MATLAB语言的发展 \r\n\r\n 1.2 MATLAB语言的特点 \r\n\r\n 1.3 MATLAB的工作环境 \r\n\r\n 1.3.1 命令窗 \r\n\r\n 1.3.2 图形窗 \r\n\r\n 1.3.3 文本编辑窗 \r\n\r\n 1.3.4 文件管理窗 \r\n\r\n 1.4 演示程序 \r\n\r\n 第2章 基本语法 \r\n\r\n 2.1 变量及其赋值 \r\n\r\n 2.1.1 标识符与数 \r\n\r\n 2.1.2 矩阵及其元素的赋值 \r\n\r\n 2.1.3 复数 \r\n\r\n 2.1.4 变量检查 \r\n\r\n 2.1.5 基本赋值矩阵 \r\n\r\n 2.2 矩阵的初等运算 \r\n\r\n 2.2.1 矩阵的加减乘法 \r\n\r\n 2.2.2 矩阵除法及线性方程组的解 \r\n\r\n 2.2.3 矩阵的乘方和幂次函数 \r\n\r\n 2.2.4 矩阵结构形式的提取与变换 \r\n\r\n 2.3 元素群运算 \r\n\r\n 2.3.1 数组及其赋值 \r\n\r\n 2.3.2 元素群的四则运算和幂次运算 \r\n\r\n 2.3.3 元素群的函数 \r\n\r\n 2.4 逻辑判断及流程控制 \r\n\r\n 2.4.1 关系运算 \r\n\r\n 2.4.2 逻辑运算 \r\n\r\n 2.4.3 流程控制语句 \r\n\r\n 2.5 基本绘图方法 \r\n\r\n 2.5.1 直角坐标中的两维曲线 \r\n\r\n 2.5.2 线型. 点型和颜色 \r\n\r\n 2.5.3 多条曲线的绘制 \r\n\r\n 2.5.4 屏幕控制和其他二维绘图 \r\n\r\n 2.5.5 三维曲线和曲面 \r\n\r\n 2.5.6 特殊图形和动画 \r\n\r\n 2.5.7 彩色. 光照和图像 \r\n\r\n 2.5.8 低层图形屏幕控制功能 \r\n\r\n 2.6 M文件及程序调试 \r\n\r\n 2.6.1 主程序文件 \r\n\r\n 2.6.2 人机交互命令 \r\n\r\n 2.6.3 函数文件 \r\n\r\n 2.6.4 文件编辑器及程序调试 \r\n\r\n 第3章 MATLAB的开发环境和工具 \r\n\r\n 3.1 MATLAB与其他软件的接口关系 \r\n\r\n 3.1.1 与磁盘操作系统的接口关系 \r\n\r\n 3.1.2 与文字处理系统WinWord的关系 \r\n\r\n 3.1.3 图形文件的转储 \r\n\r\n 3.1.4 低层输入输出函数库 \r\n\r\n 3.1.5 与C和FORTRAN子程序的动态链接 \r\n\r\n 3.2 MATLAB的文件管理系统 \r\n\r\n 3.2.1 安装后的MATLAB文件管理系统 \r\n\r\n 3.2.2 MATLAB自身的用户文件格式 \r\n\r\n 3.2.3 文件管理和搜索路径 \r\n\r\n 3.2.4 与目录和搜索有关的命令 \r\n\r\n 3.2.5 搜索顺序 \r\n\r\n 3.3 MATLAB 6.0的开发环境 \r\n\r\n 3.3.1 桌面系统的内容 \r\n\r\n 3.3.2 桌面命令菜单简介 \r\n\r\n 3.3.3 MATLAB 6.0的用户界面 \r\n\r\n 第4章 MATLAB的其他函数库 \r\n\r\n 4.1 数据分析函数库(datafun函数库) \r\n\r\n 4.1.1 基本的数据分析 \r\n\r\n 4.1.2 用于场论的数据分析函数 \r\n\r\n 4.1.3 用于随机数据分析的函数 \r\n\r\n 4.1.4 用于相关分析和傅立叶分析的函数 \r\n\r\n 4.2 矩阵的分解与变换(matfun函数库) \r\n\r\n 4.2.1 线性方程组的系数矩阵 \r\n\r\n 4.2.2 矩阵的分解 \r\n\r\n 4.2.3 矩阵的特征值分析 \r\n\r\n 4.2.4 特殊矩阵库(specmat) \r\n\r\n 4.3 多项式函数库(polyfun) \r\n\r\n 4.3.1 多项式的四则运算 \r\n\r\n 4.3.2 多项式求导. 求根和求值 \r\n\r\n 4.3.3 多项式拟合 \r\n\r\n 4.3.4 多项式插值 \r\n\r\n 4.3.5 线性微分方程的解(residue) \r\n\r\n 4.4 函数功能和数值积分函数库(funfun) \r\n\r\n 4.4.1 函数功能和数值积分函数库的主要子程序 \r\n\r\n 4.4.2 非线性函数的分析 \r\n\r\n 4.4.3 任意函数的数值积分 \r\n\r\n 4.5 字符串函数库(strfun) \r\n\r\n 4.5.1 字符串的赋值 \r\n\r\n 4.5.2 字符串语句的执行 \r\n\r\n 4.5.3 字符串输入输出 \r\n\r\n 4.6 稀疏矩阵函数库(sparfun) \r\n\r\n 4.7 图形界面函数库(Guitools) \r\n\r\n 4.8 数据类型函数库(datatypes) \r\n\r\n 4.8.1 结构阵列 \r\n\r\n 4.8.2 单元阵列 \r\n\r\n 4.8.3 类和对象 \r\n\r\n 第2篇 应 用 篇 \r\n\r\n 第5章 MATLAB在电路中的应用 \r\n\r\n 5.1 电阻电路 \r\n\r\n 5.2 动态电路 \r\n\r\n 5.3 正弦稳态电路 \r\n\r\n 5.4 频率响应 \r\n\r\n 5.5 二端口电路 \r\n\r\n 5.5.1 Z, Y, H, G, A, B六种参数间关系的MATLAB语句 \r\n\r\n 5.5.2 网络函数及其MATLAB语句 \r\n\r\n 第6章 MATLAB在信号与系统中的应用 \r\n\r\n 6.1 连续信号和系统 \r\n\r\n 6.2 傅立叶分析 \r\n\r\n 6.3 离散信号和系统 \r\n\r\n 6.4 线性时不变系统的模型 \r\n\r\n 6.4.1 模型的典型表达式 \r\n\r\n 6.4.2 模型转换 \r\n\r\n 第7章 MATLAB在数字信号处理中的应用 \r\n\r\n 7.1 时域离散信号的产生及时域处理 \r\n\r\n 7.2 z变换和傅立叶变换 \r\n\r\n 7.3 离散傅立叶变换(DFT) \r\n\r\n 7.4 数字滤波器结构 \r\n\r\n 7.5 FIR数字滤波器设计 \r\n\r\n 7.6 IIR数字滤波器设计 \r\n\r\n 第8章 MATLAB在自动控制原理中的应用 \r\n\r\n 8.1 控制工具箱中的LTI对象 \r\n\r\n 8.1.1 LTI对象的类型和属性 \r\n\r\n 8.1.2 LTI模型的建立 \r\n\r\n 8.1.3 对象属性的获取和修改 \r\n\r\n 8.1.4 LTI模型的简单组合和运算符扩展 \r\n\r\n 8.1.5 复杂模型的组合 \r\n\r\n 8.1.6 连续系统和采样系统之间的变换 \r\n\r\n 8.1.7 典型系统的生成 \r\n\r\n 8.2 动态特性和时域分析函数 \r\n\r\n 8.3 系统的频域分析函数 \r\n\r\n 8.4 系统的状态空间分析函数 \r\n\r\n 8.5 系统的状态空间法设计函数 \r\n\r\n 8.5.1 线性平方调节器问题 \r\n\r\n 8.5.2 线性平方估计器问题 \r\n\r\n 第9章 MATLAB工具箱简介 \r\n\r\n 9.1 符号数学(Symbolic Math)工具箱简介 \r\n\r\n 9.1.1 Symbolic工具箱的主要功能 \r\n\r\n 9.1.2 符号数学式的基本表示方法 \r\n\r\n 9.2 系统仿真(Simulink)工具箱简介 \r\n\r\n 9.2.1 概述 \r\n\r\n 9.2.2 环节库及框图的建立 \r\n\r\n 9.2.3 仿真方法和参数的设定 \r\n\r\n 9.2.4 仿真的运行 \r\n\r\n 9.2.5 Simulink的子系统屏蔽(Masking)功能 \r\n\r\n 9.2.6 Simulink内部工作过程简介 \r\n\r\n 9.2.7 Simulink应用范围的扩展 \r\n\r\n 9.3 以matlab为基础的工具箱简介 \r\n\r\n 9.4 以Simulink为基础的模块工具箱简介 \r\n\r\n 9.4.1 电力系统(Powersys)模块工具箱简介 \r\n\r\n 9.4.2 数字信号处理(DSP Blocks)模块工具箱简介 \r\n\r\n 9.4.3 定点处理(Fix-Point Blocks)模块工具箱简介 \r\n\r\n 9.4.4 通信系统(Comm)模块工具箱简介 \r\n\r\n 附录A 全书例题索引 \r\n\r\n 附录B MATLAB基本部分的函数索引 \r\n\r\n 附录C 信号处理工具箱函数集 \r\n\r\n 附录D 控制系统工具箱库函数4.2版本 (R11) \r\n\r\n 参考文献 \r\n
\r\n
21世纪将以科学技术的高速发展为其特征. 中华民族在国际大家庭中的地位将取决于我国的综合国力, 高速度高质量地培养千千万万掌握高技术的人才, 是其中一个十分重要的任务. 要做到这一点, 就必须努力地吸取世界上一切优秀的教育思想. 教学手段, 并创造性地应用于我们的教学事业.
在上世纪的最后20年中, 计算机已经被成功地应用于工程设计和制造业中, 在发达国家中其普及率已经超过了90%, 它成十倍地提高了劳动生产率, 创造了空前巨大的物质文明, 它把任何创新的思想转化为市场的商品时间缩短到了惊人的程度, 新产品的种类淘汰之快都是20年前无法想像的. 国际互联网的广泛应用加快了产业全球化的进程. 在这个极具挑战的时代中, 把计算机充分运用到教学及工程研究过程中, 显然具有重要的意义.
我们知道, 计算尺发明于1630年, 在大学中计算尺已被使用了300多年, 大约在1970年左右被计算器完全代替, 现在计算器在大学里已经使用了30年, 它被计算机所代替已是历史的必然. 教学工具的每一次更新都大大地提高了教育的效率. 因此, 自觉地而不是被动地加快计算机代替计算器的进程, 将对大学教学效率的提高起到重要的作用.
在发达国家中, 大学师生都能无限制地使用计算机, 目前正在向中学和小学普及. 而在我国, 只在理工科的研究生中已经普及, 在大学本科生中普及率, 各个学校差别很大. 就大多数学校而言, 低年级师生使用计算机的时间还受到各种条件的限制. 但随着计算机价格的不断下降和国家对教育投入的加大, 学校装备的和学生个人购买的计算机也越来越多, 因此在几年之内, 大学生自由地使用计算机设备将能够实现. 在大学本科课程中普遍使用计算机的瓶颈将是软件. 即使在目前, 拥有计算机的老师和学生也未必知道如何用计算机来帮助他们进行课程教学, 因此要从现在起做好准备.
为了把计算机更好地用于大学的课程教育和科学研究, 从20世纪80年代开始, 出现了多种科学计算语言, 也称为数学软件. 经过十多年的发展和竞争, 已经商品化的有Matlab, Matrix, Maple, Mathmatica, MathCAD等. 它们的功能大同小异, 又各有千秋. 就易学性和普及性而言, 首推MATLAB语言.
要想在大学本科的学习过程中使用计算机, 那就应该从大学一年级开始, 学会使用一种计算语言, 并且在以后的各门课中不断地使用. 作者的前一本书《MATLAB语言及其在理工课程中的应用指南》(西安电子科技大学出版社2000年1月出版), 对MATLAB在高等数学. 普通物理. 力学. 机械和电工等十多门课程中的应用实例作了介绍, 该书受到了读者的广泛好评, 同时一些读者也提出了一些建设性的建议.
有不少学校的大学生要到二年级才开始学习MATLAB语言, 特别是一些电子信息专业的学生, 他们在后续课程中需要更深入地应用它, 因此他们希望为二年级以后的电子信息专业的学生专门写一本书. 因此, 作者在电子工业出版社的支持下, 写成了这本《MATLAB及在电子信息课程中的应用》.
这本书是按照以下的指导思想来组织的:
(1) 以电路. 信号和系统. 数字信号处理和自动控制原理4门主课为目标, 作为这些课程的伴侣书. 晶体管模拟电路和数字电路虽然也是主课, 但有专门的软件来辅助分析, 因此本书不作介绍.
(2) 作为教学辅导书, 本书不作理论推导, 而是直接利用教材上的现成结论. 重点讨论如何利用这些结论和MATLAB编程来解决实际问题, 通过数字结果来加深对理论的理解.
(3) 本书自成体系, 同时避免各门课程的局限性. 由于种种原因, 目前各门课程之间往往存在一些重叠, 各校对课程范围的划分也不尽相同, 本书尽量避免这些不必要的矛盾. 比如学习控制理论的时候, 关于线性系统求解问题就不再介绍, 只要查看信号与系统的有关内容就行了. 这样做虽然有些不便, 但可以使读者把各门课程的概念真正连贯起来, 使之融会贯通, 有利于对课程的理解和深化.
(4) MATLAB语言的内容极为丰富, 它的各种函数都与数学领域有关, 低年级学生不可能一下子全部掌握它, 但也不能等学完了所有的数学课程再来使用它, 所以正确的做法是先学一些入门知识, 以后随着数学水平的提高, 随时进行相关函数的学习. 在MATLAB中还有许多工具箱, 它们是用MATLAB基本语句编成的子程序集. 应用工具箱可以更进一步简化编程, 甚至给很复杂的问题提供傻瓜照相式的解决办法. 本书中采用的原则如下:
用最低限度的时间为低年级同学作入门教学, 这反映在本书语言篇的大字部分. 小字部分可以以后再看.
在第5, 6两章中, 完全采用MATLAB的基本(即matlab子目录下的)命令集, 不用工具箱. 使读者懂得如何使用基本命令来进行编程.
在第7, 8两章中, 随着问题的深化, 不用工具箱已经不利于学生的思维, 因此就介绍了信号处理工具箱和控制工具箱. 其实MATLAB的学生版已包括这两个工具箱以及符号数学工具箱. 考虑到本书面向本科学生, 因此避开了这两门课程中较深的问题.
MATLAB的工具箱有很多种. 除了信号处理工具箱和控制工具箱是必要的之外, 我们还介绍了其他一些与电子信息学科有密切关系的工具箱. 这些工具箱并不是学习课程必须掌握的, 但它可以帮助读者开拓思路. 比如如何用MATLAB解决那些用笔算几乎无法解决的问题, 并且知道如何去寻找解决这些问题的方法和工具.
上面所说的这些原则决定了本书是一本面向大学教育. 本科课程的教材, 而不是工程师们拿来就用的手册, 但对想搞清原理的工程师们仍有很好的参考价值.
本书分为两篇, 第1篇包括第1章~第4章, 介绍MATLAB语言的基础, 第2篇为第5章~第9章, 讨论MATLAB在大学电子信息类各专业基础课程中的应用. 第1章~第4章及第8章. 第9章由陈怀琛编写, 吴大正负责第5章和第6章的选材和审校, 高西全编写第7章, 由陈怀琛负责全书的修改审定. 欢迎读者对本书提出批评和建议, 来信请寄到:西安电子科技大学137信箱(邮编710071), 陈怀琛.
电话: (029)8202988, 电子邮件地址:hchchen@xidian.edu.cn
本书的全部程序装成一张软盘, 可邮购(30元)或网购(15元). 读者可汇款到:西安电子科技大学137信箱(邮编710071), 林华收. 写明邮址或网址即可.