最新信号与系统实验指导书Word文件下载.docx

上传人:b****6 文档编号:20833675 上传时间:2023-01-25 格式:DOCX 页数:25 大小:212.63KB
下载 相关 举报
最新信号与系统实验指导书Word文件下载.docx_第1页
第1页 / 共25页
最新信号与系统实验指导书Word文件下载.docx_第2页
第2页 / 共25页
最新信号与系统实验指导书Word文件下载.docx_第3页
第3页 / 共25页
最新信号与系统实验指导书Word文件下载.docx_第4页
第4页 / 共25页
最新信号与系统实验指导书Word文件下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

最新信号与系统实验指导书Word文件下载.docx

《最新信号与系统实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《最新信号与系统实验指导书Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。

最新信号与系统实验指导书Word文件下载.docx

脚本文件Ex_1(在M文件编辑器中写)

x1=5;

x2=6;

x3=7;

average_x=(x1+x2+x3)/3;

运行Ex_1后,average_x等于6。

示例2:

函数文件Aver

functiony=Aver(x1,x2,x3)

y=(x1+x2+x3)/3;

%function为函数文件的关键字;

然后在主程序所在的脚本文件中或直接在命令窗口中执行。

average_x=Aver(5,6,7),

或者先给x1,x2,x3赋值,再average_x=Aver(x1,x2,x3),得到同样的结果。

M文件的创建与保存:

在命令窗口中点击工具栏“NewM-File”按钮或者菜单“File→New→M-File”出现一个M文件编辑窗口(Editor),即创建了一个新的空白M文件;

输入相应的内容后,点击编辑窗口(Editor)工具栏中的“Save”按钮或者菜单“File→Save”即可保存。

M文件的运行:

在命令窗口中点击“File→Open”,选择M文件并打开;

在该M文件的编辑窗口中点击菜单“Debug→Run”;

或直接在命令窗口中键入该M文件的文件名(如Ex_1,不要带.m后缀),按回车,即可运行该M文件。

3.3MATLAB的文件管理

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

MATLAB中的目录概念实际上就是文件夹,所有M文件都存放在某一目录中。

当前工作目录的设置

MATLAB的使用者首先要新建一个目录(即文件夹)用来专门存放自己所编制的M文件,包括脚本文件和函数文件;

然后,再将该目录设置成当前工作目录,方法如下:

在命令窗口中右侧点击工具栏“Browseforfolder”按钮,出现“浏览文件夹”选项,选中待确定为当前工作目录的文件夹,按“确定”即可。

将自己的文件夹设置成当前工作目录后,就可以在MATLAB中运行自己所编制的M文件了;

也可以调用在搜索路径目录中所列出的所有文件夹中的M函数文件,这些M函数文件可以是MATLAB中其它工具箱中自带的,也可以是你的同学编制的。

这样,就达到了资源共享的目的。

注意:

你自己编制的M函数文件若不放在当前工作目录中,而单独另外放在一个文件夹中,只要将此文件夹设置为搜索路径,则你同样可调用这些M函数文件。

(注意matlab的工作目录不能为汉字文件夹,否则不能运行,请同学们切记!

搜索路径的设置

在命令窗口中点击菜单“File→SetPath”,在出现的界面左上角点击“AddFolder…”按钮,出现“浏览文件夹”选项,选择待加入搜索路径的的目录,按“确定”,再“Save”、“Close”即可。

3.4其它

通过MATLAB的工作空间浏览器可以直观地查看MATLABWorkspace中包含的所有元素,这对于检查程序的运行状态、调试程序等是非常方便的。

在命令窗口中点击菜单“Desktop→Workspace”,即出现Workspace界面,可以在其中查看内存变量的取值、维数等,也可以对变量做保存、删除等操作。

MATLAB还提供了强大的帮助系统。

例如,点击工具栏“?

”按钮,出现“help”界面,点击其中的“Search”按钮,在“Searchfor”框中输入所要查寻的关键字后回车,就能得到详细的帮助信息。

在命令窗口中点击菜单“Help→Demos”,再根据出现的界面做相应的选择,就可进入MATLAB自带的各种演示程序。

这些演示程序对初学者是一个很好的学习工具,可以方便地在不同条件下完成算法的仿真,并显示形象的可视化结果。

常用的窗口命令:

clc命令清除命令窗口;

clear清除内存变量命令;

who显示内存变量;

whos详细显示内存变量信息

help+关键字显示有关命令的使用说明;

例如:

helpdct就显示离散余弦变换函数的有关说明信息。

3MATLAB基本运算

4.1基本概念

变量:

和其他高级语言一样,MATLAB也是使用变量来保存信息。

变量名由英文字母开头,一般只能由英文字母、数字以及下划线“_”组成。

矩阵:

矩阵(Matrix)是MATLAB进行数据处理的基本单元,矩阵也经常与数组(Array)不加区分。

MATLAB中的大部分运算或命令都是在矩阵运算的意义下执行的,矩阵运算是MATLAB最重要的运算。

通常意义上的数量(也称为标量)在MATLAB系统中是作为1×

1的矩阵来处理的。

矩阵的输入:

在命令窗口或M文件编辑窗口中直接输入a=[1,2,3;

4,5,6;

7,8,9]

或a=[123;

456;

789],就可生成3×

3矩阵a。

利用MATLAB函数创建矩阵:

MATLAB为用户提供了创建基本矩阵的函数,如:

ones(m,n):

产生m×

n全1矩阵;

zeros(m,n):

n全0矩阵。

向量:

向量实际也是一种矩阵,是仅有一行或者一列的矩阵;

它在基于MATLAB的信号与系统分析中发挥着重要作用。

除了利用前面介绍的创建矩阵的方法来生成向量外,下面再介绍两种常用的方法。

利用冒号“:

”运算生成向量

如:

x=-2:

4,则x=[-2,-1,0,1,2,3,4];

(步长默认:

1);

又如:

y=0:

0.2:

1,则y=[0,0.2,0.4,0.6,0.8,1]。

(步长:

0.2)

要特别注意的是向量中元素的序号是从1开始的,例如上面的x=[-2,-1,0,1,2,3,4]中,x

(1)=-2,x

(2)=-1,x(3)=0等;

在y=[0,0.2,0.4,0.6,0.8,1]中,y

(1)=0,y

(2)=0.2等。

利用linspace()函数生成向量(系统函数)

linspace()函数用于生成线性等分向量。

调用格式x=linspace(m,n,s)表示生成从起始值m开始到终止值n之间的s个线性等分点的行向量。

例如x=linspace(0,10,5),则x=[0,2.5,5,7.510]。

4.2矩阵的算术运算

首先要说明的是在这里我们将矩阵视为数组,涉及运算的两个矩阵维数相同。

在这个条件下,两个矩阵的加、减、乘、除均指的是两个矩阵相对应位置上的元素进行加、减、乘、除运算。

例如设A=

B=

则在MATLAB中四种运算的表示及结果为:

A+B=

,A-B=

A.*B=

,A./B=

.

上面乘法运算符号“*”前要加“.”,即这种矩阵乘法是一种点乘运算,它不同于线性代数中两个矩阵之间的所定义的乘法;

在线性代数中要求A的列数与B的行数相同才能进行乘法运算,而这里仅要求A、B的维数相同。

点乘运算是MATLAB所特有的,极大地简化了编程,要予以高度重视。

同理,上面例子中的除法用的也是点除。

MATLAB还提供了点幂运算“.^”,如

X=

,则X.^3=

另外,一个矩阵还可与一个数进行加、减、乘、除运算,其结果是该矩阵中的每一个元素与这个数进行相应的运算。

A=

,则A-10=

,A*2=

4.3关系运算

MATLAB的基本关系运算符为:

(大于),<

(小于),>

=(大于等于),<

=(小于等于),==(等于),~=(不等于)。

关系运算的规则如下:

参与关系运算的是两个同维数矩阵;

或者一个是矩阵,另一个是标量;

若参与运算的是两个矩阵,关系运算是将两个矩阵对应元素逐一进行关系比较,关系成立则比较结果值为“1”,否则为“0”,最终产生一个同维数矩阵,其元素值为“0”或“1”。

若参与运算的一个是矩阵,另一个是标量,则是矩阵中每个元素与该标量进行关系比较,最终产生一个同维数矩阵,其元素值为“0”或“1”。

例:

X=

,Y=

,则

X<

Y=

,X>

=Y=

X==Y=

Y<

=4=

4.4逻辑运算

MATLAB的基本逻辑运算符为:

&

(与),︱(或),~(非)。

逻辑运算的规则如下:

参与逻辑运算的是两个同维数矩阵;

若参与运算的是两个矩阵,逻辑运算是将两个矩阵对应元素逐一进行逻辑运算,逻辑运算的结果是一个同维数矩阵,其元素值为“0”或“1”。

若参与运算的一个是矩阵,另一个是标量,则是矩阵中每个元素与该标量进行逻辑运算,最终产生一个同维数矩阵,其元素值为“0”或“1”。

Y=

,则:

X&

,X|Y=

,~X=

4.5MATLAB的常用数学函数

MATLAB提供了几乎所有初等函数,这些函数的调用格式为:

函数名(变量).这里函数变量即是矩阵变量。

例如:

,X=sin(A),则X=

表1列出了MATLAB中一些常用的数学函数名及其功能。

表1MATLAB的常用数学函数

函数名

功能

sin

正弦函数

real

求复变量的实部

cos

余弦函数

imag

求复变量的虚部

tan

正切函数

conj

求复变量的共轭

asin

反正弦函数

pi

圆周率

acos

反余弦函数

i或j

虚数单位

atan

反正切函数

min

求向量的最小元素

sinc

sinc函数

max

求向量的最大元素

exp

指数函数

length

求向量的长度

log

自然对数函数

size

求矩阵的维数

Log10

10为底的对数函数

sum

求向量的所有元素之和

sqrt

平方根函数

eye

产生单位矩阵

abs

求实变量绝对值或复变量的模

zeros

产生零矩阵

angle

求复数的相角

ones

产生全部元素均为1的矩阵

4MATLAB的可视化绘图

5.1绘制二维图形的基本函数

plot函数:

MATLAB中最常用的绘图函数是plot()。

其基本调用格式为:

plot(x,y),其中x,y均为向量,该函数表示以x向量作为X轴,以y向量作为Y轴。

示例3:

绘制从0~4π范围的正弦函数曲线。

t=0:

pi/20:

4*pi;

y=sin(t);

plot(t,y);

结果如图1所示。

图1

stem函数:

对于离散序列,MATLAB用stem()命令实现其绘制。

示例4:

绘制从0~4π范围的正弦函数序列。

pi/10:

stem(t,y);

结果如图2所示。

图2

subplot函数:

如果要在一个绘图窗口中显示多个图形,可用subplot函数实现。

subplot(m,n,k)或subplot(mnk),其中m,n,k取值为1~9。

该函数表示将绘图窗口划分为m×

n个子窗口(子图),并在第k个子窗口中绘图。

示例5:

在一个绘图窗口中绘制下列函数的图形。

(a)

,0≤t≤2;

(b)

0≤t≤2

(c)

,-4≤t≤4;

(d)

-5≤t≤5;

(采样函数sinc)

0.01:

2;

y1=2*exp(-3*t);

%(a)指数函数

figure;

subplot(221);

%subplot(2,2,1);

plot(t,y1);

xlabel('

(a)'

);

y2=2*t.*exp(-3*t);

%(b)t乘指数函数

subplot(222);

plot(t,y2);

(b)'

t1=-4:

4;

y3=1/(2^0.5)*exp(-0.5*t1.^2);

%(c)正态分布函数

subplot(223);

plot(t1,y3);

(c)'

t2=-5:

5;

y4=sinc(t2);

%(d)取样函数

subplot(224);

plot(t2,y4);

(d)'

ylabel('

sinc(t)'

axis([-55-0.251.1])

gridon

结果如图3所示。

图3

在图3的第4个子图中,我们加了xlabel、ylabel、axis、gridon等绘图控制命令;

这样,用户可根据自己的爱好和需要,对图形进行调整、注释和修饰,得到满意的图形。

下面就这一问题做一简单的介绍。

5.2二维图形的修饰

坐标轴名称标识函数xlabel、ylabel、title

调用格式:

xlabel(‘string’),ylabel(‘string’),title(‘string’)

通过xlabel、ylabel命令给X轴、Y轴加上名称,标注为字符串string。

title命令则是给图形加上标题。

坐标轴调整函数axis

axis([xminxmaxyminymax]);

该命令将所画图形的X轴范围限定在xmin到xmax之间,Y轴范围限定在ymin到ymax之间。

加画功能函数hold

若要在原来已有的图形A上加画另外的图形B,而不擦除原有的图形A,只要在画B之前加一条holdon命令即可;

否则原图形A会被B所覆盖。

用holdoff可取消加画功能。

坐标网格函数grid

grid函数用于为所绘制的图形添加坐标网格(虚线),从而更方便地确定图中各点的指标位置。

gridon是启动该函数;

gridoff是关闭该功能;

MATLAB的缺省设置是gridoff。

曲线的色彩、线型、数据点形

通过在plot、stem函数中加样式控制参数,就可以改变所绘制图形的色彩、线型、数据点形,制作出样式丰富的各种图形。

表2给出了常用样式控制参数设置值的含义。

表2常用样式控制参数设置值及其含义

线型

符号

-

:

-.

--

含义

实线

虚线

点划线

双划线

色彩

b

g

r

c

M

y

k

w

绿

品红

数据点形

+

*

d

H

p

s

o

实心黑点

十字符

八线符

菱形符

六角星

五角星

方块符

空心圆圈

在图形中加文本标注函数gtext(‘string’)

当执行该命令时,在图中会出现一个十字形指针,用鼠标拖动到需要的地方,然后单击鼠标,即可将字符串添加到图形中。

说明:

MATLAB中关于图形修饰的命令很丰富,限于篇幅,这里不再展开。

如图例函数legend等。

此外,还可通过一些精细指令设置,实现在图上标识希腊字、数学符等特殊字符,以及设置上下标、对字体或大小进行控制。

示例6:

将下面三个图形绘制在一个图形窗口中:

sin(x),4xexp(-x),sin(x)-0.5;

x=0:

pi/10:

4*pi;

plot(x,sin(x),'

r+:

'

holdon;

y2=4*x.*exp(-x);

plot(x,y2,'

m*-.'

plot(x,sin(x)-0.5,'

bo-'

legend('

sin(x)'

'

4xexp(-x)'

sin(x)-0.5'

axis([04*pi-1.61.6]);

title('

示例6'

gtext('

正弦函数'

指数函数'

结果如图4所示。

图4

示例:

6,绘制3维曲线(宝石项链)

t=(0:

0.02:

2)*pi;

x=sin(t);

y=cos(t);

z=cos(2*t);

plot3(x,y,z,'

b-'

x,y,z,'

rd'

view([-82,58]);

%调整视角

boxon;

%添加盒状围栏

链'

宝石'

),

结果如图5所示;

图5

7,绘制3维曲面

[X,Y,Z]=peaks(30);

%自动生成三维测试图形;

surf(X,Y,Z);

%三维曲面图6;

mesh(X,Y,Z);

%三维网格图7;

图6

图7

5常用信号的MATLAB表示

6.1单位冲激函数δ(t)、单位冲激序列δ(n)

示例7:

t=-5:

0.01:

5;

y=(t==0);

subplot(121);

plot(t,y,'

r'

n=-5:

x=(n==0);

subplot(122);

stem(n,x);

运行结果如图5所示。

程序说明:

(1)、由n=-5:

5得到一个1×

11数组n;

而在x=(n==0)中,n==0是一个向量运算,即向量n中的每一个元素与0比较是否相等,其比较结果0或1放在x中。

这样得到的向量x也是1×

11数组,且正好就是单位冲激序列δ(n)。

(2)、在MATLAB中,任何向量x的下标是从1开始的,不能取零或负值,而x(n)中的时间变量n则不此受限制。

因此向量x的下标与时间变量n是两个概念,如本例中向量x(n)的下标是从1到11,而时间变量n是从-5到5。

所以必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。

在信号的表示和运算中,这一点请务必注意;

只有当序列x(n)的时间变量正好是从1开始时,才能省去时间变量n,因为此时向量的下标与时间变量相同。

(3)单位冲激函数δ(t)的实现方法实际上与单位冲激序列δ(n)是完全相同的,都是用序列表示。

只不过表示连续时间信号的序列中两相邻元素所对应的时间间隔更小,如本例中t的间隔为0.01,而表示离散时间信号的序列中两相邻元素所对应的时间间隔一般为1。

由于单位冲激序列在信号与系统中经常使用,我们专门编制一个函数文件delta.m,在后面的实验部分直接调用该函数即可产生需要的波形。

%delta.m

function[x,n]=delta(n1,n2,k)

%产生冲激序列δ(n-k),其中n1<

=k<

=n2

ifnargin~=3

disp('

输入不正确,输入参数要有三个!

return;

elseif((k<

n1)|(k>

n2)|(n1>

n2))

error('

输入不正确,输入参数要应满足n1<

=n2!

end

n=n1:

n2;

x=((n-k)==0);

6.2单位阶跃函数ε(t)、单位阶跃序列ε(n)

只要将前面冲激函数(示例7)中的关系运算“==”改为“>

=”,步长变小;

就可得到单位阶跃函数ε(t)、单位冲激序列ε(n),如图6所示。

我们编制了函数文件stepseq.m来生成单位阶跃序列ε(n-n0)。

function[x,n]=stepseq(n1,n2,n0)

%产生序列u(n-n0),其中n1<

=n<

=n2,n1<

=n0<

elseif((n0<

n1)|(n0>

x=((n-n0)>

=0);

示例8:

绘图表示

(1)门函数;

(2)序列x(n)=ε(n+3)-ε(n-5)。

t=-3:

0.05:

3;

z1=((t+1)>

=0);

%ε(t+1)

z2=((t-1)>

%ε(t-1)

g=z1-z2

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

当前位置:首页 > 外语学习 > 韩语学习

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

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