MATLAB实验报告信号与线性系统分析.docx
《MATLAB实验报告信号与线性系统分析.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告信号与线性系统分析.docx(19页珍藏版)》请在冰豆网上搜索。
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')%该信号频谱图
结果:
总结和建议