信号MATLAB实验指导书.docx

上传人:b****9 文档编号:25045482 上传时间:2023-06-04 格式:DOCX 页数:33 大小:355.84KB
下载 相关 举报
信号MATLAB实验指导书.docx_第1页
第1页 / 共33页
信号MATLAB实验指导书.docx_第2页
第2页 / 共33页
信号MATLAB实验指导书.docx_第3页
第3页 / 共33页
信号MATLAB实验指导书.docx_第4页
第4页 / 共33页
信号MATLAB实验指导书.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

信号MATLAB实验指导书.docx

《信号MATLAB实验指导书.docx》由会员分享,可在线阅读,更多相关《信号MATLAB实验指导书.docx(33页珍藏版)》请在冰豆网上搜索。

信号MATLAB实验指导书.docx

信号MATLAB实验指导书

 

《信号与系统》

实验指导书

张建奇骆崇编写

 

浙江工业大学之江学院信息工程分院

2012年2月

目录

实验一MATLAB的基本使用1

一、实验目的1

二、实验原理1

三、实验内容与要求8

四、实验报告9

实验二时域波形的MATLAB实现10

一、实验目的10

二、预习要求10

三、实验原理10

四、实验内容与要求18

五、实验报告19

实验三用MATLAB对系统时域分析20

一、实验目的20

二、预习要求20

三、实验原理20

四、实验内容与要求29

实验一MATLAB的基本使用

一、实验目的

1、了解和掌握MATLAB的基本操作

2、了解MATLAB的库函数

3、会用MATLAB进行简单的操作。

二、实验原理

1、界面操作

MATLAB是“MATrixLABoratory”的缩写(矩阵实验室),它是由美国Mathworks公司于1984年正式推出的一种科学计算软件,由于其强大的功能,在欧美的一些大学里MATLAB已经成为许多诸如数字信号处理、自动控制理论等高级教程的主要工具软件,同时也成为理工科学生,必须掌握的一项基本技能。

当需要运行程序时,只需选择桌面上(或开始)中的MATLAB6.5应用程序图标即可

通常情况下,MATLAB的工作环境主要由一下几个窗口组成:

命令窗口(CommandWindow)

工作区间浏览器(Workspace)

历史命令窗口(CommandHistory)

图形窗口(Figure)

文本编辑窗口(Editor)

当前路径窗口(CurrentDirectory)

MATLAB的命令窗与命令操作

当用户使用命令窗口进行工作时,在命令窗口中可以直接输入相应的命令,系统将自动显示信息。

例如在命令输入提示符“>>”后输入指令:

>>t=[1,2,3;4,5,6;7,8,9];

按回车键(Enter)后,系统即可完成对变量t的赋值。

MATALB提供了非常方便的在线帮助命令(help),它可提供各个函数的用法指南,包括格式、参数说明、注意事项及相关函数等内容。

2、图形窗

MATLAB图形窗(Figure)主要用于显示用户所绘制的图形。

通常,只要执行了任意一种绘图命令,图形窗就会自动产生。

3、文本编辑窗

文本编辑窗的作用就是用来创建、编辑和调试MATLAB相关文件(或称程序)(.M文件),它与一般的编辑调试器有相似的功能。

例sy.m

MATLAB命令编辑有行命令方式和文件方式两种:

1、行命令方式,即在命令窗口中一行一行地输入命令,计算机对每一行命令作出反应。

因此,只能编辑简单的程序,在命令窗口执行完一个程序后,程序自动消失,不能重复使用。

2、把程序写成一个由多行语句组成的文件(.M文件),让MATLAB来执行这个文件中的全部语句。

MATLAB文本编辑器的功能就是完成编写、修改和调试这种程序,程序执行完一次后可以重复使用。

MATLAB6.5编辑窗

4、MATLAB的基本语法

1)变量及其赋值

(1).赋值要求

在MATLAB中,变量都代表矩阵。

列矢量可被当作只有一列的矩阵;行矢量也可被当作只有一个行的矩阵;标量(或常数)应看作11阶的矩阵。

在输入矩阵时,应遵循以下规则:

(a)整个矩阵的值应放在方括号中:

(b)同一行中各元素之间以逗号“,”或空格分开;

(c)不同行的元素以分号“;”隔开。

例如,在MATLAB的命令窗口中输入:

>>w=[123;345;678](按回车键Enter)

则显示结果为:

w=123

456

789

如果不希望显示处理结果,可以在语句结尾加上分号“;”,这在编写M文件时非常有用。

例如利用表达式赋值,在语句结尾加上分号“;”:

>>y=[-2.5*3,(1+2+4)/5,sqrt

(2)](按回车键Enter)

显示结果为:

y=-7.50001.40001.4142

2.)变量的元素的赋值

在MATLAB中,变量的元素(即矩阵元)用圆括号“( )”

(也称为下标)来注明,一维矩阵(也称数组)中的元素用一个下标表示,二维矩阵由两个下标数构成,

对三维矩阵则由三个下标数构成。

如w(2,3)表示变量w的第2行第3列元素。

在MATLAB中可以单独给元素赋值,例如

>>w(2,3)=10;w(1,2)=1.5;(按回车键Enter)

完成对矩阵w的第2行第3列和第1行第2列的元素赋值。

如给w的第4行全行赋值,可用冒号“:

”。

例如,键入

>>w(4,:

)=[5,3,2]

回车则显示:

w=1.00001.50003.0000

3.00004.000010.0000

6.00007.00008.0000

5.00003.00002.0000

(2)利用特殊矩阵和数组赋值

例如产生一个矩形序列R20(n),可用ones函数完成:

>>Rn=ones(1,20);

表B-1常见生成矩阵的函数(部分)

函数

功能说明

函数

功能说明

zeros

生成一个元素全部为0的矩阵或数组

eye

生成一个单位矩阵或数组

ones

生成一个元素全部为1的矩阵或数组

linspace

生成一个线性间隔的行矢量

rand

生成随机矩阵或数组,元素是在(0,1)之间服从均匀分布。

randn

生成随机矩阵或数组,元素服从均值为0,方差为1的正态分布。

2)复数的赋值方式

MATLAB的每一个元素都可以是复数,实数是复数的特例。

复数的虚数部分用i或j表示。

例如,键入

>>c=3+5.2i(按回车键Enter)

显示结果:

c=3.0000+5.2000i

>>z=[1+2j,3+4j;5+6j,7+8j]

或>>z=[1+2*j,3+4*j;5+6*j,7+8*j]

得:

    z=1.0000+2.0000i3.0000+4.0000i

5.0000+6.0000i7.0000+8.0000i

3)MATLAB内部特殊变量和常数

在MATLAB内部中,为了处理方便定义了一些特殊的变量和常数。

1)变量ans:

临时变量,通常表示当前的答案。

2)常数eps:

表示浮点相对精度,按IEEE标准,

3)、常数pi:

表示圆周率

4)、常数Inf:

代表正无穷大,一般被0除或溢出则产生无穷大结果。

5)、虚数单位i,j:

表示复数虚部单位,

6)、NaN:

表示非数值。

如当Inf-Inf,Inf/Inf,0*Inf,0/0均产生该结果。

4)运算符、复数运算及流程控制

MATLAB的运算符可以分为3类。

(1)算术运算符

算术运算符

运算符

功能说明

运算符

功能说明

运算符

功能说明

+

加法:

两矩阵对应元素相加

.*

矩阵元素相乘

/

矩阵右除

-

减法:

两矩阵对应元素相减

./

矩阵元素右除

\

矩阵左除

*

矩阵乘法:

两矩阵相乘

.\

矩阵元素左除

^

矩阵幂

矩阵转置共轭

.^

矩阵元素的幂

冒号操作符

.’

矩阵转置非共轭

 

(2)关系运算符

关系操作符

<

<=

>

>=

==

~=

功能说明

小于

小于或等于

大于

大于或等于

等于

不等于

(3)进行逻辑运算

逻辑操作符

功能说明

&

与:

当两个操作数为真时,结果为真,其它为假。

|

或:

当两个操作数至少有一个为真时,结果为真。

~

非:

这是一个单目运算符,它只有一个操作数。

操作数为真,结果为假;操作数为假,结果为真。

优先级依次为:

算术运算符、关系运算符、逻辑运算符。

 

三、实验内容与要求

1、运行下列矩阵》》A=[1234;5678;9876;5432]

2、将上矩阵以.m文件存储运行

3、先生成两个矩阵A-[3695;2483;1237;5148;和B=[1232;2415;1472;7429],后求解A.*B,A./B,A.^B,A.\B

4、运行下例程序

%program

A=1;

w0=2*pi;

phi=pi/6;

t=0:

0.001:

8;

ft=A*sin(w0*t+phi);

plot(t,ft);

5、运行下例程序

%program

n=0:

10;A=1;a=-0.6;

fn=A*a.^n;

stem(n,fn);

6、运行下列程序

%program

t=0:

0.01:

5;

subplot(3,1,1);

x=sawtooth(2*pi*t);

plot(t,x);%产生周期为1的锯齿波

subplot(3,1,2);

t=0:

0.001:

4;

T=1;

ft=rectpuls(t-2*T,2*T);

plot(t,ft);%产生矩形脉冲信号

subplot(3,1,3);

z=sawtooth(2*pi*t,0.5);

plot(t,z);%产生周期为1的标准三角波

四、实验报告

1、写出运行结果。

2、画出4~6题的波形图。

3、分析各运行结果。

实验二时域波形的MATLAB实现

一、实验目的

1、了解时域波形的特点。

2、了解MATLAB的常用函数。

3、掌握用MATLAB产生各种时域波形。

二、预习要求

1、熟悉数字信号处理中的常用信号波形。

2、熟悉MATLAB基本语句。

三、实验原理

1.MATLAB基本知识

1)连续时间基本绘图命令

(1)figure命令:

新建一个图形窗口,并自动给它排出序号。

格式:

figure

(2)subplot命令:

将图形窗口分成nm个子图形窗口,并选择第p个子图形窗口作为当前图形窗口,供绘制函数作图使用。

格式:

subplot(m,n,p)

(3)二维曲线绘制函数plot

格式一:

plot(y)--输入一个数组的情况

功能:

如果y是一个数组,函数plot(y)给出线性直角坐标的二维图。

该二维图以y中元素的下标作为X坐标,y中元素的值作为Y坐标,

一一对应画在X—Y坐标平面图上,而且将各点以直线相连。

格式二:

plot(x,y)--输入两个数组的情况

功能:

绘出以x元素为横坐标、y元素为纵坐标的曲线。

数组x和y必须具有相同长度。

格式三:

plot(y,’字符串’)或:

plot(x,y,’字符串’)

用户只需在plot的输入变量组后面,加一个单引号,在引号内部放入线型、颜色以及标记符号的标志符即可完成。

线型、颜色以及标记符号的标志符见表1。

表1

颜色标志符

符号标志符

线型标志符

b

.

-

实线

g

绿

o

圆圈

:

点线

r

x

×号

-.

点划线

c

+

+号

--

虚线

m

品红

*

星号

y

s

平方号

k

d

钻石符号

2)离散时间序列的图形表示

MATLAB提供了一条专用函数命令stem,其调用格式为:

格式一:

stem(x,’string’)

功能:

绘制序列x(n)的棒状图,横坐标为序列的下标序号。

棒的末端用“string”指定的标记符号表示,其中“string”可用标记符号如表1所示,缺省时末端用小圆圈“o”表示。

格式二:

stem(x,y,’string’)

功能:

绘制序列x(n)的棒状图,横坐标由矢量x(n)指定。

2.MATLAB应用举例

1)正弦信号

调用函数:

%program

A=1;

w0=2*pi;

phi=pi/6;

t=0:

0.001:

8;

ft=A*sin(w0*t+phi);

plot(t,ft);

运行结果:

2)抽样信号

调用格式:

Y=sinc(t)

%program

t=-3*pi:

pi/100:

3*pi;

ft=sinc(t*pi);

plot(t,ft);

运行结果:

3)矩形脉冲信号

调用格式:

Y=rectpuls(t,width)

产生一个幅度为1,宽度为width以t=0为对称中心的矩形波。

Width的默认值为1.

4)三角波信号

调用格式:

Y=tripuls(t,with,skew)

With值为三角波宽度。

Skew产生斜切为s的三角波。

S值的计算:

最大值出现位置的横坐标与半边最大值的比值,S值的范围-1

当S=0时为对称三角形。

当S>0波形在正半边,S<0时波形在负半边,

5)周期方波信号信号的产生

调用方式

(1)x=Square(t);产生周期为

,峰值为

的方波

(2)x=Square(t,duty));产生指定周期、峰值为

的方波,duty为占空比。

6)周期锯齿波和三角波信号

调用方式

(1)x=sawtooth(t);产生周期为

,峰值为

1的锯齿波

(2)x=sawtooth(t,width));根据width值产生不同波形的波,其值为0~1之间的数,当width=0.5时,产生标准正三角波。

%program

t=0:

0.01:

5;

subplot(3,1,1);

x=square(2*pi*t);

plot(t,x);%产生周期为1的方波

subplot(3,1,2);

y=sawtooth(2*pi*t,1);

plot(t,y);%产生周期为1的锯齿波

subplot(3,1,3);

z=sawtooth(2*pi*t,0.5);

plot(t,z);%产生周期为1的标准三角波

运行结果:

7)单位脉冲序列

调用函数

x=[zeros(1,N)];

stem(n,y);

%program

N=64;

k=20;

x=[zeros(1,N)];

x(k)=1;

xn=0:

N-1;

stem(xn,x);

axis([-1,65,0,1.1])

运行结果:

8)单位阶跃响应

调用函数

y=ones(1,N);

9)正弦序列

%program

n=0:

39;

fn=sin(pi/6*n);

stem(n,fn);

运行结果:

10)指数序列

%program

n=0:

10;

A=1;

a=-0.6;

fn=A*a.^n;

stem(n,fn);

运行结果:

11)复正弦信号

%program

N=32;

A=3;

w=314;

n=0:

N-1;

fn=A*exp(j*w*n);

stem(n,fn);

axis([-1,32,-3.2,3.2])

运行结果:

 

12)任意信号

%program

N=8;

x=zeros(1,N);

x

(1)=8.0;

x

(2)=3.4;

x(3)=1.8;

x(4)=5.6;

x(5)=2.9;

x(6)=0.7;

n=0:

N-1;

stem(n,x);

axis([-1,8,0,8.2])

运行结果:

 

四、实验内容与要求

1、编写程序实现下列波形

2、编写实现下列波形的程序

3、编写实现下列波形的程序

 

4、编写实现下列周期脉冲波形的程序

5、编写实现下列离散波形的程序

五、实验报告

1、用MATLAB语句编写程序,完成各波形画图。

2、比较语言的使用。

实验三用MATLAB对系统时域分析

一、实验目的

1、了解和掌握连续时间系统的时域分析方法。

2、了解和掌握离散时间系统的时域分析方法。

3、掌握用MATLAB对系统进行分析。

二、预习要求

1、了解和掌握连续时间系统的时域分析概念。

2、了解和掌握离散时间系统的时域分析概念。

3、了解MATLAB编程方法。

三、实验原理

1、连续时间系统分析的概念

系统微分方程

系统的冲激响应

系统的阶跃响应

系统的零状态响应

为任意函数

2、用MATLAB求解冲激响应、阶跃响应和零状态响应

1)冲激响应调用格式:

Y=IMPULSE(SYS,T)

T表示计算系统相应的抽样点向量,SYS是系统模型,可用来表示微分方程、差分方程和状态方程。

sys=tf([b1b0],[1a1a2]);

【例1】微分方程

,利用MATLAB求其冲激响应。

可求得

%program1冲激响应求法

t=0:

0.1:

4;

sys=tf([32],[132]);

y1=impulse(sys,t);

y2=-exp(-t)+4*exp(-2*t);

plot(t,y1,t,y2,'+');

xlabel('Time(sec)');

ylabel('y(t)');

legend('y1','y2',2);

运行结果:

2)阶跃响应调用格式:

Y=STEP(SYS,T)

T表示计算系统相应的抽样点向量,SYS是系统模型,可用来表示微分方程、差分方程和状态方程,在这里特制微分方程,可通过MATLAB中的TF函数获得。

【例2】微分方程

,利用MATLAB求其阶跃响应。

可求得

%program2阶跃响应求法

t=0:

0.1:

4;

sys=tf([32],[132]);

y1=step(sys,t);

y2=-exp(-t)+4*exp(-2*t);

plot(t,y1,t,y2,'+');

xlabel('Time(sec)');

ylabel('y(t)');

legend('y1','y2',2);

运行结果:

3)零状态响应

函数调用形式

Y=LSIM(SYS,U,T)

其中Y表示响应,U系统输入信号向量,T表示计算系统相应的抽样点向量,SYS是系统模型,可用来表示微分方程、差分方程和状态方程,在这里特制微分方程,可通过MATLAB中的TF函数获得。

【例3】已知线性时不变系统微分方程为

输入信号

,求其零状态响应.。

%program3零状态响应

t=0:

0.1:

4;

sys=tf([1],[1,3,2]);

f=exp(-1*t);

y1=lsim(sys,f,t);

y2=exp(-t)

plot(t,y1,t,y2,'+');

xlabel('Time(sec)');

ylabel('y(t)');

leqend('y1','y2',2);

运行结果:

3、离散时间系统的基本概念

离散时间系统的差分方程

离散时间系统的单位脉冲响应

离散时间系统的阶跃响应

离散时间系统的零状态响应

用MATLAB求系统的脉冲响应、阶跃响应和零状态响应

1)单位脉冲响应的求解

(1)调用格式:

Impz(b,a)

其中b,a系数向量

(2)调用格式:

impz(b,a,n)

离散系统在0~n范围内的响应

(3)调用格式

impz(b,a,n1:

n2);

【例4】离散系统在n1~n2时间内的波形

单位脉冲响应h(n)

%program4

a=[1,-1,0.9];

b=[1];

impz(b,a,-10:

40)

运行结果:

2)离散时间系统的零状态响应

系统的差分方程

调用格式:

Y=filter(b,a,x)

其中:

b,a是描述系统差分方程的系数决定的,表示离散系统的两个行向量。

X是包含输入序列非零样值点的行向量。

【例5】已知描述离散系统的差分方程

用MATLAB画出该系统的单位阶跃响应。

%program5单位阶跃响应

a=[110.25];

b=[1];

n=0:

15;

x=ones(1,length(n));

y=filter(b,a,x);

stem(n,y);

title(‘离散系统阶跃响应’);

xlabel(‘n’);

ylabel(‘g(n)’)

运行结果:

【例6】已知描述离散系统的差分方程

输入序列

用MATLAB分析:

1)画出输入序列的时域波形

2)求出零状态响应在0~20区间的样值

3)画出零状态响应的波形图

%program6程序

a=[1-0.250.5];

b=[11];

n=0:

20;

x=(1/2).^n;

y=filter(b,a,x);

subplot(2,1,1);

stem(n,x);

title('输入序列');

subplot(2,1,2);

stem(n,y);

title('响应序列')

运行结果:

4、离散卷积的计算

调用格式:

Y=conv(a,b)

其中a、b为两待卷积序列的向量N=L+M-1

【例7】已知序列

x(n)={1,2,3,4:

n=0,1,2,3},y(n)={2,1,2,1,2;n=0,1,2,3,4}

计算

并画出卷积结果

%program计算卷积

x=[1,2,3,4];

y=[2,1,2,1,2];

z=conv(x,y);

N=length(z);

Stem(0:

N-1,z)

%program计算卷积

x=[1,2,3,4];

y=[2,1,2,1,2];

z=conv(x,y);

N=length(z);

n=0:

N-1;

Stem(n,z)

运行结果:

 

四、实验内容与要求

1、求连续时间系统的冲激响应

微分方程

利用MATLAB求其冲激响应

2、求连续时间系统的零状态响应

已知微分方程为

,输入信号

,求其零状态响应.。

3、已知描述离散系统的差分方程

用MATLAB画出该系统0~50时间范围内的单位脉冲响应。

4、已知描述离散系统的差分方程

输入序列

用MATLAB分析:

1)画出输入序列的时域波形

2)求出零状态响应在0~20区间的样值

3)画出零状态响应的波形图

5、已知序列

x(n)={9,8,7,6:

n=0,1,2,3},h(n)={3,4,5,6,7;n=0,1,2,3,4}

计算

并画出卷积结果

五、实验报告

1、编写MATLAB程序完成要求。

2、分析理论波形和实际波形的区别及原因。

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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