《信号与系统实验》matlab入门与操作.docx

上传人:b****4 文档编号:24475633 上传时间:2023-05-27 格式:DOCX 页数:19 大小:208.89KB
下载 相关 举报
《信号与系统实验》matlab入门与操作.docx_第1页
第1页 / 共19页
《信号与系统实验》matlab入门与操作.docx_第2页
第2页 / 共19页
《信号与系统实验》matlab入门与操作.docx_第3页
第3页 / 共19页
《信号与系统实验》matlab入门与操作.docx_第4页
第4页 / 共19页
《信号与系统实验》matlab入门与操作.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

《信号与系统实验》matlab入门与操作.docx

《《信号与系统实验》matlab入门与操作.docx》由会员分享,可在线阅读,更多相关《《信号与系统实验》matlab入门与操作.docx(19页珍藏版)》请在冰豆网上搜索。

《信号与系统实验》matlab入门与操作.docx

《信号与系统实验》matlab入门与操作

《信号与系统》实验指导书

信号处理教研室编

河南科技学院机电学院

绪言MATLAB应用简介

1.MATLAB在信号与系统中的应用简介

MATLAB的名称源自MatrixLaboratory,1984年由美国Mathworks公司推向市场。

它是一种科学计算软件,专门以矩阵的形式处理数据。

MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作。

MATLAB软件包括五大通用功能:

数值计算功能(Nemeric);符号运算功能(Symbolic);数据可视化功能(Graphic);数据图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。

该软件有三大特点:

一是功能强大;二是界面友善、语言自然;三是开放性强。

目前,Mathworks公司已推出30多个应用工具箱。

MATLAB在线性代数、矩阵分析、数值及优化、数理统计和随机信号分析、电路与系统、系统动力学、信号和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统、以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。

MATLAB在信号与系统中的应用主要包括符号运算和数值计算仿真分析。

由于信号与系统课程的许多内容都是基于公式演算,而MATLAB借助符号数学工具箱提供的符号运算功能能基本满足信号与系统课程的需求。

例如,解微/差分方程、傅里叶正反变换、拉普拉斯正反变换、z正反变换等。

MATLAB在信号与系统中的另一主要应用是数值计算与仿真分析,主要包括函数波形绘制、函数运算、冲激响应与阶跃响应仿真分析、信号的时域分析、信号的频谱分析、系统的S域分析、零极点图绘制等内容。

数值计算仿真分析可以帮助更深入理解信号与系统的理论知识,并为将来使用MATLAB进行信号处理领域的各种分析和实际应用打下基础。

2.MATLAB软件使用入门

2.1MATLAB软件的环境介绍

MATLAB6.5的工作桌面由标题栏、菜单栏、工具栏、命令窗口(CommandWindow)、工作空间窗口(Workspace)、当前目录窗口(CurrentDirectory)、历史命令窗口(CommandHistory)及状态栏组成,从而为用户使用MATLAB提供了集成的交互式图形界面,如图1所示。

MATLAB的命令窗口是接收用户输入命令及输出数据显示的窗口。

当启动MATLAB软件时,命令窗口就做好了接收指令和输入的准备,并出现命令提示符(>>),在命令提示符后输入指令,包括变量、函数和数值等,这些被放置在MATLAB的工作空间中。

查看工作空间的另一种方法是使用whos命令,在命令提示符后输入whos命令,工作空间中的内容概要将作为输出显示在命令窗口中。

有的命令可以用来清除不必要的数据,同时释放部分系统资源。

clearall命令可以用来清除工作空间的所有变量,如果要清除某一特定变量则需要在clear命令后加上该变量的名称。

另外,clc命令用来清除命令窗口的内容。

对于初学者而言,需要掌握的最重要且最有用的命令应为help命令。

MATLAB命令和函数有数千个,而且许多命令的功能非常强大,调用形式多样。

要想了解一个命令或函数,只需在命令提示符后输入help,并加上该命令或函数的名称,则MATLAB会给出其详细帮助信息。

2.2MATLAB软件基本运算入门

1.MATLAB软件的数值计算

(1)算术运算

MATLAB可以像一个简单的计算器一样使用,不论是实数运算还是复数运算都能轻松完成。

标量的加法、减法、除法和幂运算均可通过常规符号“+”、“”、“*”、“/”、以及“^”来完成。

对于复数中的虚数单位,MATLAB采用预定义变量i或j表示,即i=j=

因此,一个复常量可用直角坐标形式来表示。

例如,在命令窗口输入(以下凡是程序语句前带有“>>”的,都表示在命令窗口输入)

>>A=-3-i*4

A=

-3.0000-4.0000i

将复常量-3-i4赋予了变量A。

一个复常量还可用极坐标的形式来表示,例如,

>>B=2*exp(i*pi/6)

B=

1.7321+1.0000i

其中,pi是MATLAB预定义变量,pi=

复数的实部和虚部可以通过real和imag运算符来实现,而复数的模和辐角可以通过abs和angle运算符来实现,应注意辐角的单位为弧度。

例如,复数A=-3-i4的模和辐角、复数B的实部和虚部的计算分别为

>>A_mag=abs(A)

A_mag=

5

>>A_rad=angle(A)

A_rad=

-2.2143

>>B_real=real(B)

B_real=

1.7321

>>B_imag=imag(B)

B_imag=

1.0000

如果将弧度值用“度”来表示,则可进行转换,即

>>A_deg=angle(A)*180/pi

A_deg=

-126.8699

复数A的模可表示为

,因此,其共轭复数可通过conj命令来实现,例如,

>>A_mag=sqrt(A*conj(A))

A_mag=

5

(2)向量运算

向量是组成矩阵的基本元素之一,MATLAB具有关于向量运算的强大功能。

向量被分为行向量和列向量。

生成向量的方法有很多,我们主要介绍两种。

①直接输入向量:

即把向量中的每个元素列举出来。

向量元素要用“[]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。

例如,

>>A=[1,3,5,21]

A=

13521

>>B=[1;3;5;21]

B=

1

3

5

21

②利用冒号表达式生成向量:

这种方法用于生成等步长或均匀等分的行向量,其表达式为x=x0:

step:

xn。

其中,x0为初始值;step表示步长或增量;xn为结束值。

如果step值缺省,则步长默认为1。

例如,

>>C=0:

2:

10

C=

0246810

>>D=0:

10

D=

012345678910

在连续时间信号和离散时间信号的表示过程中,我们经常要用到冒号表达式。

例如,对于

范围内的连续信号,可用冒号表达式“t=0:

0.001:

1;”来近似表达该区间,此时,向量t表示该区间以0.001为间隔的1001个点。

如果一个向量或一个标量与一个数进行运算,即“+”、“”、“*”、“/”、以及“^”运算,则运算结果是将该向量的每一个元素与这个数逐一进行相应的运算所得到的新的向量。

例如,

>>C=0:

2:

10;

>>E=C/4

E=

00.50001.00001.50002.00002.5000

其中,第一行语句结束的分号是为了不显示C的结果;第二句没有分号则显示出E的结果。

一个向量中元素的个数可以通过命令“length”获得,例如,

>>t=0:

0.001:

1;

>>L=length(t)

L=

1001

(3)矩阵运算

MATLAB又称矩阵实验室,因此,MATLAB中矩阵的表示十分方便。

例如,输入矩阵

在MATLAB命令窗口中可输入下列命令得到,即

>>a=[111213;212223;313233]

a=

111213

212223

313233

其中,命令中整个矩阵用括号“[]”括起来;矩阵每一行的各个元素必须用逗号“,”或空格分开;矩阵的不同行之间必须用分号“;”或者按Enter键分开。

关于矩阵的运算,分很多情况,这里不做详细说明,同学们可以课下查阅相关资料。

【例1】已知t为一向量,用MATLAB命令计算

区间上对应的值。

解:

在计算之前,先简要介绍一下Matlab基本操作。

打开Matlab6.5,只保留命令窗口(CommandWindow),点击文本编辑窗口(M-file)创建、编辑M程序。

如下图。

在文本编辑窗口输入指令程序。

当输入完整程序后,点击DEBUG→RUN运行程序,或用键盘F5键直接运行。

另外,也可点击窗口快捷运行程序键。

如下图。

编辑完成一个程序后,第一次运行或另存为时,需要保存M程序,保存的路径为命令窗口所示的当前目录路径(CurrentDirectory),该路径可自行设置。

如下图。

注意:

M文件在命名时有一定规则,错误命名时会使M文件不能正常运行。

(1)M文件名首字符不能是数字或下划线;

(2)M文件名不能与Matlab的内部函数名相同;

(3)M文件名中不能有空格,不能含有中文。

保险起见,要求采用英文字母对M文件命名。

一般多指令较长程序应在文本编辑窗口输入,修正、调试都比较方便。

打开文本编辑窗口,编辑MATLAB源程序(以下凡是程序语句前无“>>”的,都表示在文本编辑窗口输入)

t=0:

0.01:

1;

y=(sin(t).*exp(-2*t)+5)./(cos(t)+t.^2+1);

plot(t,y),xlabel('t'),ylabel('y')

保存运行,输出图形如下。

这里未将y向量的结果显示出来,而是利用plot命令将结果绘出。

2.MATLAB软件的符号运算

MATLAB符号运算功能由工具箱提供的函数命令实现,符号运算是指符号之间的运算,其运算结果仍以标准的符号形式表达。

符号运算是MATLAB的一个极其重要的组成部分,符号表示的解析式比数值解具有更好的通用性。

在使用符号运算之前必须定义符号变量,并创建符号表达式。

定义符号变量的语句格式为:

syms变量名

其中,各个变量名须用空格隔开。

例如,定义x、y、z三个符号变量的语句格式为

>>symsxyz

另一种定义符号变量的语句格式为

sym('变量名')

例如,x、y、z三个符号变量定义的语句格式为

>>x=sym('x')

>>y=sym('y')

>>z=sym('z')

sym语句还可以用来定义符号表达式,语句格式为

sym('表达式')

例如,定义表达式x+1为符号表达式对象,语句为

>>sym('x+1')

另一种创建符号表达式的方法是先定义符号变量,然后直接写出符号表达式。

例如,在MATLAB中创建符号表达式

,其MATLAB源程序为

>>symst

>>y=(sin(t).*exp(-2*t)+5)./(cos(t)+t.^2+1)

y=

(sin(t)*exp(-2*t)+5)/(cos(t)+t^2+1)

在符号运算中,可以用“simple”或者“simplify”函数来化简运算结果,例如,

>>symsx

>>f1=sin(x)^2;

>>f2=cos(x)^2;

>>y=f1+f2

y=

sin(x)^2+cos(x)^2

>>y=simplify(y)

y=

1

2.3MATLAB软件简单二维图形绘制

MATLAB的plot命令是绘制二维曲线的基本函数,它提供了数据的可视化。

例如,函数

关于变量x的曲线绘制的语句格式为

plot(x,y)

其中,输出以向量x为横坐标,向量y为纵坐标,且按照向量x、y中元素的排列顺序有序绘制图形,向量x与y必须拥有相同的长度。

绘制多幅图形的语句格式为

plot(x1,y1,'str1',x2,y2,'str2',...)

其中,用str1制定的方式,输出以x1为横坐标、y1为纵坐标的图形。

用str2制定的方式,输出以x2为横坐标、y2为纵坐标的图形。

若省略str,则MATLAB自动为每条曲线选择颜色与线型。

图形完成后,可以通过几个命令来调整显示结果。

如gridon或grid用来显示格线;axis([xmin,xmax,ymin,ymax])函数调整坐标轴的显示范围。

其中,括号内的“,”可用空格代替;xlabel和ylabel命令可为横坐标和纵坐标加标注,标注的字符串必须用单引号引起来;title命令可在图形顶部加注标题。

【例2】用MATLAB命令绘制函数

的波形图。

解:

打开文本编辑窗口,编辑MATLAB源程序

t=0:

0.01:

5;

y=sin(5*pi*t)+1./(cos(pi*t)+2);

plot(t,y)

axis([0,5,-12,5])

xlabel('t'),ylabel('y'),

gridon

保存运行,结果如图3所示。

用subplot命令可在一个图形窗口中按照规定的排列方式同时显示多个图形,方便图形的比较。

其语句格式为

subplot(m,n,p)

或者

subplot(mnp)

其中,m和n表示在一个图形窗口中显示m行n列个图像,p表示第p个图像区域,即在第p个区域作图。

例如,比较正弦信号相位差的MATLAB源程序为

t=0:

0.01:

3;

y1=sin(2*pi*t);

y2=sin(2*pi*t+pi/6);

subplot(211),plot(t,y1)

xlabel('t'),ylabel('y1'),title('y1=sin(2*pi*t)')

subplot(212),plot(t,y2)

xlabel('t'),ylabel('y2'),title('y2=sin(2*pi*t+pi/6)')

保存运行,结果如图4所示。

除了plot命令外,MATLAB提供了ezplot命令绘制符号表达式的曲线,其语句格式为

ezplot(y,[a,b])

其中,[a,b]参数表示符号表达式的自变量取值范围,默认值为

【例3】利用MATLAB的ezplot命令绘出函数

的波形图。

解:

MATLAB源程序为

symsx

y='-16*x^2+64*x+96';

ezplot(y,[0,5])

xlabel('t'),ylabel('y'),

gridon

程序运行结果如图5所示。

关于两者区别,简单的来说,plot是根据坐标数值画图;而ezplot根据函数式画图。

在绘图过程中,我们可利用“holdon”命令来保持当前图形,继续在当前图形状态下绘制其他图形,即可在同一窗口下绘制多幅图形。

“holdoff”命令用来释放当前图形窗口,绘制下一幅图形作为当前图形。

2.4MATLAB程序流程控制

MATLAB与其他高级编程语言一样,是一种结构化的编程语言。

MATLAB程序流程控制结构一般可分为顺序结构、循环结构、以及条件分支结构。

MATLAB中实现顺序结构的方法非常简单,只需将程序语句按顺序排列即可。

在MATLAB中,循环结构可以由for语句循环结构和while语句循环结构两种方式来实现。

条件分支结构可以由if语句分支结构和switch语句分支结构两种方式来实现。

1.for循环结构

for循环结构用于在一定条件下多次循环执行处理某段指令,其语法格式为

for循环变量=初值:

增量:

终值

循环体

end

循环变量一般被定义为一个向量,这样循环变量从初值开始,循环体中的语句每被执行一次,变量值就增加一个增量,直到变量等于终值为止。

增量可以根据需要设定,默认时为1。

end代表循环体的结束部分。

例如,用for循环结构求1+2+3+…100的和,其MATLAB源程序为

x=0;

fori=1:

100

x=x+i;

end

x

命令窗口显示:

>>

x=

5050

for循环结构在系统分析中有时用于求积分数值解

2.其它流程控制结构

除了for结构外,其他常用的几种程序流程控制结构while、if和continue、break、pause、input、error、disp等,大家可课下查阅相关资料熟悉它们。

MATLAB部分命令函数表

命令、函数名称

功能说明

命令、函数名称

功能说明

+

inf

无穷大(预定义变量)

initial

连续系统的零输入响应

*

矩阵乘法

input

提示用户输入

.*

数组乘法(点乘)

int

符号积分运算

^

矩阵幂

inv

求矩阵的逆

.^

数组幂(点幂)

iztrans

求符号z反变换

\

左除或反斜杠

laplace

求符号拉普拉斯变换

/

右除或斜杠

legend

设置图解注释

./

数组除(点除)

length

向量的长度

%

注释

line

建立曲线

矩阵转置或引用

linespace

产生线性等分向量

=

赋值

lism

求系统响应的数值解

==

相等

log

自然对数

<>

关系操作符

log10

常用对数

&

逻辑与

max

求最大值

|

逻辑或

min

求最小值

~

逻辑非

mod

模除后取余

xor

逻辑异或

nan

非数值(预定义变量)

:

规则间隔的向量

ones

全“1”矩阵

abs

求绝对值或复数求模

phase

求相频特性

acos

反余弦函数

pi

圆周率(预定义变量)

angle

求复数相角

plot

线性图形

ans

当前的答案

pole

求极点

asin

反正弦函数

poly

将根值转换为多项式

atan

反正切函数

pzmap

绘制零极点图

axis

控制坐标系刻度和形式

pzmap

绘制零极点图

bar

条形图

quit

退出MATLAB

bode

波特图(频域响应)

rand

均匀分布的随机数矩阵

break

终止循环的执行

randn

正态分布的随机数矩阵

cla

清除当前坐标系

real

求复数的实部

clc

清除命令窗口

rectplus

产生非周期矩形脉冲

clear

清除工作空间变量

residue

部分分式展开

clf

清除当前图形

residuez

z变换的部分分式展开

close

关闭图形

return

返回引用的函数

conj

求复数的共轭复数

roots

求多项式的根

conv

求离散序列卷积和

rot90

矩阵旋转90度

cos

余弦函数

round

朝最近的整数取整

d2c

变离散为连续系统

sawtooth

产生周期三角波

dbode

离散波特图

simple

符号表达式化简

deconv

求多项式除法,解卷积

simplify

符号表达式化简

diag

建立和提取对角阵

sin

正弦函数

diff

求导运算

sinc

抽样函数(Sa函数)

dsolve

求微分方程符号解

sinh

双曲正弦函数

exp

指数

size

矩阵的尺寸

expm

矩阵指数

sqrt

求平方根

eye

单位矩阵

square

产生周期矩形脉冲

ezplot

符号函数二维作图

stairs

阶梯图

ezplot3

符号函数三维作图

stem

离散序列图或杆图

fft

快速傅里叶变换

step

求单位阶跃响应

figure

建立图形

subplot

在标定位置建立坐标系

figure

建立图形窗口

subs

符号变量替换

fill

绘制二维多边形填充图

sum

求和

filter

求差分方程的数值解

surface

建立曲面

format

设置输出格式

sym

定义符号表达式

fourier

求符号傅里叶变换

syms

定义符号变量

freqs

求连续系统的频率响应

tan

正切函数

freqz

求离散系统的频率响应

text

文本注释

function

增加新的函数

tf

建立传输函数模型

global

定义全局变量

tf2zp

传递函数转换为零极点

grid

画网格线

title

图形标题

gtext

用鼠标放置文本

triplus

产生非周期三角波

hold

保持当前图形

xlabel

X轴标记

i,j

虚数单位(预定义变量)

ylabel

Y轴标记

ifourier

求符号傅里叶反变换

zero

求零点

ilaplace

求符号拉普拉斯反变换

zeros

零矩阵

imag

复数的虚部

zp2tf

零极点表示为传递函数

impulse

求单位冲激响应

zplane

绘制离散系统零极图

impz

求单位取样响应

ztrans

求符号z变换

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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