MATLAB的数字处理命令.docx

上传人:b****3 文档编号:4000641 上传时间:2022-11-27 格式:DOCX 页数:27 大小:31.29KB
下载 相关 举报
MATLAB的数字处理命令.docx_第1页
第1页 / 共27页
MATLAB的数字处理命令.docx_第2页
第2页 / 共27页
MATLAB的数字处理命令.docx_第3页
第3页 / 共27页
MATLAB的数字处理命令.docx_第4页
第4页 / 共27页
MATLAB的数字处理命令.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

MATLAB的数字处理命令.docx

《MATLAB的数字处理命令.docx》由会员分享,可在线阅读,更多相关《MATLAB的数字处理命令.docx(27页珍藏版)》请在冰豆网上搜索。

MATLAB的数字处理命令.docx

MATLAB的数字处理命令

附录1MATLAB使用简介

MATLAB(MatrixLabortary)是MathWorks公司于1982年推出的一套高性能的数值计算可视化软件。

它集数值分析、矩阵运算、信号处理和图形显示于一体,构成一个方便且界面友好的用户环境。

1、命令窗口

点击桌面上的MATLAB图标,或是点击开始程序MATLAB组中的相应程序项,运行进入MATLAB,呈现出来标题为CommandWindow的窗口就是命令窗口。

命令窗口是与MATLAB编译器相联接的主窗口,当其中显示符号“>>”时,就代表系统已处于接受命令的状态(“>>”就是命令提示符),这是就可以直接在该窗口输入所编写的命令或源程序,然后按回车键运行。

例如,在命令窗口中输入一个3*3的矩阵:

>>A=[123;456;7810]

按回车键,MATLAB就会返回如下结果:

A=

123

456

7810

要对此矩阵求逆,只需输入:

>>B=inv(A)

然后按回车键,MATLAB就会返回相应结果:

B=

-0.6667-1.33331.0000

-0.66673.6667-2.0000

1.0000-2.00001.0000

1.1命令的编辑

使用方向键及控制键等功能键可以编辑修改已输入的命令。

例如,如果错误地输入了:

>>r=sqt(9+25)/2

由于将sqrt错拼成sqt,MATLAB就会返回如下信息:

?

?

?

Undefinedfunctionorvariable'sqt'.

可以不必重新输入一行新命令,只需简单地使用键盘上的向上方向键就可回到先前输入错误的那一行进行修改。

在MATLAB中输入的命令都会保留在一个存储器中,可以利用某些功能键调用先前输入的命令。

在MATLAB6.x和7.x版本中,还可以从专门的CommandHistory窗口中再次运行前面输入的命令。

1.2中断正在执行的命令

在MATLAB环境下可以通过按Ctrl+c组合键来中断正在执行的命令或程序。

1.3Format命令

用format命令可以控制数值在屏幕上的显示方式,通过关键字format后面跟上不同的参数,就可以设置不同的显示方式。

这些命令只会改变数值的显示,并不会对数值本身造成影响。

1.4续行符

如果命令超过一行,利用一个空格加“…”,然后按回车键就可以跳到下一行继续命令的输入。

各符号间的空格可有可无,但增加空格能增加可读性。

注意,一行中最多能输入4096个字符。

2、M文件简介

MATLAB的源程序都是以扩展名为m的文件来存放的。

这种.m文件(或称m文件)其实就是一个纯文本文件,它采用的是MATLAB所特有的一套语言及语法规则。

本书应用MATLAB进行信号处理实际上就是通过编辑和运行这种.m文件来完成的。

.m文件有两种写法,一种称为脚本(Script),就像批处理文件一样,包含了一连串的MATLAB命令,执行时依序进行;另一种称为函数(Function),与在命令行中输入的命令一样,函数能接收输入的参数,然后执行并输出结果。

2.1当前工作目录与搜索路径

在编辑和运行.m文件之前,还有一个很重要的工作要做,就是设置MATLAB的当前工作目录和搜索路径。

MATLAB有一个专门用以搜索.m的路径搜索器。

.m文件是以目录或文件夹的方式分布于硬盘的文件系统中的,有一部分.m文件的目录是MATLAB所安装目录的子目录。

如果在MATLAB命令窗口中输入字符串xxx,MATLAB编译器会按顺序尝试解释它:

(1)把xxx作为一个参数或变量去搜索;

(2)检查xxx是否为一个内置的函数;

(3)在默认的目录(即当前工作目录CurrentDirectory)下搜索文件名为xxx.m的文件;

(4)在搜索路径的所有目录中搜索文件名为xxx.m的文件。

如果多个函数具有相同的名称,那么只有搜索到的第一个函数会执行,其他函数会被认为不存在而不被执行。

2.2设置MATLAB的当前工作目录

首先建立一个目录作为自己的工作目录,用来存放自己编辑的.m源程序文件。

MATLAB中有一个当前工作目录设置,用以缺省地存放当前操作中的.m文件等(也就是说,当用户保存一个.m文件时,直接出现的文件保存对话框就是让用户保存在这个当前的目录中,当然用户也可以保存到其他目录中去)。

在Windows版本的MATLAB系统中,最初默认的当前工作目录是MATLAB安装目录下的work子目录,它也可以在桌面上MATLAB快捷方式中设定:

在MATLAB快捷方式上单击鼠标右键,再选择“属性”,通过修改“起始位置”在改变当前工作目录。

也可以采用以下方法设置当前工作目录:

(1)对于MATLAB6.x或7.x版本,直接点命令窗口的上排工具栏右边CurrentDirectory文本框边上的“…”按钮,将建立的自己的工作目录设为当前工作目录。

(2)通过在命令窗口中输入类似于DOS下的cd命令来似的MATLAB系统的当前工作目录转到所需的目录中去。

比如:

输入“cdc:

\matlab”命令即刻将当前的工作目录设为c:

\matlab目录。

2.3MATLAB搜索路径

path(path,s)命令,添加一个目录s到当前搜索路径中去。

addpaths同上面的命令一样。

rmpaths:

删除搜索路径中的s目录。

在MATLAB6.x或7.x版本中,还可以通过菜单File中的SetPath来添加路径。

2.4设置当前工作目录及搜索路径的必要性

设置当前工作目录及搜索路径的好处在于,以后在MATLAB中就可以直接调出所编的.m文件,比如只需输入.m的文件名即可运行,不必给出全部路径,因为MATLAB系统会按照前面我们提到过的顺序来自动搜索并找到这个.m源文件的准确位置。

当你输入一个.m文件名运行它时,MATLAB是先到一设置好的得当前工作目录中去寻找该.m文件,如果没有找到,MATLAB再到一设置好的搜索路径的目录列表中去查找,按从上到下、从高到底的顺序一个目录一个目录地去寻找,找到则立即执行,没有找到则报错提示。

2.5.M文件的编辑和运行

2.5.1.M文件的建立和保存

因为.m文件实际上是一个纯文本文件,因此它可以用任何纯文本编辑器进行编辑,比如记事本等,但在MATLAB自带的编辑器(编辑/调试器,Editor/Debugger)中编辑最为方便,并且便于运行。

新建.m文件的方法是:

在命令窗口中点击File菜单中的New→M-file,或直接点击上面一排工具栏中最左边的空白纸“NewM-file”按钮。

或者直接在命令窗口中输入edit命令,就可以打开空白的MATLAB编辑/调试器窗口,开始编写并最后保存.m文件了。

注意:

保存.m文件所用的文件名不能以数字开头,其中不能包含中文字,也不能包含+-^空格等特殊字符(但可以包含下划线),也不能与当前工作空间中的参数、变量、元素同名,而且也不能与MATLAB系统固有的内部函数(如sin,exp等)同名,否则运行时会出错或者得不到所希望的结果。

2.5.2文件的编辑和查看

假定要进行编辑的.m文件的文件名为aaa.m,在MATLAB命令窗口中直接输入editaaa或editaaa.m即可打开aaa.m文件进行编辑和查看。

MATLAB编辑器提供彩色高亮显示的功能,所输入的文字会自动根据其文字特性而以不同的颜色显示:

说明与注释-----绿色;关键字---蓝色;未完成的字符串---红色;已完成的字符串---棕色;其他文字----黑色。

如果只要查看aaa.m的源代码,可用typeaaa即可。

2.5.3M文件的运行:

直接在命令窗口中输入文件名。

3、在线帮助

3.1help命令

当你读程序时不知一个函数是什么意思时,采用该命令。

比如,你不知道sqrt是什么意思,可以在命令窗口中输入:

>>helpsqrt

命令窗口会显示:

SQRTSquareroot.

SQRT(X)isthesquarerootoftheelementsofX.Complex

resultsareproducedifXisnotpositive.

3.2lookfor命令

当你想拟合某种数据而不知用那个函数时,你可以查与“fit”有关的函数,输入

>>lookforfit

MATLAB会显示所有与fit有关的函数及解释:

GRIDDATADatagriddingandsurfacefitting.

GRIDDATA3Datagriddingandhyper-surfacefittingfor3-dimensionaldata.

GRIDDATANDatagriddingandhyper-surfacefitting(dimension>=2).

POLYFITFitpolynomialtodata.

你可以选择与你有关的函数应用。

4、流程控制:

4.1if语句

if语句用来检查逻辑运算、逻辑函数、逻辑表达式的真假,若为真,则执行下面的命令或运算,否则跳过下面的命令或运算块。

If语句的写法为:

if逻辑表达式

运算命令

end

当条件符合时,MATLAB会执行运算命令,这组执行命令的结束必须用end关键字来表示。

如果想让运算命令在相反的条件下才执行,则可以使用else关键字,其写法为:

if逻辑表达式

运算命令一

else

运算命令二

end

在MATLAB中也可用elseif关键字来写嵌套条件判断式,其写法为:

if逻辑表达式一

运算命令一

elseif逻辑表达式二

运算命令二

elseif逻辑表达式三

运算命令三

….

end

4.2switch语句

switch语句是另一种流程控制方法。

在一个程序中,如果必须针对某个变量或逻辑表达式的值来做多种不同的执行,则switch语句比if语句更为方便,而且合理使用switch语句也可以使程序更具有可读性。

Switch语句的语法为:

Switch分支条件(数值或字符串)

Case分支一

运算命令一

case分支二

运算命令二

….

Otherwise

运算命令N

end

由上可见,在基本的switch语句中包含下列元素:

switch:

switch语句的开始,后面紧跟着分支条件。

分支条件可以是一个变量、函数或表达式。

case:

依照switch语句中分支条件的值,不同的case可以定义不同的运算命令。

而紧跟在case后面的就是此case的分支条件值,之后再跟一个或一串运算命令。

otherwise:

若不符合所有case的条件,则程序会执行otherwise后面的运算命令。

end:

switch语句的结束。

4.3while语句

循环的功能在于它可以大量减少重复的程序代码,使程序模块化,并且能强化程序功能。

例如,要计算n!

,在没有实现循环功能的情况下,可能的写法为:

n!

=1*2*3*…*n。

有了循环的功能之后,就可以这样编写:

p=1;x=1;%初始化

p=p*x;x=x+1;%重复作下面的命令,直至x=n

如果需要重复执行某段程序,while和for语句都可以提供这种功能。

While的基本语法如下:

运算命令一

while循环条件

运算命令二

end

其中循环条件也可以是一个数组,如果该数组为空,MATLAB会终止该循环。

4.4for语句

for语句也是循环语句,它用于事先知道循环需要执行几次的情况;如果不知道需要执行几次,则使用while语句。

For语句的一般语法如下:

for计数器=初始值:

增值:

终止值

运算命令

end

该循环会依照计数器的值来决定运算命令的循环次数,其方法是:

一开始计数器设定为初始值,并判断其值是否大于终止值,只有不大于终止值才执行下面的运算命令;下次循环将计数器加上增量,重复对于是否大于终止值的判断,直至计数器大于终止值时跳出循环。

其中如果不给定增量,MATLAB自动取1。

5、数据和函数的可视化

MATLAB中具有丰富的图形绘制函数,包括二维图形绘制、三维图形绘制及通用工具函数等,同时还包括一些专业绘图函数,如绘制条形图、箭形图及等高图等,因而具有强大的绘图功能。

5.1plot基本调用格式

(1)plot(X,’s’)

X为实向量时,以该向量元素的下标为横坐标,元素值为纵坐标,绘出一条连续曲线。

X为实矩阵时,则按列绘制每列元素值相对其下标的曲线。

图中曲线数等于X矩阵的列数。

X为复数矩阵时,则按列分别以元素实部和虚部为纵横坐标绘制多条曲线。

s为用来制定线型、色彩、数据点形状的选项字符串。

(2)plot(X,Y,’s’)

X,Y为同维向量时,绘制以X,Y元素为横、纵坐标的曲线

X为向量,Y为n维矩阵时,绘制多条不同的曲线。

X为这些曲线共同的横坐标。

X为矩阵,Y为向量时,情况与上述相同,只是曲线以Y为共同的纵坐标。

(3)plot(X1,Y1,’s1’,X2,Y2,’s2’)

在一幅图中分别绘制X1,Y1曲线和X2,Y2曲线。

5.2坐标轴设置

在创建图形时,用户可以制定坐标的范围,数据间隔及坐标名称。

用命令axis可以控制坐标轴的刻度和形式。

常用格式如下:

axis([Xmin,Xmax,Ymin,Ymax])

5.3图形标志

图形标志包括图名(Title)、坐标轴名(Label)、图形注释(text)和图例(legend)。

常用格式如下:

title(s)书写图名

xlabel(s)横坐标轴名

ylabel(s)纵坐标轴名

legend(s1,s2,…)绘制曲线所用线形、色彩或数据点形状的图例

text(xt,yt,s)在图面(xt,yt)坐标处书写字符注释

5.4多子图

MATLAB允许用户在同一幅图形窗里布置几幅独立的子图,具体指令为:

Subplot(m,n,k)使m*n幅子图中的第k幅成为当前图

Subplot(m,n,k)的含义是:

图形窗中有m*n幅子图。

K是子图的编号。

子图的序号编排原则是:

左上方为第一幅,向右向下依次排号。

该指令形式产生的子图分割完全按默认自动执行。

subplot产生的子图彼此独立,所有绘图指令都可以在子图中运用。

附录2MATLAB信号处理工具箱函数

函数

说明

波形产生和绘图

chirp

产生扫描频率余弦

diric

产生Dirichlet或周期sinc信号

gauspuls

产生高斯调制正弦脉冲

rulstran

产生脉冲串

rectpuls

产生非周期矩形信号

sawtooth

产生锯齿波或三角波

sinc

产生sinc信号

square

产生方波信号

strips

产生条图

tripuls

产生非周期三角波

滤波器分析与实现

abs

绝对值

angle

相位角

conv

卷积和多项式乘法

conv2

二维卷积

fftfilt

基于FFT重叠加法的数据滤波

filter

递归(IIR)或非递归(FIR)滤波器的数据滤波

filter2

二维数字滤波

filtfilt

零相位数字滤波

filtic

函数filter初始条件确定

freqs

模拟滤波器频率响应

frespace

频率响应的频率空间设置

freqz

数字滤波器频率响应

grpdelay

群延迟

impz

数字滤波器的脉冲响应

latcfilt

格型梯形滤波器的实现

unwrap

相位角展开

zplane

零极点图

IIR滤波器设计----经典和直接法

besself

Bessel(贝塞尔)模拟滤波器设计

butter

Butterworth滤波器设计

cheby1

ChebyshevI型滤波器设计

cheby2

ChebyshevII型滤波器设计

ellip

椭圆滤波器设计

maxflat

最大平坦Butterworth滤波器的设计

yulewalk

递归数字滤波器设计

IIR滤波器阶数的选择

buttord

Butterworth型滤波器阶数的选择

cheb1ord

ChebyshevI型滤波器阶数的选择

cheb2ord

ChebyshevII型滤波器阶数的选择

ellipord

椭圆滤波器阶次的选择

FIR滤波器设计

cremez

复响应和非线性相位等波纹FIR滤波器设计

fir1

基于窗函数的有限冲激响应滤波器设计――标准响应

fir2

基于窗函数的有限冲激响应滤波器设计――任意响应

fircls

多频带滤波的最小方差FIR滤波器设计

fircls1

低通和高通线性相位FIR滤波器的最小方差设计

firls

最小线性相位滤波器设计

firrcos

升余弦FIR滤波器设计

intfilt

插值FIR滤波器设计

kaiserord

用凯塞(Kaiser)窗估计函数fir1参数

remez

Parks-McClellan优化滤波器设计

remezord

Parks-McClellan优化滤波器阶估计

变换

czt

Chirpz-变换

dct

离散余弦变换

dftmtx

离散傅里叶变换矩阵

fft

一维FFT

fft2

二维FFT

fftshift

函数fft和fft2输出的重新排列

hilbert

希尔伯特(Hibert)变换

idct

离散余弦逆变换

ifft

一维逆FFT

ifft2

二维逆FFT

统计信号处理

cohere

两个信号相干函数估计

corrcoef

相关系数矩阵

cov

协方差矩阵

csd

互功率谱密度估计(CSD)

pmem

最大熵功率谱估计

pmtm

多窗口功率谱估计(MTM)

pmusic

特征值向量功率谱估计(MUSIC)

psd

自功率谱密度估计

tfe

传递函数估计

xcorr

互相关函数估计

xcorr2

二维互相关函数估计

xcov

互协方差函数估计

窗函数

bartlett

巴特利斯(Bartlett)窗

blackman

勃莱克曼(Blackman)窗

boxcar

矩形窗

chebwin

切比雪夫(Chebyshev)窗

hamming

哈明(Hamming)窗

hanning

汉宁(Hanning)窗

kaiser

凯塞(Kaiser)窗

triang

三角窗

参数建模

invfreqs

由频率响应辨识连续时间(模拟)滤波器

invfreqz

由频率响应辨识响应离散时间滤波器

levinson

Levinson-Durbin递归算法

lpc

线性预测系统

prony

Prong法的时域IIR滤波器设计

stmcb

利用Steiglitz-McBride迭代法求线性模型

特殊运算

cceps

复时谱分析

cplxpair

重新排列组合复数

decimate

降低序列的采样频率

deconv

解卷积和多项式除法

demod

通信仿真中的解调制

detrend

去除线性趋势

dpss

Slepian序列

dpssclear

去除数据库Slepian序列

dpssdir

从数据库目录消去Slepian序列

dpssload

从数据库调入Slepian序列

dpsssave

Slepian序列存入数据库

icceps

倒复时谱

interp

整数倍提高采样速率

medfilt1

一维中值滤波

modulate

通讯仿真调制

polystab

稳定多项式

rceps

实时谱和最小相位重构

resample

任意倍数改变采样速率

specgram

频谱分析

upfirdn

利用FIR滤波器转换采样

vco

电压控制振荡器

besselap

Bessel模拟低通滤波器原型设计

buttap

Butterworth模拟低通滤波器原型设计

cheb1ap

ChevbyshevI型模拟低通滤波器原型设计

cheb2ap

ChevbyshevII型模拟低通滤波器原型设计

ellipap

椭圆低通滤波器原型设计

频率变换

lp2bp

低通至带通模拟滤波器变换

lp2bs

低通至带阻模拟滤波器变换

lp2hp

低通至高通模拟滤波器变换

lp2lp

低通至低通模拟滤波器变换

滤波器离散变换

bilinear

双线性变换

impinvar

冲激不变法的模拟至数字滤波器变换

交互式工具

sptool

交互式信号、滤波器和频谱分析工具

附录ⅡMATLAB常用命令(GeneralPurposeCommands)

变量和工作空间管理(ManagingVariablesandtheWorkspace)

clear

从内存中删除变量和函数

disp

显示文本和数组内容

length

求向量的长度

load

从磁盘中调入数据变量

save

把内存变量存入磁盘

size

求数组的维数大小 

who

列出工作空间中的变量名

whos

列出工作空间中的变量详细内容

命令窗口控制命令(ControllingtheCommandWindow)

echo

显示M文件执行时是否显示命令的切换开关

format

控制输出格式

more

命令窗口分页输出的控制开关

操作环境和文件管理(WorkingwithFilesandtheOperatingEnvironment)

delete

删除文件或图形对象

diary

存储命令窗口中的操作内容

dir

列出目录

edit

编辑M文件

fileparts

生成文件的路径、文件名的版本等部分信息

fullfile

生成文件的路径和文件名的全称

matlabroot

安装MATLAB的根目录

tempname

列出临时文件名

执行外部应用文件

运算符和特殊算符(OperatorsandSpecialCharacters)

+

-

*

矩阵相乘

.*

数组相乘

矩阵求幂

.^

数组求幂

kron

张量积

\

左除

/

右除

./

数组右除

.\

数组左除

冒号运算符

[]

中括号,生成数组

{}

大括号,生成细胞

.

小数点

续行符

逗号

;

分号

%

注释号

共轭转置符

.’

非共轭转置符

=

赋值符号

==

等号

<>

关系符

&

逻辑和

|

逻辑与

~

逻辑非

xor

逻辑异或

流程控制(ControlFlow)

break

中断执行for或while循环

case

switch结构关键字

catch

开始捕捉模块

else

条件执行语句

elseif

条件执行语句

end

for、whiles、witch和if的结束语句或标志

error

显示错误信息

for

指定循环次数的执行语句

if

条件执行语句

otherwise

switch语句的默认部分

return

返回主调函数

switch

开关语句

warning

显示警告信息

while

无规定次数循环语句 

交互输入(InteractiveInput)

input

提醒用户输入

keyboa

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

当前位置:首页 > 工程科技 > 能源化工

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

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