基于MATLAB的信号分析与处理汇总.docx

上传人:b****6 文档编号:8653867 上传时间:2023-02-01 格式:DOCX 页数:26 大小:226.68KB
下载 相关 举报
基于MATLAB的信号分析与处理汇总.docx_第1页
第1页 / 共26页
基于MATLAB的信号分析与处理汇总.docx_第2页
第2页 / 共26页
基于MATLAB的信号分析与处理汇总.docx_第3页
第3页 / 共26页
基于MATLAB的信号分析与处理汇总.docx_第4页
第4页 / 共26页
基于MATLAB的信号分析与处理汇总.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于MATLAB的信号分析与处理汇总.docx

《基于MATLAB的信号分析与处理汇总.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的信号分析与处理汇总.docx(26页珍藏版)》请在冰豆网上搜索。

基于MATLAB的信号分析与处理汇总.docx

基于MATLAB的信号分析与处理汇总

基于MATLAB的信号分析与处理

第一节MATLAB快速入门

一MATLAB操作入门

MATLAB是MATrixLABoratory(矩阵实验室)的缩写,是由美国MathWorks公司于20世纪80年代初推出的一套以矩阵计算为基础的、适合多学科、多种工作平台的功能强劲的大型软件.MATLAB将数值计算、可视化和编程功能集成在非常便于使用的环境中,具有编程效率高、用户使用方便、扩充能力强、移植性好等特点.经过MathWorks公司的不断完善,目前MATLAB已经发展成为国际上最优秀的高性能科学与工程计算软件之一.

1、启动(Windows操作平台)

Ø双击桌面上MATLAB的快捷方式或程序里MATLAB选项即可启动MATLAB.

2、MATLAB环境

启动MATLAB后对话框如下图(图1),它大致包括以下几个部分:

图1

1)菜单栏------单击即可打开相应的菜单;在MATLAB6.5主窗口的菜单栏,共包含File、Edit、View、Web、Window和Help6个菜单项。

(1)File菜单项:

File菜单项实现有关文件的操作。

“New”命令下的“M-file”选项表示新建一个M文件,该命令将打开MATLAB的M文件编辑/调试器。

通过M文件编辑/调试器,用户可以创建自己的M文件,也可以编辑已有的M文件并调试MATLAB程序。

“Figure”选项表示新建一个图形窗口。

(2)Edit菜单项:

Edit菜单项用于命令窗口的编辑操作。

(3)View菜单项:

View菜单项用于设置MATLAB集成环境的显示方式。

(4)Web菜单项:

Web菜单项用于设置MATLAB的Web操作。

(5)Window菜单项:

主窗口菜单栏上的Window菜单,只包含一个子菜单Closeall,用于关闭所有打开的编辑器窗口,包括M-file、Figure、Model和GUI窗口。

(6)Help菜单项:

Help菜单项用于提供帮助信息。

2)工具栏------使用它们能使操作更快捷;

3)CommandWindow(命令窗口)------用来输入和显示计算结果,其中符号“>>”表

示等待用户输入;在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。

在命令窗口中实现管理功能的常用命令有:

>>cd

显示当前工作目录;

>>dir

显示当前工作目录或指定目录下的文件;

>>clc

清除命令窗口中的所有内容;

>>clf

清除图形窗口;

>>quit(exit)

退出MATLAB;

>>typetest

在命令窗口中显示文件test.m的内容

>>deletetest

删除文件test.m;

>>whichtest

显示test.m的目录;

>>what

显示当前目录或指定目录下的M、MAT、MEX文件.

4)Workspace(工作区窗口)------存储着命令窗口输入的命令和所有变量值;工作空间是MATLAB用于存储各种变量和结果的内存空间。

在该窗口中显示工作空间中所有变量的名称、大小、字节数和变量类型说明,可对变量进行观察、编辑、保存和删除。

5)CurrentDirectory(当前目录选择窗口)------显示当前路径.

3、MATLAB的帮助系统

MATLAB的帮助系统提供帮助命令、帮助窗口等帮助方法.

(1)帮助命令help

假如准确知道所要求助的主题词,或指令名称,那么使用help命令是获得在线帮助的最简单有效的途径.例如要获得关于函数sin使用说明的在线求助,可键入命令

>>helpsin

将显示

SINSine.

SIN(X)isthesineoftheelementsofX.

Overloadedmethods

helpsym/sin.m

(2)帮助窗口(图2)

帮助窗口给出的信息按目录编排,比较系统,便于浏览与之相关的信息,其内容与帮助命令给出的一样,进入帮助窗口的方法有:

♦选取帮助菜单里的“MATLABHelp”或键入命令“helpwin”;

♦双击菜单条上的问号按钮.

图2

第二节变量与函数

一、变量

变量是任何程序设计语言的基本要素之一,MATLAB语言当然也不例外.与一般常规的程序设计语言不同的是,MATLAB语言并不要求对所使用的变量进行事先声明,也不需要指定变量类型,它会自动根据赋予变量的值或对变量进行的操作来确定变量的类型并为其分配内存空间.在赋值过程中,如果变量已存在,MATLAB将使用新值代替旧值,并以新的变量类型代替旧的变量类型.

MATLAB中变量的命名规则是:

1、变量名区分大小写;

2、变量名的长度不超过31位,第31个字符之后的字符将被忽略;

3、变量名必须以字母开头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.

MATLAB中有一些预定义的变量,这些特殊的变量称为常量.

MATLAB语言中的常量

常量名

常量值

常量名

常量值

i,j

虚数单位

realmin

最小可用正实数

pi

圆周率

realmax

最大可用正实数

eps

计算机的最小浮点数

inf

正无穷大,如1/0

NaN

Not-a-Number,非数,特指0/0

flops

浮点运算数

在MATLAB语言中,定义变量时应避免与常量名相同,以免改变常量的值.

与其他程序设计语言相同,MATLAB语言中也存在变量作用域的问题.在未特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其调用的函数内有效.若要定义全局变量,应对变量进行声明,即在该变量前加关键字global.

二、运算符号及标点符号

运算符号:

1、算术运算符(表1)

表1

数学表达式

MATLAB运算符

MATLAB表达式

a+b

+

a+b

a-b

-

a-b

a

b

*

a*b

a

b

/或\

a/b或b\a

ab

^

a^b

2、关系运算符(表2)

表2

数学关系

MATLAB运算符

数学关系

MATLAB运算符

小于

<

大于

>

小于或等于

<=

大于或等于

>=

等于

==

不等于

~=

3、逻辑运算符(表3)

表3

逻辑关系

MATLAB运算符

|

标点符号:

MATLAB中标点符号的含义是:

1、在命令窗口中输入一个MATLAB语句(语句的一般形式为:

变量=表达式),如果语句后为逗号或无标点符号,则在命令窗口中显示该语句的计算结果;如果语句后为分号,MATLAB只进行计算,不在命令窗口中显示计算结果.如果要查看计算结果,只需要在命令窗口中输入变量名按回车键或打开工作空间双击选中的变量即可.

2、在MATLAB的命令窗口中输入一个表达式或利用MATLAB进行编程时,如果表达式太长,可以用续行符号“…”将其延续到下一行.

3、编写MATLAB程序时,通常利用符号“%”对程序或其中的语句进行注释.

三、函数

MATLAB语言中最基本最重要的成分是函数.一个函数由函数名、输入变量和输出变量组成.同一个函数,不同数目的输入变量和不同数目的输出变量,均代表不同的含义.这不仅丰富了MATLAB的函数功能,而且大大减少了需要的磁盘空间,使得MATLAB编写的程序简单而且高效.

MATLAB的函数,按照用途,可以分为四类:

标量函数、向量函数、矩阵函数和图形函数.

1、标量函数:

标量函数作用于标量,一般用于简单的数值计算.常用的标量函数有三角函数、指数对数函数、复数函数、截断函数和求余函数等.

三角函数:

sin、cos、tan、cot、sec、csc、asin、acos、atan、acot、asec、acsc、sinh、cosh、tanh、asinh、acosh、atanh;

指数和对数函数:

exp(以e为底的指数函数)、pow2(以2为底的指数函数)、sqrt(正的平方根函数)、realsqrt(正的平方根函数,若输入不是正数则报错)、nthroot(n次方根函数)、log(自然对数函数)、reallog(自然对数函数,若输入不是正数则报错)、log10(以10为底的对数函数)、log2(以2为底的对数函数);

复数函数:

abs(绝对值或复数模)、angle(复数的相角或幅角)、conj(复数共轭)、real(复数实部)、imag(复数虚部)、complex(用实部和虚部构造复数)、isreal(判断是否为实数矩阵).例如:

c=complex(a,b)将根据的a、b构造复数c,复数c的实部为a,复数c的虚部为b.

>>a=[12;34];b=[56;78]

>>c=complex(a,b)

截断和求余函数:

mod(除法求余数,与除数同号)、rem(除法求余数,与被除数同号)、sign(符号函数)、fix(朝零方向取整函数)、floor(向负无穷方向取整函数)、ceil(向正无穷方向取整函数)、round(四舍五入函数)、rats(有理逼近函数).

当一个标量函数作用于向量或矩阵时,是这个标量函数作用于这个向量或矩阵的每一个元素.这个功能将大大方便我们处理成批的数据.

2、向量函数:

MATLAB中有些函数只有当它们作用于行向量或列向量时才有意义,称为向量函数.常用的向量函数:

max(最大值)、min(最小值)、sum(和)、length(长度)、mean(平均值)、median(中数)、prod(乘积)、sort(从小到大排列).例如:

>>x=[0.6833,0.2126,0.8392,0.6288,0.1338,0.2071,0.6072,0.6299,0.3705,0.5751];

>>a=max(x),b=min(x),c=mean(x),d=median(x)

当一个向量函数作用于一个矩阵时会产生一个行向量,这个行向量的每个元素是向量函数作用于矩阵相应列向量的结果.

在MATLAB的统计工具箱中,我们还会学习到许多向量函数.

3、矩阵函数:

MATLAB中有大量的矩阵函数,从其作用来看,可以分为构造矩阵的函数和进行矩阵计算的函数.

4、基本二维图形函数

绘制二维图形时最常用的是plot函数。

(1)plot(y):

当只有一个参数时,plot以该参数的值为纵坐标,横坐标从1开始自动赋值向量【123。

】,向量的方向和长度与参数y相同。

例如

y=[01210];

plot(y)

(2)plot(x,y):

这是最常用的形式。

x为横坐标向量,y为纵坐标向量,例如

t=1:

0.2:

10;

y=sin(t);

plot(t,y)

(3)对数坐标曲线三个函数:

semilogsemilogxloglog可以绘制二维对数坐标曲线,这几个函数的用法与plot函数相同。

例如

t=0:

0.1:

2*pi;

y=sin(t);

semilogx(t,y);

gridon

绘制的横坐标为对数坐标,并用gridon命令为图形窗口添加了网络。

第三节MATLAB的数值计算功能

强大的数值计算功能是MATLAB最具代表性的特点.也正是由于MATLAB具有强大的数值计算功能,MathWorks公司才有能力把MATLAB延伸到不同专业、不同行业和不同部门的各个领域,使其成为世界上最优秀的、应用最为广泛的、最受用户喜爱的数学软件.

一、数组及其运算

1、数组的建立

(1).直接输入数组

建立数组最直接的方法是在命令窗口中直接输入数组.数组元素需要用方括号“[]”括起来,元素之间可以用空格、逗号或分号分隔.需要注意的是,用空格和逗号分隔建立行数组,元素之间全部用分号分隔建立列数组.

(2).利用冒号表达式建立数组,此时不用方括号“[]”.

冒号表达式建立等差数组,它的基本形式为x=x1:

step:

x2,其中x1、step、x2分别为给定数值,x1表示数组的首元素数值,step表示步长,即从第二个元素开始,后一个元素与前一个元素之间的差值,x2表示数组尾元素数值限.注意:

x2并非尾元素数值,当x2-x1为step的整数倍时,x2才是尾元素数值.例如:

>>a=1:

2:

12和>>a=1:

2:

13

注:

(a).如果step=1,可以省略此项的输入,直接写成x=x1:

x2.

(b).如果x10;如果x1>x2,则需要step<0;如果x1=x2,则建立的数组只有一个元素.

(3).线性等分数组的建立

MATLAB提供了函数linspace用来建立线性等分数组,调用格式如下:

y=linspace(x1,x2)建立100维的等分数组,使得y

(1)=x1,y(100)=x2;

y=linspace(x1,x2,n)建立n维的等分数组,使得y

(1)=x1,y(n)=x2.例如:

>>y=linspace(1,100),y=linspace(1,100,6)

线性等分函数和冒号表达式都可以建立等分数组,前者是设定了数组的维数去建立等分数组,后者是通过设定步长建立维数随之确定的等分数组.

(4).对数等分数组的建立

MATLAB中提供了对数等分函数logspace生成等比数组,将此数组取以10为底的对数可生成等差数组.调用格式如下:

y=logspace(x1,x2)生成50维对数等分数组,使得y

(1)=10x1,y(50)=10x2;例如:

>>y=logspace(5,8);

y=logspace(x1,x2,n)生成n维对数等分行数组,使得y

(1)=10x1,y(n)=10x2.

另外,数组还可以从矩阵中抽取,还可以把数组看成1*n阶或n*1阶的矩阵,以矩阵形式生成.由于在MATLAB中矩阵比数组重要的多,此类函数将在矩阵及其运算中详细介绍.

2、数组元素的调用

(1).调用数组的一个元素:

数组的元素可以通过下标调用,如x(i)表示数组x的第i个元素.

(2).调用数组的部分元素:

x(a:

b:

c)表示调用数组x的从第a个元素开始,以步长为b到第c个元素,b可以为负数,b缺省时为1.

(3).直接使用元素序号调用数组元素:

x([abcd])表示调用数组x的第a、b、c、d个元素构成一个新数组[x(a)x(b)x(c)x(d)].

3、数组的运算

(1).数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量进行相应的加、减、乘、除、乘方运算.

设a=[a1a2…an],c=标量,则

a±c=[a1±ca2±c…an±c];

a*c=c*a=a.*c=[a1*ca2*c…an*c]

a/c=a./c=[a1/ca2/c…an/c]

a\c=a.\c=[a1\ca2\c…an\c]

a^c=a.^c=[a1^ca2^c…an^c]

c^a=c.^a=[c^a1c^a2…c^an]

(2).两个相同维数的数组进行加、减、乘、除、幂运算,可按元素对元素的方式进行,不同大小或维数的数组不能进行运算.

设a=[a1a2…an],b=[b1b2…bn],则

a±b=[a1±b1a2±b2…an±bn];

a.*b=[a1*b1a2*b2…an*bn]

a./b=[a1/b1a2/b2…an/bn]

a.\b=[a1\b1a2\b2…an\bn]

a.^b=[a1^b1a2^b2…an^bn]

(3).两个相同维数的数组的点积由dot函数实现,调用格式:

dot(a,b).

(4).两个三维数组之间的向量积由cross函数实现,调用格式:

cross(a,b).

二、矩阵及其运算

由于MATLAB的数值计算功能都是以(复)矩阵为基本单元进行的,因此,MATLAB中矩阵的运算可谓最全面、最强大.本小节将对矩阵及其运算进行详细的阐述.

1、矩阵的建立

(1).直接输入小矩阵

在键盘上直接输入矩阵是最方便、最常用和最好的建立数值矩阵的方法,尤其适合较小的简单矩阵.用此方法建立矩阵时,应当注意以下几点:

(a).输入矩阵以“[]”为其标识,即矩阵的元素应在“[]”的内部,此时MATLAB才将其识别为矩阵,如:

a=[123;111;4,5,6]

(b).矩阵的同行元素之间可由空格或逗号分隔,行与行之间用分号或回车符分隔;

(c).矩阵大小可不预先定义;

(d).若不想获得中间结果,在[]后可用分号结束;

(e).无任何元素的空矩阵也合法;

(f).矩阵元素可以为运算表达式,如b=[sin(pi/3),cos(pi/4);log(9),tanh(6)].

(2).当矩阵很大,不适合在命令窗口直接输入时,可以使用MATLAB提供的矩阵编辑器来完成矩阵的输入和修改.在使用矩阵编辑器时,必须首先在命令窗口中预先定义一个变量,这个变量可以是数或简单的矩阵.例如在命令窗口中输入A=1,打开工作空间窗口,选中变量A双击,就可以打开矩阵A的编辑器,通过添加或修改原来的元素,从而建立起我们需要的矩阵.

(3)、通过M文件建立大矩阵

当矩阵的规模比较大,直接输入法就显得笨拙,出现差错也不易修改.为了解决此问题,可以通过M文件输入矩阵.M文件是一种可以在MATLAB环境中运行的文本文件,分为命令文件和函数文件两种.这里是用命令M文件来建立大型矩阵.从菜单栏的File中选择New,再选择M-file命令,打开MATLABEditor窗口,按格式把所要输入的矩阵写入一文本文件中,并将此文件以m为扩展名,即为M文件.在MATLAB命令窗口中输入此M文件名,运行后则把M文件中的大型矩阵输入到MATLAB的内存中.

例如:

编制一名为example.m的M文件,内容如下:

A=[456468873257955;21,687,54488813;6546568898215]

在MATLAB命令窗口输入:

>>example%将矩阵A调入到MATLAB的内存中

说明:

M文件要保存在MATLAB的搜索路径上,才能在MATLAB的命令窗口中调用.

三、多项式运算

1、多项式的建立

在MATLAB中多项式P(x)=a0xn+a1xn-1+…+an-1x+an由行向量P=[a0,a1,…,an-1,an]表示,这样就把多项式的问题转化为向量的问题.

(1).由系数向量建立多项式:

在MATLAB中,由于多项式是以向量形式储存的,因此,建立多项式的最简单的方法是直接输入向量,MATLAB自动将向量元素按降幂顺序分配给多项式的各系数值,向量可以为行向量,也可以是列向量.

例:

输入多项式x3-5x2+6x-33.

>>p=[1-56-33];

(2).特征多项式的建立:

矩阵的特征多项式由函数poly实现.

>>A=[123;234;345];p=poly(A)

(3).由多项式的根建立多项式:

由给定的根建立相应的多项式也由函数poly实现.

>>root=[-5-3+4i-3-4i];p=poly(root)

2、多项式的运算

(1).求多项式的值.求多项式的值有两种形式,对应着两种算法:

一种是以数组为计算单元,此时的计算函数是polyval,调用格式为y=polyval(p,x),其中p为行向量形式的多项式,x为代入多项式的值,它可以是标量、向量、矩阵.如果x是向量或者矩阵,该函数将对向量或者矩阵的每一个元素计算多项式的值.另一种是以方阵为计算单元,进行矩阵运算,求得矩阵多项式的值,此时的计算函数为polyvalm.这两种计算的差别是源于数组运算和矩阵运算的差别.

>>p=[11155125];x=[11;22];

>>a=polyval(p,x)

>>b=polyvalm(p,x)

(2).求多项式的根.求多项式的根有两种方法,一种是直接调用MATLAB的函数roots求多项式的所有根;另一种是通过先建立多项式的伴随矩阵再求其特征值的方法得到多项式的所有根.

例:

用两种方法求解方程2x4-5x3+6x2-x+9=0的所有根.

>>p=[2-56-19];roots(p)

>>a=compan(p),eig(a)

(3).多项式的乘除法运算.多项式的乘法由函数conv实现,多项式的除法由函数deconv来实现.

>>p1=[2-56-19];p2=[3-90-18];

>>p=conv(p1,p2)%多项式乘法

>>[q,r]=deconv(p,p2)%多项式除法

(4).多项式的微分.函数polyder可以实现多项式的微分计算.

>>c=[413282718];

>>q=polyder(c)

>>q=polyder(a,b)%求a*b的导数

>>[q,d]=polyder(a,b)%求a/b的导数

(5).多项式的拟合.多项式拟合是多项式运算的一个重要组成部分,在工程及科研工作中都得到了广泛的应用.MATLAB提供了专用的拟合函数polyfit.其调用格式如下:

polyfit(X,Y,n)其中X,Y为拟合数据,n为拟合多项式的阶数.

[p,s]=polyfit(X,Y,n)其中p为拟合多项式系数向量,s为误差估计数组.

例:

用4次多项式对[0,pi/2]上的正弦函数进行最小二乘拟合.

>>x=0:

pi/20:

pi/2;y=sin(x);%获得[0,pi/2]上的数据点

>>a=polyfit(x,y,4)%进行多项式拟合.

第四节MATLAB的图形功能

在进行数值计算的过程中,为了从直观上认识计算结果,可以通过MATLAB的图形功能将计算结果图形化.MATLAB是通过描点、连线来作图的,因此,在作二维图形和三维图形之前,必须先取得该图形上一系列点的坐标,然后利用MATLAB函数作图.下面着重介绍二维图形的画法,对三维图形只作简单叙述.

一、二维图形

二维图形的绘制是MATLAB图形功能的基础,也是在绝大多数数值计算中广泛应用的图形方式之一.

1、基本绘图命令

(1).plot命令绘制二维图形最常用的命令是plot.对于不同形式的输入,该函数可以实现不同的功能.

(i).当plot函数仅有一个输入变量时:

plot(X)

如果X为实向量,则以X的索引坐标作为横坐标,以X的各元素作为纵坐标绘制图形.如果X为复向量,则以X的实部作为横坐标,虚部作为纵坐标绘制图形.如果X为实数矩阵,则绘制X的列向量对其坐标索引的图形.如

>>X=[00.50.750.950.80.35];plot(X)%图4.1

>>X=[1+2i,2+4i,3+2i,5+i,6+4i];plot(x)%图4.2

图4.1图4.2

(ii).当plot函数有两个输入变量时:

plot(X,Y)

当X和Y为向量时,X和Y的维数必须相同,而且同时为行向量或同时为列向量.此时以第一个向量的分量为横坐标,第二个向量的分量为纵坐标绘制图形,这是实际应用过程中最为常用的.例如:

>>x=0:

0.01*pi:

pi;y=sin(x).*cos(x);%注意:

此处的.*表示两个向量对应元素的乘积.

>>plot(x,y)

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1