MATLAB实验报告信号与线性系统分析.docx

上传人:b****6 文档编号:7622058 上传时间:2023-01-25 格式:DOCX 页数:19 大小:2.25MB
下载 相关 举报
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.了解MATALB程序设计语言的基本特点,熟悉MATLAB软件的运行环境;

2.掌握变量、函数等有关概念,掌握M文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力;

3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。

【二】MATLAB的基础知识

通过本课程的学习,应基本掌握以下的基础知识:

一.MATLAB简介

二.MATLAB的启动和退出

三.MATLAB使用界面简介

四.帮助信息的获取

五.MATLAB的数值计算功能

六.程序流程控制

七.M文件

八.函数文件

九.MATLAB的可视化

【三】上机练习

1.仔细预习第二部分内容,关于MATLAB的基础知识。

2.熟悉MATLAB环境,将第二部分所有的例子在计算机上练习一遍

3.已知矩阵

求A*B,A.*B,比较二者结果是否相同。

并利用MATLAB的内部函数求矩阵A的大小、元素和、长度以及最大值。

解:

代码:

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

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

A*B

A.*B

两者结果不相同A*B=302418

846954

13811490

A.*B=91621

242524

21169

求A矩阵的行和列:

[M,N]=size(A)

M=

3

N=

3

求A矩阵的长度:

x=length(A)

x=

3

元素和:

sum(sum(A))

ans=

45

最大值:

max(max(A))

ans=

9

4.Fibonacci数组的元素满足Fibonacci规则:

;且

现要求该数组中第一个大于10000的元素。

1)在命令窗口中完成;

2)利用M文件完成;

3)自己定义一个函数文件,并在命令窗口中调用该函数完成。

解:

(1)代码:

b=1;

s=2;

whiles<10000

c=s;

s=s+b;

b=c;

end

结果:

s

s=

10946

(2)M文件中代码:

(保存文件名为Untitled)

结果:

Untitled

s=

10946

(3)代码:

结果:

Fibon

s=

10946

5.在同一个图形窗口的两个子窗口中分别画出

(红色、虚线)和

(蓝色、星号)的波形。

要求有标题,x、y轴有标注。

解:

代码:

x=0:

0.05*pi:

4*pi;

figure

(1);

subplot(1,2,1);

plot(x,(cos((pi/4)*x)),'r:

');

title('cos((pi/4)*x)');

xlabel('X');

ylabel('Y');

subplot(1,2,2);

plot(x,(cos((pi/8)*x)),'b*');

title('cos((pi/8)*x)');

xlabel('X');

ylabel('Y');

结果:

【四】思考题

1.在语句末加分号“;”和不加分号有什么区别?

2.M文件和函数文件有什么异同之处?

 

3.矩阵乘(*)和数组乘(.*)有何不同?

 

实验二信号的表示及可视化

【一】实验目的

1.掌握连续信号的MATLAB表示方法(表达式及图形描述);

2.掌握离散序列的MATLAB表示方法(表达式及图形描述);

【二】实验原理

在MATLAB中通常用两种方法来表示信号,一种是向量表示信号,另一种则是用符号运算的方法来表示信号。

用适当的MATLAB语句表示出信号后,我们就可以利用MATLAB的绘图命令绘出直观的信号波形。

【三】上机练习

1.认真预习实验原理的内容,将所有例题在计算机上练习一遍。

2.用MATLAB命令绘制单边指数信号e-1.5tε(t)在时间0

要求有标题,在(3.1,0.05)处标注’t’,利用axis调整坐标轴在一个合适的范围,便于观察波形。

解:

代码:

symstf

f=sym(heaviside(t)*eps^(1.5*t))

ezplot(f,[0,3])

text(3.1,0.05,'t')

结果:

3.绘制δ(t-2),-1

解:

M文件:

结果:

chongji(-1,5,-2)

4.绘制ε(k-3),-1≤k≤5及ε(k+1),-5≤k≤2。

解:

M文件:

结果:

(1):

jyxulie(-1,5,-3)

(2)jyxulie(-5,2,1)

5.考虑下面3个信号:

f1(n)=cos(2πn/N)+2cos(3πn/N)

f2(n)=2cos(2n/N)+2cos(3n/N)

f3(n)=cos(2πn/N)+3cos(5πn/N)

假设对每个信号N=6。

试确定上述信号是否是周期的。

如果是,则确定信号的周期,并画图表示出该信号的两个周期;如果不是周期的,在[0,4N]的范围内画出该信号,并说明原因。

解:

代码:

k=0:

40;

subplot(3,1,1)

stem(k,cos(2*pi*k/6)+2*cos(3*pi*k/6),'filled')

title('cos(2*pi*k/6)+2*cos(3*pi*k/6)')

subplot(3,1,2)

stem(k,2*cos(2*k/6)+2*cos(3*k/6),'filled')

title('2*cos(2*k/6)+2*cos(3*k/6))')

subplot(3,1,3)

stem(k,cos(2*pi*k/6)+3*cos(5*pi*k/6),'filled')

title('cos(2*pi*k/6)+3*cos(5*pi*k/6)')

结果:

可得1,3是周期信号

2是非周期信号

【四】思考题

1.观察例2-1的执行结果,当把时间间隔p取得更小(例如为0.02)时,观察执行结果,比较两结果用何不同,为什么?

 

2.例2-3中的holdon和holeoff命令的作用是什么?

 

实验三信号的时域运算、时域变换及MATLAB实现

【一】实验目的

1.掌握信号时域运算的MATLAB实现方法

2.掌握信号时域变换的MATLAB实现方法

【二】实验原理

信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。

一.连续信号的时域运算与时域变换

MATLAB可以有两种方法来表示连续信号。

用这两种方法均可实现连续信号的时域运算和变换,但用符号运算的方法则较为简便。

二.离散序列的时域运算及时域变化

对于离散序列来说,序列相加、相乘是将两序列对应时间序号的值逐项相加或相乘,平移、反折及倒相变化与连续信号的定义完全相同,这里就不再赘述。

但需要注意,与连续信号不同的是,在MATLAB中,离散序列的时域运算和变换不能用符号运算来实现,而必须用向量表示的方法,即在MATLAB中离散序列的相加、相乘需表示成两个向量的相加、相乘,因而参加运算的两序列向量必须具有相同的维数。

【三】上机练习

将实验原理中提到的例子在计算机上全部练习一遍;

1.已知信号

,画出

的波形;

解:

代码:

symstf

f=sym('1/4*(t+1)*(heaviside(t+4)-heaviside(t))+(heaviside(t-2)-heaviside(t))')

subplot(2,1,1),ezplot(f,[-4,5])

y=subs(f,t,-2*t-4)

subplot(2,1,2),ezplot(y)

结果:

2.已知两个连续信号

,用MATLAB绘出下列信号的波形:

1)

2)

3)

4)

解:

代码:

symstf

f1=-t*(heaviside(t)-heaviside(t+1))

f2=sin(2*pi*t)

y=subs(f1,t,-t)

f3=f1+y

subplot(2,2,1),ezplot(f3)

ylabel('f3');

f4=-1*f3

subplot(2,2,2),ezplot(f4)

ylabel('f4');

f5=f2*f3

subplot(2,2,3),ezplot(f5)

ylabel('f5');

f6=f1*f2

subplot(2,2,4),ezplot(f6)

ylabel('f6');

结果:

3.已知离散序列

,用MATLAB绘出下列序列的波形。

1)

2)

3)

4)

代码:

M文件

向量相乘:

向量反折:

向量平移:

f1=[0,1,2,3,3,3,3,0];

k1=-3:

4;

stem(k1,f1);

axis([-4,5,-0.5,3.5]);

(1)f1=[0,1,2,3,3,3,3,0];

k1=-3:

4;

f1l=lsyw(f1,k1,2);

k11=k1;

stem(k1,f1);

k2=k1

f2=Heaviside(k2)

[f,k]=lsxc(f11,f2,k11,k2)

(2)lsfz(f1,k1)

(3)lsyw(f1,-k1,2)

(4)f1=[0,1,2,3,3,3,3,0];

k1=-3:

4;

f1l=lsyw(f1,k1,2);

k11=k1;

stem(k1,f1);

k2=k1

f2=Heaviside(k2)

f22=lsyw(f2,k2,2);

k22=k2;

[f,k]=lsxc(f11,f22,k11,k22)

结果:

【四】思考题

在对信号进行平移、反折和尺度变换时,运算顺序对结果是否有影响?

在运算中应该注意什么?

 

选做题:

实验五周期信号傅里叶级数

【三】上机练习

1.将例5-1在计算机上练习一遍,观察运行结果是否正确;

2.修改例5-1,将周期信号分解为前10次谐波的叠加,观察运行结果,能得出什么结论?

解:

M文件:

结果:

运行CTFShchsym

3.观察例5-1运行结果中脉冲宽度与频谱的关系;

答:

当周期不变,信号的频带宽度与脉冲宽度成反比。

4.观察例5-1运行结果中周期与频谱的关系;

答:

当脉冲宽度不变,周期愈长,相邻谱线的间隔减小,频谱变密。

【四】思考题

试用MATLAB绘出周期矩形脉冲信号的振幅频谱。

解:

代码:

x1=ones(1,2);

x2=[x1,zeros(1,6)];

x=10*x2;%所求的周期脉冲信号

N=8;%长度为8

n=[0:

1:

N-1];

k=[0:

1:

N-1];

k1=[-N/2:

N/2];

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^nk;

Xk=x*WNnk;

magXk=abs([Xk(N/2+1:

N),Xk(1:

N/2+1)]);

subplot(2,1,1);

stem(n,x);%画出周期脉冲信号

subplot(2,1,2);

stem(k1,magXk);

xlabel('k1');

ylabel('Xtilde(k)');

title('DFSofSQ.wave:

L=2,N=8')%该信号频谱图

结果:

总结和建议

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

当前位置:首页 > 高等教育 > 经济学

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

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