阜阳师范学院数字信号处理MATLAB实验文档格式.docx

上传人:b****8 文档编号:22123827 上传时间:2023-02-02 格式:DOCX 页数:48 大小:333.85KB
下载 相关 举报
阜阳师范学院数字信号处理MATLAB实验文档格式.docx_第1页
第1页 / 共48页
阜阳师范学院数字信号处理MATLAB实验文档格式.docx_第2页
第2页 / 共48页
阜阳师范学院数字信号处理MATLAB实验文档格式.docx_第3页
第3页 / 共48页
阜阳师范学院数字信号处理MATLAB实验文档格式.docx_第4页
第4页 / 共48页
阜阳师范学院数字信号处理MATLAB实验文档格式.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

阜阳师范学院数字信号处理MATLAB实验文档格式.docx

《阜阳师范学院数字信号处理MATLAB实验文档格式.docx》由会员分享,可在线阅读,更多相关《阜阳师范学院数字信号处理MATLAB实验文档格式.docx(48页珍藏版)》请在冰豆网上搜索。

阜阳师范学院数字信号处理MATLAB实验文档格式.docx

绘图功能在我们学习数字信号处理过程中的主要作用是帮助大家直观了解处理的结果,在实际信号处理中,可能用的不多。

2.启动MATLAB及界面简介

点击桌面上MATLAB图标,可进入到MATLAB命令窗(MATLABCommandWindow),其命令提示符为>

>

用户可在命令窗内输入命令、编程、进行计算。

MATLAB6.5环境包括MATLAB主窗口、命令窗口(CommandWindow)、工作空间窗口(Workspace)、命令历史窗口(CommandHistory)、当前目录窗口(CurrentDirectory)、图形窗口(Figure)和文本编辑窗口(Editor)等组成。

观看其默认窗口分布情况可以如下操作:

Desktop---desktoplayout--defaut

(1).主窗口

MATLAB主窗口是MATLAB的主要工作界面。

主窗口除了嵌入一些子窗(CommandWindow、Workspace、CommandHistory、CurrentDirectory)外,还主要包括菜单栏和工具栏。

菜单栏,共包含File、Edit、View、Web、Window和Help6个菜单项,与其它Windows应用软件相似,大家可以自己点击观看。

工具栏,MATLAB6.5主窗口的工具栏共提供了10个命令按钮。

这些命令按钮均有对应的菜单命令,但比菜单命令使用起来更快捷、方便。

下面重点介绍一下命令窗口(CommandWindow)。

命令窗口

命令窗口是MATLAB的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。

MATLAB命令窗口中的“>

”为命令提示符,表示MATLAB正在处于准备状态。

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

例如

>

x=10;

y=15;

z=x+y

z=15

说明:

①语句后输入分号表示不在主窗口显示结果,但可以从变量窗口看到;

②如果一个命令行很长,或编程时一个语句很长,需要用两行来书写,可以在第一个物理行之后加上3个小黑点并按下回车键,然后接着下一个行继续写命令的其他部分。

3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。

命令窗口是MATLAB与用户之间的主要交互式运算窗口。

3.MATLAB的常用命令

(1).help命令在命令窗内输入help命令,再敲回车键,在屏幕上出现了在线帮助总览。

(注意:

MATLAB命令被输入后,必需敲回车键才能执行.为行文方便,以后不再每次提醒“敲回车键”)学会使用help命令,是学习MATLAB的有效方法。

如果要了解相关函数的使用方法及参数意义可输入

helpxcorr

(2).demo命令在命令窗内输入demo命令,再敲回车,键屏幕上将出现演示窗口。

(MATLABDemoWindow)一共有三个窗口,左边的窗口显示欲演示内容的大标题,选定其中一项,右下方的小窗口显示欲演示的具体内容,选中其中一栏,再点击run按扭,屏幕上将演示选定的演示程序。

右上方的窗口显示关于大标题的一些说明。

(3).Type命令在命令窗内输入type文件名,则MATLAB将在主窗口显示程序的M文件内容,帮助大家了解M文件编程方法,通过对其语句的分析,不仅可以提高理论认识,也是学习MATLAB的函数(function)编写方法有效途径。

typexcorr

(4).其它常用的命令与函数

Addpath:

增加MATLAB的工作目录。

MATLAB通常只能对其工作路径下的文件运行,如果你的文件不在其默认的目录下,可以通过addpath命令来添加你的目录,例

path

结果显示当前的所有默认目录。

addpathc:

\

结果将C盘根目录作为一个默认目录,即在C盘根目录下文件均可以直接在MATLAB下执行。

clear:

清除内存空间变量。

whos变量名:

查看此变量的具体情况。

whosx

NameSizeBytesClass

x1x216doublearray

Grandtotalis2elementsusing16bytes

clc:

清屏命令,清除当前主窗口内所有显示。

dir:

查看当前目录。

length():

计算向量的长度。

ength(x)

ans=

2

size():

计算矩阵或数组的维数。

size(y)

36

这些命令和函数是大家学习MATLAB时用的最多的,因此需要大家审记。

4.基本运算

在MATLAB本身是为了进行数值计算而创出的,因此其数值计算功能非常强,且是其重要的功能之一。

计算方法非常简单,其进行基本数学运算,只需将运算式直接打入提示号(>

)之后,并按入Enter键即可。

例如计算(5*2+1.3-0.8)*10/25的值:

用键盘在MATLAB指令窗中输入以下内容

(5*2+1.3-0.8)*10/25

在上述表达式输入完成后,按【Enter】键,该就指令被执行。

在指令执行后,MATLAB指令窗中将显示以下结果。

4.2000

MATLAB会将运算结果直接存入一变量ans,代表MATLAB运算后的答案(Answer),并显示其数值于屏幕上。

由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。

我们也可将上述运算式的结果设定给另一个变数x如下:

x=(5*2+1.3-0.8)*10^2/25

x=

42

此时MATLAB会直接显示x的值。

MATLAB基本算术运算符

符号

符号用途说明

+

加此符号与以下五行符号详细说明可使用helparith

-

.*

数组乘法 

矩阵相乘

矩阵求幂

.^

点幂

左除此符号与以下三行符号详细说明可使用helpslash

/

右除

.\

点左除

./

点右除

由于MATLAB没有中文版,因此其自带的帮助均为英文,因此,希望大家不要有惧怕心理,应该当作帮助大家又提高了英语,一举两得!

5.退出

在工具栏中点击File按钮,在下拉式菜单中单击ExitMATLAB项即可。

二、变量与函数、语句、矩阵及其运算

1.变量与函数

在MATLAB中变量由字母、数和下划线组成,第一个字符必须是字母。

一个变量最多由63个字符组成,并区分大小写。

下面是MATLAB中表示特殊量的字符:

特殊变量

取值

ans

用于结果的缺省变量名

pi

圆周率

eps

计算机的最小数,当和1相加就产生一个比1大的数

flops

浮点运算数

inf

无穷大,如1/0

NaN

不定量,如0/0

i,j

虚数单位i=j=

,在程序中可以用作其它用途。

nargin

所用函数的输入变量数目

nargout

所用函数的输出变量数目

realmin

最小可用正实数

realmax

最大可用正实数

MATLAB提供了大量的函数.可以通过helpfunction查询。

下面列出部分基本数学函数:

函数

名称

sin(x)

正弦函数

asin(x)

反正弦函数

cos(x)

余弦函数

acos(x)

反余弦函数

tan(x)

正切函数

atan(x)

反正切函数

abs(x)

绝对值或复数模

max(x)

最大值

min(x)

最小值

sum(x)

元素的总和

sqrt(x)

开平方

exp(x)

以e为底的指数

log(x)

自然对数

以10为底的对数

sign(x)

符号函数

fix(x)

取整

imag(x)

复数的虚部

real(x)

复数的实部

conj(x)

共轭复数

angle(x)

复数x的幅角

2.语句与M文件

MATLAB语句的一般形式为:

变量=表达式。

当某一语句的输入完成后,按回车键,计算机就执行该命令。

如果该语句末没输入其它符号或输入了逗号,将显示结果;

如果句末输入了分号,将不显示结果。

如果语句中省略了变量和等号,那么计算机将结果赋值给变量ans(结果的缺省变量)。

MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件.函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为:

function[因变量名]=函数名(自变量名)

函数值的获得必须通过具体的运算实现,并赋给因变量.

M文件建立方法:

1).在Matlab中,点:

File->

New->

M-file;

2).在编辑窗口中输入程序内容;

3).点:

Save,存盘,M文件名必须与函数名一致,M文件的文件名首字不能为数字。

Matlab的应用程序也以M文件保存,称为脚本文件(直接使用MATLAB中语句编写的M文件)。

即M文件包括脚本文件和函数两种。

4).在MATLAB中,为了说明语句的功能使用的注释句用%开头。

3.矩阵及其运算

MATLAB中矩阵A的输入方法如下:

A=[a11,…,a1n;

…;

am1,…,amn]。

其中逗号(或用空格)是数之间的分隔符,‘;

’分号(或Enter)是换行符,输入矩阵时严格要求所有行有相同列,即符合矩阵的形式。

①、a=0:

0.1:

1可产生个向量,即元素为0,0.1,0.2…1。

B=[2,2,2;

3,5,6]或b=[222;

356]是一样的。

②、一些特殊矩阵的产生方法:

linspace(x,y,n),魔方矩阵magic(x),单位矩阵eye(x),随机函数rand(x),零矩阵zeros(x,y),1矩阵ones(x,y)等等。

冒号在MATLAB中的用法很灵活,一定要多试,多用。

例如有一个矩阵X为3行3列的魔方矩阵,通过观看粗体来体会其用法。

X=magic(3)

X=

816

357

492

X(2,:

)=[123]

123

1)关于矩阵的运算的一些基本指令:

运算命令

功能

共轭转置

矩阵相加减

数乘矩阵,

是一个数值

求逆运算

矩阵

次幂

的行列式值

分解

的秩

的特征向量,

为特征值

的特征多项式

返回

的大小

2)矩阵中元素或块的常用操作,其中

表示一个矩阵。

表达式

中第

行第

列元素

行构成的行向量

列构成的列向量

按列看作一个列向量

表示列向量

个元素

3)MATLAB中的数学函数有一个共同的特点:

若自变量X为一个矩阵,则函数值也为X的同阶矩阵,即对每一个元素分别求函数值。

即对于

经过函数f作用后得:

比如

K=[0,0.25,0.5,0.75]

K=

00.25000.50000.7500

sin(2*pi*K)

01.00000.0000-1.0000

相信同学们已经明白,这也是我们经常使用的产生各种抽样信号的方法。

三、MATLAB支持的数据结构

(1)矩阵:

(2)多维数组

多维数组是MATLAB在其5.0版本开始提供的。

假设有2个3x3矩阵A1,A2,则可以由下面的命令建立起一个3x3x2的数组:

A=cat(3,A1,A2)。

试验A1=cat(2,A1,A2)和A2=cat(1,A1A2)将得到什么结果。

对矩阵或多维数组A可以使用size(A)来测其大小,也可以使用reshape()函数重新按列排列。

对向量来说,还可以用length(A)来测其长度。

不论原数组A是多少维的,A(:

)将返回列向量。

(3)字符串与字符串矩阵

MATLAB的字符串是由单引号括起来的。

如可以使用下面的命令赋值

strA='

Thisisastring.'

(4)单元数据结构

用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。

和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。

B={1,'

AlanShearer'

180,[100,80,75;

77,60,92;

67,28,90;

100,89,78]}

B=

[1]'

[180][4x3double]

访问单元数组应该由大括号进行,如第4单元中的元素可以由下面的语句得出

B{4}

四、MATLAB绘图

1、绘制二维图形

(1)、曲线图

绘制二维图形的基本命令是plot(X,Y,S).其中X,Y是向量,分别表示点集的横坐标和纵坐标,S指线型、颜色.plot(X,Y)—画实线,plot(X,Y1,S1,X,Y2,S2,……,X,Yn,Sn)—将多条线画在一起.以上三种格式中的x、y都可以是表达式,但表达式的运算结果必须符合上述格式要求.MATLAB的图形功能还提供了颜色和线型的控制符,如下表:

控制符

线型或标记

颜色

标记

实线

g

绿色

.

:

点线

m

品红色

o

圆圈

—.

点画线

b

蓝色

x

叉号

——

虚线

c

青色

加号

h

六角形

w

白色

*

星号

v

倒三角

r

红色

s

正方形

^

正三角

k

黑色

d

菱形

左三角

y

黄色

p

五角星

<

右三角

MATLAB提供的特殊二维图形函数如下表

(2)、符号函数(显函数、隐函数和参数方程)画图

符号函数画图可以通过函数ezplot或fplot来实现.

函数ezplot调用格式:

ezplot(‘f(x)’,[a,b])表示在a<

x<

b绘制显函数f=f(x)的函数图;

ezplot(‘f(X,Y)’,[Xmin,Xmax,Ymin,Ymax])表示在区间Xmin<

X<

Xmax和Ymin<

Y<

Ymax绘制隐函数f(x,y)=0的函数图;

ezplot(‘x(T)’,’y(T)’,[Tmin,Tmax])表示在区间Tmin<

T<

Tmax绘制参数方程x=x(T),y=y(T)的函数图.

函数fplot调用格式:

fplot(‘fun’,lims)表示绘制字符串fun指定的函数在lims=[Xmin,Xmax]的图形.

注意:

[1]fun必须是M文件的函数名或是独立变量为x的字符串.

[2]fplot函数不能画参数方程和隐函数图形,但在一个图上可以画多个图形.

(3).对数坐标图

在很多工程问题中,通过对数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换.对数转换有双对数坐标转换和单轴对数坐标转换两种.用loglog函数可以实现双对数坐标转换,用semilogx和semilogy函数可以实现单轴对数坐标转换.

loglog(Y)表示x、y坐标都是对数坐标系;

semilogx(Y)表示x坐标轴是对数坐标系;

semilogy(…)表示y坐标轴是对数坐标系;

plotyy有两个y坐标轴,一个在左边,一个在右边.

2、绘制三维图形

(1)、空间曲线的绘制

绘制空间曲线的基本命令为:

plot3(x,y,z);

plot3(x,y,z,'

s'

)或plot3(x1,y1,z1,'

s1'

x2,y2,z2,'

s2'

…)

其中x,y,z是同维的向量或矩阵.当它们是矩阵时,以它们的列对应元素为空间曲线上点的坐标.s指线型、颜色,这一点与二维曲线时的情形相同.

(2)、空间曲面的绘制

绘制空间曲面的基本命令为mesh(x,y,z).

如果x、y是向量,则要求x的长度=矩阵z的列维;

y的长度=矩阵z的行维.以zij为竖坐标,x的第i个分量为横坐标,y的第j个分量为纵坐标绘网格图.如果是同维矩阵,则数据点的坐标分别取自这三个矩阵.

meshc(x,y,z)带等高线的网格图,waterfall(x,y,z)瀑布水线图,

surf(x,y,z,'

c'

)可着色的曲面图,surfc(x,y,z)带等高线的可着色的曲面图.

以上这些命令都可用来绘制曲面图,用法与mesh完全一样。

例、x=cos(t),y=sin(t)和z=t的数学关系可以由下面语句绘制出来:

t=0:

pi/50:

2*pi;

x=sin(t);

y=cos(t);

z=t;

h=plot3(x,y,z,'

g-'

set(h,'

LineWidth'

4*get(h,'

))

(3).多幅图形的创建

有时同一曲面或曲线需要从不同的角度去观察,或用不同的表现方式去表现,这时,为了便于比较,往往在一个窗口内画多幅图形.MATLAB用subplot命令实现这一目的.具体格式为:

subplot(m,n,p)。

使用此命令后,把窗口分为m×

n个图形区域,p表示当前区域号。

五、MATLAB编程

1、关系运算和逻辑运算

(1).关系运算符

〈小于〈=小于等于〉大于

〉=大于等于==等于~=不等于

运算法则:

如果两个比较量a、b是标量,那么,当a、b之间的关系成立时输出值为1;

否则输出值为0。

如果两个比较量a、b是相同维数的数组,那么就按标量的运算法则,对a、b的对应元素进行运算,最后的输出结果为一个与a(或b)同维的0—1数组。

如果a是标量,b是数组,那么按标量的运算法则将a与b的每个元素逐一比较,最后的输出结果为一个与b同维的0—1数组。

在算术运算、关系运算中,算术运算优先。

(2).逻辑运算符

&

与|或~非

参与逻辑运算的量称为逻辑量,非零逻辑量为“真”,用1表示;

零逻辑量为“假”,用0表示。

如果参与逻辑运算的两个量a、b都是标量,那么:

a&

b当a与b全为非零时,运算结果为“1”;

否则为“0”

a|ba与b中只要有一个非零,运算结果为“1”

~a当a是零时,运算结果为“1”;

如果参与逻辑运算的两个量a、b是相同维数的数组,那么就按标量的运算法则,对a、b的对应元素进行运算,最后的输出结果为一个与a(或b)同维的0—1数组。

如果参与逻辑运算的a是标量、b是数组,那么就按标量的运算法则,将a与b的每个元素进行运算,最后的输出结果为一个与b同维的0—1数组。

逻辑“非”是一个一元运算符,也服从数组运算规则.

在算术、关系、逻辑运算中,算术运算的最优先,其次是关系运算,再其次是逻辑运算.

2、控制语句

作为一种常用的编程语言,MATLAB支持各种流程控制结构:

循环结构、条件转移结构、客观结构、试探结构。

(1)、循环结构

循环语句有两种结构:

for...end结构和while...end结构。

这两种语句结构不完全相同,各有各的特色。

for...end语句通常的调用格式为:

for循环变量=s1:

s3:

s2

循环体语句组

end

while循环语句用来控制一个或一组语句在某逻辑条件下重复预先确定或不确定的次数。

while循环语句的一般表达形式为:

while表达式

循环体语句

End

例如果用户想由MATLAB求出1+2+...+100的值,可以作下列的循环:

mysum=0;

fori=1:

1:

100,mysum=mysum+i;

end;

在上面的式子中,可以看到for循环语句中s3的值为1。

在MATLAB实际编程中,如果s3的值为1,则可以在该语句中省略,故该语句可以简化成fori=1:

100。

在实际编程中,在MATLAB下采用循环语句会降低其执行速度,所以前面的程序可以由下面的命令来代替:

i=1:

100;

mysum=sum(i)。

在这一语句中,首先生成了一个向量i,然后用内部函数sum()求出i向量的各个元素之和,或更简单地,该语句还可以写成sum(1:

100)。

如果前面的100改成10000,再运行这一程序,则可以

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

当前位置:首页 > 求职职场 > 简历

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

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