MATLAB实训实验.docx

上传人:b****6 文档编号:13711179 上传时间:2023-06-16 格式:DOCX 页数:29 大小:315.54KB
下载 相关 举报
MATLAB实训实验.docx_第1页
第1页 / 共29页
MATLAB实训实验.docx_第2页
第2页 / 共29页
MATLAB实训实验.docx_第3页
第3页 / 共29页
MATLAB实训实验.docx_第4页
第4页 / 共29页
MATLAB实训实验.docx_第5页
第5页 / 共29页
MATLAB实训实验.docx_第6页
第6页 / 共29页
MATLAB实训实验.docx_第7页
第7页 / 共29页
MATLAB实训实验.docx_第8页
第8页 / 共29页
MATLAB实训实验.docx_第9页
第9页 / 共29页
MATLAB实训实验.docx_第10页
第10页 / 共29页
MATLAB实训实验.docx_第11页
第11页 / 共29页
MATLAB实训实验.docx_第12页
第12页 / 共29页
MATLAB实训实验.docx_第13页
第13页 / 共29页
MATLAB实训实验.docx_第14页
第14页 / 共29页
MATLAB实训实验.docx_第15页
第15页 / 共29页
MATLAB实训实验.docx_第16页
第16页 / 共29页
MATLAB实训实验.docx_第17页
第17页 / 共29页
MATLAB实训实验.docx_第18页
第18页 / 共29页
MATLAB实训实验.docx_第19页
第19页 / 共29页
MATLAB实训实验.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB实训实验.docx

《MATLAB实训实验.docx》由会员分享,可在线阅读,更多相关《MATLAB实训实验.docx(29页珍藏版)》请在冰点文库上搜索。

MATLAB实训实验.docx

MATLAB实训实验

2015/2016学年下学期

《信号与系统》

实验报告

班级:

学号:

学生姓名:

指导教师:

 

2016年3月8日

实验一基本函数仿真

实验项目:

基本函数仿真

实验时间:

2016年3月8日星期二第34节课

实验地点:

1501实验室

实验目的:

1、学习使用MATLAB软件

2、学习MATLAB中各种函数,并应用函数分析

3、对MATALB的进一步的学习了解,熟练掌握MATALB的各种操纵,学会使用MATALB解决复杂的运算并学会用MATALB解决平时学习中的实际问题。

4、了解MATALB的数值运算

5、了解MATALB的基本函数和命令

6、学习掌握MATALB有关命令

实验内容:

1、

(1)题目:

应用MATLAB方法实现单位阶跃信号和矩形脉冲。

(2)程序清单(源程序)

解:

对于阶跃函数,MATLAB中有专门的stairs绘图命令。

例如,实现

和矩形脉冲的程序如下:

t=-1:

2;%定义时间范围向量t

x=(t>=0);

subplot(1,2,1),stairs(t,x);axis([-1,2,-0.1,1.2]);gridon%绘制单位阶跃信号波形

t=-1:

0.001:

1;%定义时间范围向量t

g=(t>=(-1/2))-(t>=(1/2));

subplot(1,2,2),stairs(t,g);axis([-1,1,-0.1,1.2]);gridon%绘制矩形脉冲波形

(3)运行结果(截图)

图1例1图

(4)函数解析

Subplot:

使用方法:

subplot(m,n,p)或者subplot(mnp)。

是将多个图画到一个平面上的工具。

其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果m=2就是表示2行图。

p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。

Stairs:

stairs函数用于绘制阶梯状图

axis函数通常在绘图中用于设置坐标值范围

2、

(1)题目

例2应用MATLAB方法生成信号

的波形。

(2)程序清单

解:

为生成函数

可直接调用MATLAB中的专门命令,程序如下:

t=-5:

0.01:

5;%定义时间范围向量t

f=sinc(t);%计算Sa(t)函数

plot(t,f);gridon%绘制Sa(t)的波形

(3)运行结果

图2例2程序运行结果一

的关系如下:

生成信号

波形的MATLAB程序如下:

t=-3*pi:

0.01*pi:

3*pi;%定义时间范围向量t

f=sinc(t/pi);%计算Sa(t)函数

plot(t,f);gridon%绘制Sa(t)的波形

(3)运行结果

图3例2程序运行结果二

(4)函数解析

Plot:

函数命令plot是MATLAB二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。

它可以生成线段、曲线和参数方程曲线的函数图形。

gridon是matlab中的一种函数,表示在画图的时候添加网格线

3、

(1)题目

应用MATLAB方法生成相加信号

和相乘信号

的波形。

(课本上没有)

(2)程序清单

解:

对相加信号

,程序如下:

symst;%定义符号变量t

f=cos(18*pi*t)+cos(20*pi*t);%计算符号函数f(t)=cos(18*pi*t)+cos(20*pi*t)

ezplot(f,[0pi]);gridon%绘制f(t)的波形

(3)运行结果

图4例3程序运行结果一

对相乘信号

,程序如下:

t=-5:

0.01:

5;%定义时间范围向量

f=sinc(t).*cos(20*pi*t);%计算函数f(t)=sinc(t)*cos(20*pi*t)

plot(t,f);%绘制f(t)的波形

title('sinc(t)*cos(20*pi*t)');gridon%加注波形标题

运行结果如图5所示。

图5例3程序运行结果二

(4)函数解析

syms函数用于创建符号对象

ezplot即:

Easytousefunctionplotter。

它是一个易用的一元函数绘图函数。

特别是在绘制含有符号变量的函数的图像时,ezplot要比plot更方便。

因为plot绘制图形时要指定自变量的范围,而ezplot无需数据准备,直接绘出图形。

4、

(1)题目

应用MATLAB方法生成调制信号

的波形。

(2)程序清单

解:

对调制信号

,程序如下:

symst;%定义符号变量t

f=(2+2*sin(4*pi*t))*cos(50*pi*t);%计算符号函数f(t)=(2+2*sin(4*pi*t))*cos(50*pi*t)

ezplot(f,[0pi]);gridon%绘制f(t)的波形

(3)运行结果如图6所示。

图6例4图

(4)函数解析

gridon是matlab中的一种函数,表示在画图的时候添加网格线

实验二连续系统时域响应仿真

实验项目:

连续系统时域响应仿真

实验时间:

2016年3月22日星期二第34节课

实验地点:

1501实验室

实验目的:

1、对MATALB的进一步的学习了解,熟练掌握MATALB的各种操纵,学会使用MATALB解决复杂的运算并学会用MATALB解决平时学习中的实际问题。

2、了解MATALB的数值运算

3、了解MATALB的基本函数和命令

4、学习掌握MATALB有关命令

实验内容:

任务1

(1)题目

例5设方程

,试求零状态响应

(2)程序清单(源程序)

解:

程序如下:

yzs=dsolve('D2y+5*Dy+6*y=2*exp(-t)','y(0)=0,Dy(0)=0')%利用dslove命令求解零状态响应

ezplot(yzs,[08]);gridon%绘制零状态响应曲线

运行结果:

yzs=exp(-t)+exp(-3*t)-2*exp(-2*t)

即:

(3)运行结果(截图

图7例5图

(4)函数解析

solve(f,v):

求方程关于指定自变量的解,f可以是用字符串表示的方程、符号表达式或符号方程

dsolve:

微分方程

任务2

(1)题目

已知二阶系统方程

对下列情况分别求

,并画出其波形。

(课本上没有)

a.

b.

c.

d.

(2)程序清单

解:

程序如下:

R=input('电阻R=');%以交互方式输入电阻R的值

L=input('电感L=');%以交互方式输入电阻L的值

C=input('电容C=');%以交互方式输入电阻C的值

b=[1/(L*C)];

a=[1R/L1/(L*C)];

impulse(b,a);%绘制脉冲响应h(t)的波形

(3)运行结果(截图)

a.电阻R=4电感L=1电容C=1/3

图8例6程序运行结果一

b.电阻R=2电感L=1电容C=1

图9例6程序运行结果二

c.电阻R=1电感L=1电容C=1

图10例6程序运行结果三

d.电阻R=0电感L=1电容C=1

图11例6程序运行结果四

(4)函数解析(例如题1-2中,解释sinc()函数的作用)

7、

(1)题目实现卷积

,其中:

(课本上没有)

(2)程序清单

解:

主程序如下:

p=0.01;%取样时间间隔

nf=0:

p:

1;%f(t)对应的时间向量

f=2*((nf>=0)-(nf>=1));%序列f(n)的值

nh=0:

p:

2;%h(t)对应的时间向量

h=(nh>=0)-(nh>=2);%序列h(n)的值

[y,k]=sconv(f,h,nf,nh,p);%计算y(t)=f(t)*h(t)

subplot(3,1,1),stairs(nf,f);gridon%绘制f(t)的波形

title('f(t)');axis([0302.1]);

subplot(3,1,2),stairs(nh,h);gridon%绘制h(t)的波形

title('h(t)');axis([0302.1]);

subplot(3,1,3),plot(k,y);gridon%绘制y(t)=f(t)*h(t)的波形

title('y(t)=f(t)*h(t)');axis([0302.1]);

子程序sconv如下:

%此函数用于计算连续信号的卷积y(t)=f(t)*h(t)

function[y,k]=sconv(f,h,nf,nh,p)

%y:

卷积积分y(t)对应的非零样值向量

%k:

y(t)对应的时间向量

%f:

f(t)对应的非零样值向量

%nf:

f(t)对应的时间向量

%h:

h(t)对应的非零样值向量

%nh:

h(t)对应的时间向量

%p:

取样时间间隔

y=conv(f,h);%计算序列f(n)与h(n)的卷积和y(n)

y=y*p;%y(n)变成y(t)

left=nf

(1)+nh

(1);%计算序列y(n)非零样值的起点位置

right=length(nf)+length(nh)-2;%计算序列y(n)非零样值的终点位置

k=p*(left:

right);%确定卷积和y(n)非零样值的时间向量

(3)运行结果

图12例7图

(4)函数解析

Function函数调用

8、

(1)题目实现卷积

,其中:

(课本58)

(2)程序清单

解:

主程序如下:

p=0.01;%取样时间间隔

nf=0:

p:

2;%f(t)对应的时间向量

f=2*((nf>=0)-(nf>=2));%序列f(n)的值

nh=0:

p:

4;%h(t)对应的时间向量

h=exp(-nh);%序列h(n)的值

[y,k]=sconv(f,h,nf,nh,p);%计算y(t)=f(t)*h(t)

subplot(3,1,1),stairs(nf,f);gridon%绘制f(t)的波形

title('f(t)');axis([0602.1]);

subplot(3,1,2),plot(nh,h);gridon%绘制h(t)的波形

title('h(t)');axis([0602.1]);

subplot(3,1,3),plot(k,y);gridon%绘制y(t)=f(t)*h(t)的波形

title('y(t)=f(t)*h(t)');axis([0602.1]);

子程序sconv同例7。

(3)运行结果如图13所示。

图13例8图

(4)函数清单

axis([xminxmaxyminymax])用来标注输出的图线的最大值最小值

exp函数是一个数论函数,可以用来表示一定的算术基本定理。

exp函数(exp-function)一种数论函数.依算术基本定理,任何一个自然数n都可惟一地分解成一些质数方幂的乘积形式,在第a个质数p“上的方幂数记为exp}Cn).例如expl<9)=2,exp3<9)=0等.函数.lxexpa(x)称为一元exp函数,而.}xyexp}妇则称为二元exp函数.利用exp函数,算术基本定理可以表述成

 

实验三连续信号的频谱仿真

实验项目:

连续信号的频谱仿真

实验时间:

2016年4月7日星期四第12节课

实验地点:

1501实验室

实验目的:

1、对MATALB的进一步的学习了解,熟练掌握MATALB的各种操纵,学会使用MATALB解决复杂的运算并学会用MATALB解决平时学习中的实际问题。

2、了解MATALB的数值运算

3、了解MATALB的基本函数和命令

4、学习掌握MATALB有关命令

实验内容:

9、

(1)题目

求图14(a)所示周期矩形脉冲信号的傅里叶级数表示式,并用MATLAB方法求出N=7和N=21时的合成图。

(2)程序清单

解:

该信号的系数:

前N项的合成表达式为:

为奇数

利用MATLAB工具分析的程序如下:

t=-3:

0.001:

3;%定义时间范围向量t

N=input('N=');%以交互方式输入N的值

F0=0.5;

fN=F0*ones(1,length(t));

forn=1:

2:

N

fN=fN+cos(pi*n*t)*sinc(n/2);

end

plot(t,fN);%绘制fN的波形

title(['N='num2str(N)]);

axis([-33-0.21.2]);gridon

(3)运行结果如图14(b)和图14(c)所示。

 

(a)

 

(a)

(b)(c)

图14周期矩形脉冲的合成

(4)函数解析

Input:

输入函数

10、

(1)题目

如图15所示周期矩形脉冲

,试绘出其频谱图。

(课本94页)

图15例10图

(2)程序清单

解:

程序如下:

clearall

symstnTtaoA

T=4;A=1;tao=1;

f=A*exp(-j*n*2*pi/T*t);

fn=int(f,t,-tao/2,tao/2)/T;%计算傅里叶系数

fn=simple(fn);%化简

n=[-20:

-1,eps,1:

20];%给定频谱的整数自变量,eps代表0

fn=subs(fn,n,'n');%计算傅里叶系数对应各个n的值

subplot(2,1,1),stem(n,fn,'filled');%绘制频谱

line([-2020],[00]);%在图形中添加坐标线

title('周期矩形脉冲的频谱');gridon

subplot(2,1,2),stem(n,abs(fn),'filled');%绘制频谱

title('周期矩形脉冲的幅度谱');gridon

axis([-202000.3]);

(3)运行结果如图15所示。

图15例10频谱图

(4)函数解析

Int:

表示赋值

Simple:

表示化简

11、

(1)题目如图16(a)所示三角波信号,即:

,试求其频谱

(课本95页)

(a)(b)

图16例11图

(2)程序清单

解:

程序如下:

symstwfft;%定义符号变量

f=(1-(abs(t)/2));%三角波信号

ft=f*exp(-j*w*t);%计算被积函数

F=int(ft,t,-2,2);%计算傅里叶变换F(w)

F=simple(F);F%化简

axis([-3301.1]);title('三角波信号');

ezplot(abs(F),[-8:

0.01:

8]);gridon%绘制三角波信号的频谱

title('三角波信号的频谱');

(3)运行结果:

F=-(cos(2*w)-1)/w^2

即:

频谱如图16(b)所示。

12、

(1)题目二阶低通滤波器特性为

即:

和1时,分别求幅频特性和相频特性。

(2)程序清单

解:

程序如下:

Q=input('输入Q=');%以交互方式输入Q

normalizedw=linspace(0.1,10,100);

H=1./(1-normalizedw.^2+j*normalizedw/Q);%二阶低通滤波器的频率特性表达式

subplot(1,2,1),plot(normalizedw,abs(H));%绘制幅频特性曲线

title('幅频特性曲线');grid

subplot(1,2,2),plot(normalizedw,angle(H));%绘制相频特性曲线

title('相频特性曲线');grid

(3)运行结果如图17和图18所示。

输入Q=1/sqrt

(2)

图17例12程序运行结果一

输入Q=1

图18例12程序运行结果二

(4)函数解析

13、

(1)题目三阶低通滤波器特性为

试求:

a.该系统的幅频特性

和相频特性

,b.该系统的冲激响应

(2)程序清单

解:

求幅频特性

和相频特性

的程序如下:

w=0:

0.01:

5;

H=1./((j*w).^3+3*(j*w).^2+2*j*w+1);%三阶低通滤波器的频率特性表达式

subplot(1,2,1),plot(w,abs(H));%绘制幅频特性曲线

title('幅频特性曲线');grid;axistight;

subplot(1,2,2),plot(w,angle(H));%绘制相频特性曲线

title('相频特性曲线');grid;axistight;

(3)运行结果如图19所示。

图19例13程序运行结果一

求该系统的冲激响应

的程序如下:

b=[1];%分子多项式系数

a=[1321];%分母多项式系数

impulse(b,a);%冲激响应h(t)

运行结果如图20所示。

图20例13程序运行结果二

(4)函数解析

14、

(1)题目应用MATLAB方法生成信号

,其中

的波形如图21所示。

(课本119)

图21例14图

(2)程序清单

解:

程序如下:

t=-3*pi:

0.01:

3*pi;%定义时间范围向量

s=sinc(t/pi);%计算Sa(t)函数

subplot(3,1,1),plot(t,s);gridon%绘制Sa(t)的波形

p=zeros(1,length(t));%预定义p(t)的初始值为0

fori=16:

-1:

-16

p=p+rectpuls(t+0.6*i,0.4);%利用矩形脉冲函数rectpuls的平移来产生宽度为0.4,幅度为1的矩形脉冲序列p(t)

end

subplot(3,1,2),stairs(t,p);%用阶梯图形表示矩形脉冲

axis([-101001.2]);gridon

f=s.*p;

subplot(3,1,3),plot(t,f);gridon%绘制f(t)=Sa(t)*p(t)的波形

(3)运行结果如图22所示。

图22例14程序运行结果

(4)函数解析

15、

(1)题目分析如图23所示三角波信号

的取样过程,并画出

的频谱图。

(课本120)

(a)

(b)(c)

图23例15图

(2)程序清单

解:

程序如下:

symstwf;%定义符号变量

f=(1-2*abs(t))*exp(-j*w*t);%计算被积函数

F=int(f,t,-1/2,1/2);%计算傅里叶系数F(w)

F=simple(F);F%化简

subplot(3,1,1),%绘制三角波的幅频特性曲线F(w)

low=-26*pi;high=-low;%设置w的上界和下界

ezplot(abs(F),[low:

0.01:

high]);gridon

axis([lowhigh-0.10.5]);xlabel('\omega');

title('三角波的频谱');

subplot(3,1,2),%绘制经过截止频率为4*pi低通滤波器后的频谱Y1(w)

ezplot(abs(F),[-4*pi:

0.01:

4*pi]);gridon

axis([lowhigh-0.10.5]);xlabel('\omega');

title('低通滤波后的频谱');

%取样信号的频谱是原信号频谱的周期延拓,延拓周期为(2*pi)/Ts

%利用频移特性F[f(t)*exp(-j*w0*t)]=F(w+w0)来实现

subplot(3,1,3);%绘制取样后的频谱Y(w)

Ts=0.2;%取样信号的周期

w0=(2*pi)/Ts;%延拓周期10*pi

fork=-2:

2

ft=f*exp(-j*w0*k*t);

FT=int(ft,t,-1/2,1/2);

ezplot((1/Ts)*abs(FT),[(-4*pi-k*w0):

0.01:

(4*pi-k*w0)]);

holdon

end

axis([lowhigh-0.12.5]);xlabel('\omega');gridon

title('取样后的频谱');

(3)运行结果如图24所示。

图24例15各频谱图

(4)函数解析

axis函数通常在绘图中用于设置坐标值范围

gridon是matlab中的一种函数,表示在画图的时候添加网格线

实验总结:

上机学习MATALB有半个学期的时间,说实话我现在对MATLAB还是摸不着头脑,一方面是自己接触的时间太短,另一方面,就是自己在上机方面投入的时间有限,实践比较少。

现在,我对MATLAB的印象仅仅在绘制一些简单的数学函数图形上,但是我很喜欢MATLAB的简单的语法,易于绘制图形,编程也非常容易,并且具有功能强大的开放式的toolbox。

因此,尽管我一直没有这方面的应用,但是我还是对它非常感兴趣,自己正打算暑假好好研究研究MATLAB。

下面是我学习MATLAB在理论和实践方面的一点心得与体会,可能有些地方自己理解的不是很正确,但是随着学习的深入,我想我可以发现自己的错误所在。

首先我想说的是,在理论方面,在学习MATLAB过程中,我感觉到它和c语言有许多相似之处,他有c语言的特征,但是比c语言编程计算更加简单,适合于复杂的数学运算。

但是MATLAB跟其他语言也有着很大的不同。

众所周知MATLAB是一个基于矩阵运算的软件,但是,真正在运用的时候,特别是在编程的时候,许多人往往没有注意到这个问题。

在使用MATLAB时,受到了其他编程习惯的影响,特别是经常使用的C语言。

因此,在MATLAB编程时,for循环(包括while循环)到处都是。

.这不仅是没有发挥MATLAB所长,还浪费了宝贵的时间。

我这里想说的一点是,往往在初始化矩阵的时候注意到这个问题,懂得了使用矩阵而不是循环来赋值,但是,在其他环节上,就很容易疏忽,或者说,仍然没有摆脱C++、C的思想。

MATLAB博大精深,涉及的内容很多,所以,我认为不要试图掌握MATLAB的每一个功能,熟悉和你专业最相关的部分就可以了,这也是老师在课堂上经常说的。

学MATLAB并不难,难的是学会怎么用,所以经常上机实践是很必要的。

我自己感觉学习MATLAB和以前的编程能力没有太多的关系,所以不要担心自己编程能力差,自己一定用不好MATLAB,只要自己肯在这上面花费时间和精力,就一定能有所收获。

在学习MATLAB的过程中,不要只问不学,并且学MATLAB要有耐心,要大胆的去试,哪怕只有一丁点儿可能,只有自己动手去实践了才能发现错误的所在,利用这个解决

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2