中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) 附录B用MatLab进行数字信号处理 一、 Matlab简介 在科学研究和工程应用中,往往要进行大量的数学计算,这些运算一般来说难以用手工 精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。目前流行用Basic、Fortran 和c语言编制计算程序,既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语 法及编程技巧。在本讲义的附录一中,提供了一部分算法的C代码,但这些功能代码段仅 仅是在数字信号处理过程中一个很小的部分。一方面实验时间有限,另一方面,各个专业的 同学对编程有不同程度的要求。往往实验的大部分时间用来调试程序,真正用于理解课程内 容的时间相对被压缩。 为克服上述困难,美国Mathwork公司于1967年推出了"Matrix Laboratory"(缩写为 Matlab)软件包,并不断更新和扩充,是一种功能强、效率高便于进行科学和工程计算的交 互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化 等应用程序,并集应用程序和图形于一便于使用的集成环境中。在此环境下所解问题的 Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。 虽然Matlab作为一种新的计算机语言,但由于使用Matlab编程运算与人进行科学计算 的思路和表达方式完全一致,所以不象学习其它高级语言-如Basic、Fortran和C等那样难 于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题。Matlab语言具有编程 效率高,易学易懂:使用方便:绘图方便等一系列优点。 二、MatLab基本绘图 (一)绘图函数简介 有关MatLab运算、函数、逻辑控制等可以参考一些Matlab的书籍、或参阅多媒体通信 实验室主页中有关MatLab的部分,在本讲义中不再赘述。这里介绍以下MatLab下二维图 形的绘制。下表是MatLab中不同绘图函数的名称和功能简介: 函数名称 函数功能介绍 函数名称 函数功能介绍 Bar 长条图 errorbar 图形加上误差范围 Fplot 较精确的函数图形 polar 极座标图 Hist 累计图 rose 极座标累计图 Stairs 阶梯图 stem 针状图 Fill 实心图 feather 羽毛图 Compass 罗盘图 Quiver 向量场图 Contour 在x-y平面绘制等位线图 Gplot 绘拓扑图 Loglog 双对数坐标曲线 Pcolor 伪彩图 Semilogx x轴对数坐标曲线 Semilogy y轴对数坐标曲线 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.edu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室 (Copyright 2002) 附录 B 用 MatLab 进行数字信号处理 一、 Matlab 简介 在科学研究和工程应用中,往往要进行大量的数学计算,这些运算一般来说难以用手工 精确和快捷地进行,而要借助计算机编制相应的程序做近似计算。目前流行用 Basic、Fortran 和 c 语言编制计算程序, 既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语 法及编程技巧。在本讲义的附录一中,提供了一部分算法的 C 代码,但这些功能代码段仅 仅是在数字信号处理过程中一个很小的部分。一方面实验时间有限,另一方面,各个专业的 同学对编程有不同程度的要求。往往实验的大部分时间用来调试程序,真正用于理解课程内 容的时间相对被压缩。 为克服上述困难,美国 Mathwork 公司于 1967 年推出了"Matrix Laboratory"(缩写为 Matlab)软件包,并不断更新和扩充,是一种功能强、效率高便于进行科学和工程计算的交 互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化 等应用程序,并集应用程序和图形于一便于使用的集成环境中。在此环境下所解问题的 Matlab 语言表述形式和其数学表达形式相同,不需要按传统的方法编程。 虽然 Matlab 作为一种新的计算机语言,但由于使用 Matlab 编程运算与人进行科学计算 的思路和表达方式完全一致,所以不象学习其它高级语言--如 Basic、Fortran 和 C 等那样难 于掌握,用 Matlab 编写程序犹如在演算纸上排列出公式与求解问题。Matlab 语言具有编程 效率高,易学易懂;使用方便;绘图方便等一系列优点。 二、 MatLab 基本绘图 (一)绘图函数简介 有关 MatLab 运算、函数、逻辑控制等可以参考一些 Matlab 的书籍、或参阅多媒体通信 实验室主页中有关 MatLab 的部分,在本讲义中不再赘述。这里介绍以下 MatLab 下二维图 形的绘制。下表是 MatLab 中不同绘图函数的名称和功能简介: 函数名称 函数功能介绍 函数名称 函数功能介绍 Bar 长条图 errorbar 图形加上误差范围 Fplot 较精确的函数图形 polar 极座标图 Hist 累计图 rose 极座标累计图 Stairs 阶梯图 stem 针状图 Fill 实心图 feather 羽毛图 Compass 罗盘图 Quiver 向量场图 Contour 在 x-y 平面绘制等位线图 Gplot 绘拓扑图 Loglog 双对数坐标曲线 Pcolor 伪彩图 Semilogx x 轴对数坐标曲线 Semilogy y 轴对数坐标曲线 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) (二)Stem函数绘图 各种不同的绘图函数分别适用于不同的场合,使用“stm”绘制针状图最简单,从附录 中提供的MatLab原代码可以看出,只需要将需要绘制的数据存放在一个数组中,然后将这 个数组作为参数传递给“stem”函数就可以得到输出图形。例如,下面的代码可以绘制正弦 函数的图形: n=1:50 %定义序列的长度是50 x=zeros(1,50); %注意:MATLAB中数组下标从1开始 x1=1; %冲击函数 stem(x方 %绘制函数图形 得到的函数图形如下图所示: 0.8 0.6 0.4 0.2 0 (三)PIot函数绘图 当然,在某些时候针状图的显示效果并不是非常理想,这时候,我们通常采用“plot” 函数绘制图形。“plot”函数功能非常强大,输入以下内容 X =-pi:.1:pi; y=sin(x方 plot(x,y) 可以绘制正弦函数的图形如下图所示: 0.6 0.6 0.4 0.2 0.2 -0.4 06 0.6 -2 -1 0 2 如果输入以下代码,则可以同时得到正弦函数和余弦函数的图形。 plot(x,sin(x),X,cos(x),%同时绘制两条曲线 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.cdu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室 (Copyright 2002) (二)Stem 函数绘图 各种不同的绘图函数分别适用于不同的场合,使用“stem”绘制针状图最简单,从附录 中提供的 MatLab 原代码可以看出,只需要将需要绘制的数据存放在一个数组中,然后将这 个数组作为参数传递给“stem”函数就可以得到输出图形。例如,下面的代码可以绘制正弦 函数的图形: n=1:50; %定义序列的长度是 50 x=zeros(1,50); %注意:MATLAB 中数组下标从 1 开始 x(1)=1; %冲击函数 stem(x); %绘制函数图形 得到的函数图形如下图所示: (三)Plot 函数绘图 当然,在某些时候针状图的显示效果并不是非常理想,这时候,我们通常采用“plot” 函数绘制图形。“plot”函数功能非常强大,输入以下内容 x = -pi:.1:pi; y = sin(x); plot(x,y) 可以绘制正弦函数的图形如下图所示: 如果输入以下代码,则可以同时得到正弦函数和余弦函数的图形。 plot(x, sin(x), x, cos(x)); %同时绘制两条曲线 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) (四)图形的修饰 在绘制图形的过程中我们可以用其他函数调整图形坐标、坐标轴标题等和图形有关的信 息,以下是一个操作示例: x=linspace(0,2*pi,100);%100个点的x座标 close all; %关闭所有己经打开的图形视窗 plot(x,sin(x),x,cos(x);%同时绘制两条曲线 图形完成後,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0,6,-1.2,1.2])5 此外,MATLAB也可对图形加上各种注解与处理: xlabel('Input Value); %x轴注解 ylabel(Function Value');%y轴注解 title("Two Trigonometric Functions'); %图形标题 legend(y sin(x)','y cos(x)); %图形注解 grid on; %显示格线 Two Trigonometric Functions 0.8 06 0.4 0.2 102um -0.2 0.4 --4H4 -0.6 -0.8 -1 6 Input Value 经过这些处理以后,可以得到一张十分美观的函数图形,当然图形可以进一步处理得到个性 化的结果,有兴趣的同学可以查阅MatLab有关书籍或MatLab联机帮助中的有关部分。这 里再介绍一个十分有用的函数“subplot'”,该函数用来同时画出数个小图形於同一个视窗之 中,请大家自己在MatLab中输入以下命令,并看一下显示的结果: subplot(2,2,1);plot(x,sin(x)); subplot(2,2,2);plot(x,cos(x)); subplot(2,2,3);plot(x,sinh(x)); subplot(2,2,4);plot(x,cosh(x)); 三、MatLab联机帮助的使用 联机帮助是任何软件十分重要的一个部分,对于没有系统学习过MatLab的同学来说, 学会如何使用MatLab的联机帮助是非常必要的。MatLab提供两种格式的联机帮助,一种 是HTML文件,可以用浏览器来查看:另一种是PDF文件,需要由MatLab提供的阅读工 具来查看和搜索。以下分别介绍这两种格式联机帮助的调用方法和操作示例。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.cdu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室 (Copyright 2002) (四)图形的修饰 在绘制图形的过程中我们可以用其他函数调整图形坐标、坐标轴标题等和图形有关的信 息,以下是一个操作示例: x=linspace(0, 2*pi, 100); %100 个点的 x 座标 close all; %关闭所有已经打开的图形视窗 plot(x, sin(x), x, cos(x)); %同时绘制两条曲线 图形完成後,我们可用 axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围: axis([0, 6, -1.2, 1.2]); 此外,MATLAB 也可对图形加上各种注解与处理: xlabel('Input Value'); %x 轴注解 ylabel('Function Value'); %y 轴注解 title('Two Trigonometric Functions'); %图形标题 legend('y = sin(x)','y = cos(x)'); %图形注解 grid on; % 显示格线 经过这些处理以后,可以得到一张十分美观的函数图形,当然图形可以进一步处理得到个性 化的结果,有兴趣的同学可以查阅 MatLab 有关书籍或 MatLab 联机帮助中的有关部分。这 里再介绍一个十分有用的函数“subplot”,该函数用来同时画出数个小图形於同一个视窗之 中,请大家自己在 MatLab 中输入以下命令,并看一下显示的结果: subplot(2,2,1); plot(x, sin(x)); subplot(2,2,2); plot(x, cos(x)); subplot(2,2,3); plot(x, sinh(x)); subplot(2,2,4); plot(x, cosh(x)); 三、 MatLab 联机帮助的使用 联机帮助是任何软件十分重要的一个部分,对于没有系统学习过 MatLab 的同学来说, 学会如何使用 MatLab 的联机帮助是非常必要的。MatLab 提供两种格式的联机帮助,一种 是 HTML 文件,可以用浏览器来查看;另一种是 PDF 文件,需要由 MatLab 提供的阅读工 具来查看和搜索。以下分别介绍这两种格式联机帮助的调用方法和操作示例。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) (一)HTML格式联机帮助的查询 HTML格式的帮助文件利用浏览器作为工具进行阅读和搜索,十分符合生活于网络环 境技术人员的胃口,首先推荐使用这种格式的联机帮助。调用联机帮助需要打开MatLab中 “Help”菜单的“Help Desk(HTML)”子选项。则MatLab打开缺省的浏览器并装载MatLab 帮助文件索引,现在可以根据该HTML文件中显示的内容索引按类查找信息,也可以在“G0 To MATLAB function”输入框的位置输入需要搜索的关键字进行搜索。 MATLAB Help Desk Microsoft Internet Explorer 回☒ 文件)编辑) 查看y)收藏A)工具) 帮助如 t地址@)e]C:\apps'Matlab(help(helpdesk.html ⊙转到 链接” U上山I51工U KCI. MATLAB 4 to 5 Optimization.Toolbox Ref. Go to MATLAB function: Power System Blockset Go Ref. Signal Processing Toolbox Ref. System Identification Full-text Search Toolbox Ref. Online Ianuals (in PDF) TL (二)PDF格式联机帮助的查询 PDF文件也是一种非常流行的文件格式,象Oracle、3COM等其他行业的大公司,其产 品文档中一般都提供该格式。MatLab也不例外,在MatLab中调用PDF格式的联机帮助需 要打开“Help”菜单中的“Help Window”子选项。MatLab回打开一个PDF文件阅读器, 在这里面,和HTML情况下类似,可以按照内容分类查找有关信息:也可以在左上角的输 入框中输入查找关键字进行内容的搜索。 √MATLAB He1 p Window ▣× stem See also Go to Help Desk Back Forward Home Tips Close STEM Discrete se or "stem" STEM(Y) plot `stoms from theaxis data value STEM(X,Y)plots the data sequence Y at the values specfied 1n. STEM(....'filled')produces a stem plot with filled marker STEM(....'LINESP uses the linetype specifed for the st markers. See PLOT for possibilities. MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除()的数学运算符号,以及 幂次运算(A) 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.cdu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室 (Copyright 2002) (一)HTML 格式联机帮助的查询 HTML 格式的帮助文件利用浏览器作为工具进行阅读和搜索,十分符合生活于网络环 境技术人员的胃口,首先推荐使用这种格式的联机帮助。调用联机帮助需要打开 MatLab 中 “Help”菜单的“Help Desk(HTML)”子选项。则 MatLab 打开缺省的浏览器并装载 MatLab 帮助文件索引,现在可以根据该 HTML 文件中显示的内容索引按类查找信息,也可以在“Go To MATLAB function”输入框的位置输入需要搜索的关键字进行搜索。 (二)PDF 格式联机帮助的查询 PDF 文件也是一种非常流行的文件格式,象 Oracle、3COM 等其他行业的大公司,其产 品文档中一般都提供该格式。MatLab 也不例外,在 MatLab 中调用 PDF 格式的联机帮助需 要打开“Help”菜单中的“Help Window”子选项。MatLab 回打开一个 PDF 文件阅读器, 在这里面,和 HTML 情况下类似,可以按照内容分类查找有关信息;也可以在左上角的输 入框中输入查找关键字进行内容的搜索。 MATLAB 认识所有一般常用到的加(+)、减( -)、乘(*)、除(/)的数学运算符号,以及 幂次运算(^) 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn
中国科学技术大学电子工程与信息科学系多媒体通信实验室(Copyright2002) (三)Matlab6.1中的帮助 Matlab6.1中的帮助和Matlab5.3中的帮助使用类似。点击主界面菜单“help”中的“MATLAB help”则可以使用帮助(如果需要查询某个函数的语法,可以选择“Index”部分)。 Help 日▣☒ File Edit View Go Web Hindow Help Help Navigator X ◆昌Find in page: Go oduct fiter:All Selected Select MATLAB Function Reference:stem Add to Favorites Contents Index Search Fav MATLAB Function Reference 图由 Search index for: stem stem [1] Plot discrete sequence data 8 stem [1] Syntax stem [2] stem plot,example stem (r) stem plots stem (Y) 3-D stem (...,'fill') stem (...LineSpec) overlaid with line plot h stem(..) stem3 [1] stem3 [2] Description stem3 131 hwn-dimoncional ctom nlnt dienlave Ready 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系network@ustc.cdu.cn cxh@ustc.cdu.cn
中国科学技术大学电子工程与信息科学系 多媒体通信实验室 (Copyright 2002) (三)Matlab6.1 中的帮助 Matlab6.1 中的帮助和 Matlab5.3 中的帮助使用类似。。点击主界面菜单“help”中的“MATLAB help”则可以使用帮助(如果需要查询某个函数的语法,可以选择“Index”部分)。 如果您在阅读过程中发现疏漏和错误,请您尽快和编者取得联系 network@ustc.edu.cn cxh@ustc.edu.cn