武汉理工大学专业课设.docx
《武汉理工大学专业课设.docx》由会员分享,可在线阅读,更多相关《武汉理工大学专业课设.docx(22页珍藏版)》请在冰点文库上搜索。
武汉理工大学专业课设
专业基础实践任务书
学生姓名:
__舒细兵____专业班级:
电信1502班
指导教师:
周颖工作单位:
信息工程学院
题目:
专业基础实践第4套综合题
初始条件:
(1)提供实验室机房及其Matlab6.5以上版本软件;
(2)《MATLAB教程》学习。
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):
(1)选择一本《MATLAB教程》,认真学习该教程的全部内容,包括基本使用方法、数组运算、矩阵运算、数学运算、程序设计、符号计算、图形绘制、GUI设计等内容;
(2)对该套综合题的10道题,进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表)。
(3)对实验结果进行分析和总结;
(4)要求阅读相关参考文献不少于5篇;
(5)根据课程设计有关规范,按时、独立完成专业基础实践说明书。
时间安排:
(1)布置课程设计任务,查阅资料,学习《MATLAB教程》3天;
(2)进行编程设计2天;
(3)完成专业基础实践报告书1天;
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
作为一名工科大学生,需要掌握基本软件的应用数据处理,然而掌握基本信号处理方法以及学会使用一些工具进行信息的分析运算是电子信息学生基本的专业技能。
其中MATLAB的信息行业必须掌握的软件,专业基础实践是基于MATLAB的运用实践,让我们熟悉MATLAB在本专业中的运用方法。
通过完成本次专业实践任务要求,达到掌握MATLAB基本计算方法,熟悉它的编程环境和编程语言特点,掌握MATLAB编程运算的基本方法的目的。
MATLAB在数字信息处理和图像处理中应用广泛,学会使用MATLAB基本编程运是应用该工具进行数字信息处理以及图像处理的基础。
所以学习和使用MATLAB软件对我们的学习以及职业的发展都有极大的好处。
关键词:
MATLAB,专业基础实践,信号处理
目录
1MATLAB软件介绍4
2设计任务5
3题目解答6
3.1题目一6
3.2题目二7
3.3题目三8
3.4题目四9
(1)9
(2)10
(3)11
(4)11
(5)12
3.5题目五14
3.6题目六14
3.7题目七15
3.8题目八15
3.9题目九16
3.10题目十17
4心得体会19
5参考文献19
本科生课程设计成绩评定表20
1MATLAB软件介绍
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩形计算、视化以线性动态线性系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多领域一面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB是矩阵实验室(MatrixLaboratory)之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
经过不断完善MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。
成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具。
MTLAB的语言特点:
(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。
(2)运算符丰富。
(3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。
(4)程序限制不严格,程序设计自由度大。
(5)MATLAB的图形功能强大。
(6)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。
由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
2设计任务
1.y1=
和y2=
;
2.绘制函数
在
时的曲线。
3.用图形表示离散函数
。
4.分析下面每条指令的功能并运行,观察执行结果。
(1)X=0:
0.5:
20;
Y=X.*exp(-X);
plot(X,Y),xlabel(‘x’),ylabel(‘y’),title(‘y=x*exp(-x)’);
(2)A=zeros(4,5)
A(:
)=-4:
15
L=abs(A)>4
islogical(L)
X=A(L)
(3)A=[1:
5;6:
10]
pow2(A)
(4)A=zeros(5,6)
A(:
)=1:
30
A=A*(1+i)
A1=A.’;
B1=A’;
(5)A=ones(2,3)
B=eye(3)
C=ones(4)
D=diag(C)
E=repmat(C,1,3)
5.计算
在x=0.1与10处的值。
6.求函数
n=100的值。
7.求3000个元素的随机数向量A中大于0.5的元素个数。
8.用图形表示连续调制波形
及其包络线,运行下面的程序,观察结果,并简单说明。
t=(0:
pi/100:
pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:
9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,'r:
',t,y2,'b',t3,y3,'bo')axis([0,pi,-1,1])
9.计的算下列矩阵A的特征值与特征向量
10.有如下数据:
x
1
1.1
1.2
1.3
1.4
y
1.00000
1.23368
1.55271
1.99372
2.61170
利用三次插值方法对其进行插值,得到每隔0.05的结果。
3题目解答
3.1题目一
计算y1=
和y2=
;
分析:
MATLAB中有一些基本的数学计算功能,其中余弦函数用cos(),乘号用*,
用3^0.5或者sqrt(3)的来表示,而圆周率用MATLAB自带的pi;
代码:
y1=5.*cos(0.6*pi)/(2+3.^0.5);
fprintf('y1=%f\n',y1);
y2=5.*cos(0.2*pi)/(3+3.^0.5);
fprintf('y2=%f\n',y2);
MATLAB的运行结果:
图3.1y1和y2计算值输出
3.2题目二
绘制函数
在
时的曲线。
分析:
MATLAB处理的实际上都是离散量,需要将量x分成n个等间隔细小的点计算其对应值,变成矩阵运算,对于矩阵对应位置的乘除及幂运算由点运算符“.*”,“./”和“.^”来完成,再用二维绘图命令plot(x,y)可绘制成连续的曲线,其中抽样的间隔越小,所画的曲线就越平滑圆润。
代码:
x=0:
0.01:
1;
y=x.*exp(-x).*sin(x);
plot(x,y);
title('舒细兵')
xlabel('x');
ylabel('y');
MATLAB的运行结果:
图3.2函数的图像
3.3题目三
用图形表示离散函数
。
分析:
绘图命令stem(n,y)绘制的是离散序列柄状图,默认在顶部用圆形标记,所求离散函数中的绝对值在MATLAB中有abs()来求得。
倒数用^-1表示。
采样间隔表示间隔竖线的多少,中采用0.05表示。
代码
n=0:
0.05:
1;
y=abs((n-6).*exp(n)).^-1;
stem(n,y);
title('电信1502舒细兵');
xlabel('x');
ylabel('y');
MATLAB的运行结果:
图3.3函数y的离散图像
3.4题目四
(1)
X=0:
0.5:
20;%抽样的区间以及抽样间隔
Y=X.*exp(-X);%主函数
plot(X,Y);%画出图像
xlabel('x');%标明x轴
ylabel('y');%标明y轴
title('y=x*exp(-x)');%标明函数名称
分析:
:
变量x从0到20,间隔为0.5;,由plot绘制y的连续图形,xlabel、ylabel、title分别添加横纵坐标标记x,y以及标题到图像中。
各语句注释在语句后面。
用%表示
MATLAB的运行结果:
图3.4.1函数y的输出图像
(2)
A=zeros(4,5);%生成4行5列的全零矩阵
A(:
)=-4:
15;%所有元素都是按列进行排列的A(:
)是将所有元素按列排序
L=abs(A)>4;%比较A中的绝对值是否大于4
islogical(L);%L的逻辑值
X=A(L);%把A大于4的值得传给X
分析:
A(:
)是将矩阵A每一列元素堆叠起来变成列向量;abs(A)>4是逻辑关系运算,表达式为真时返回1,为假时返回0,故而当A中元素绝对值大于4时,其值将变为1;解释语句在代码的后面
MATLAB的运行结果:
图3.4.2.1A和L矩阵的输出值
图3.4.2.2L的逻辑矩阵判断
图.3.4.2.3X矩阵的输出值
(3)
A=[1:
5;6:
10];%分为两行输出
pow2(A)%计算2的1到10的次幂,分为两行输出
分析:
pow2(n)是2的n次幂,A语句是将2的1到10次幂分为两行输出,具体解释在代码的后面。
MATLAB的运行结果:
图3.4.3pow2的输出值
(4)
A=zeros(5,6);%%产生5行6列的全零矩阵
A(:
)=1:
30;%将矩阵按列一次填充1到30
A=A*(1+i);
A1=A.';%A矩阵的转置矩阵
B1=A';%A的共轭矩阵转置矩阵
分析:
对于复数矩阵,A.’为转置矩阵A’则取共轭后转置,计算结果如下图示。
MATLAB的运行结果:
图3.4.4.1A和A1矩阵的输出值
图3.4.4.2B1矩阵的输出值
(5)
A=ones(2,3);%产生2行3列的全1矩阵
B=eye(3);%返回3*3的单位矩阵
C=ones(4);%产生4*4的全1矩阵
D=diag(C);%返回对角线的值形成1列
E=repmat(C,1,3);%将C当成一个元素产生一个1行3列的矩阵
分析:
特殊函数生成矩阵以及矩阵的操作函数,ones表示元素全为1的矩阵,eye表示单位矩阵;diag(X)用来抽取主对角线元素,repmat表示按指定的行列数复制矩阵,B=repmat(A,M,N)功能是以的内容堆叠在(MxN)的矩阵B中,B矩阵的大小由MxN及A矩阵的内容决定,题中C是4×4矩阵,E=repmat(C,1,3)得到的矩阵E是4×12阶矩阵。
MATLAB的运行结果:
图3.4.5.1A和B矩阵的输出值
图3.4.5.2C和D矩阵的输出值
图3.4.5.3E矩阵的输出值
3.5题目五
计算
在x=0.1与10处的值。
分析:
将y的表达式看成一个多项式,输入表达式,设置变量,最后输入变量的值,计算结果。
打印输出结果。
X=0.1和10的结果如下:
代码:
x=input('输入x:
');
y=2*x^5+0.1*x^3-100;
fprintf('当x=%f时,y=%f\n',x,y);
MATLAB的运行结果
图3.5x=0.1和10的输出值
3.6题目六
求函数
n=100的值。
分析:
设该函数的值y,用循环语句可求得其值。
采用for循环的方式,进行循环累加。
一直到输入的n值为止。
代码:
n=input('请输入n:
');%输入求和的个数
y=0;
fori=0:
n
y=y+exp(i);%累加
end
fprintf('当n=%d,y=%f\n',n,y);
MATLAB的运行结果:
图3.6n=100的输出值
3.7题目七
求3000个元素的随机数向量A中大于0.5的元素个数。
分析:
由函数rand(N,M)可以生成一个N×M的随机矩阵,根据题目的要求产生一个1行3000列的随机矩阵,再通过循环结构程序检测矩阵中每个元素的值的大小,若是大于0.5则计数sum加1。
代码:
A=rand(1,3000);%产生一个1行3000列的随机矩阵
sum=0;
forii=1:
length(A)
ifA(ii)>0.5
sum=sum+1;%统计大于0.5的个数
end
end
fprintf('sum=%d\n',sum);%打印输出sum
MATLAB的运行结果:
图3.7sum的输出值
3.8题目八
用图形表示连续调制波形
及其包络线,运行下面的程序,观察结果,并简单说明。
t=(0:
pi/100:
pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);plot(t,y1,'r:
',t,y2,'b',t3,y3,'bo')axis([0,pi,-1,1])
注释代码:
t=(0:
pi/100:
pi)';
y1=sin(t)*[1,-1];%画出sin(t)的上下波形
y2=sin(t).*sin(9*t);%画出包络波形
t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);%画出波形的与x轴的交点
plot(t,y1,'r:
',t,y2,'b',t3,y3,'bo');
axis([0,pi,-1,1])
分析:
y1为已调信号的包络,用sin(t)乘以±1得到,用红色虚线表示;y2为已调信号,用蓝色实线表示;y3为已调信号与t轴交点,即在sin(9t)为0时取样到的点,用蓝色圆圈表示,从而得到实验图像。
MATLAB的运行结果:
图3.8
的包络函数图像
3.9题目九
计的算下列矩阵A的特征值与特征向量
分析:
MATLAB中有用于矩阵分解的函数,[V,D]=eig(A)得到的是矩阵V的特征
值对角矩阵D和其列为对应特征值的特征向量
代码:
A=[1,1,4;2,2,5;3,3,6];
[V,D]=eig(A);
MATLAB的运行结果:
图3.9V和D矩阵的输出值
3.10题目十
有如下数据:
x
1
1.1
1.2
1.3
1.4
y
1.00000
1.23368
1.55271
1.99372
2.61170
利用三次插值方法对其进行插值,得到每隔0.05的结果。
解答:
分析:
插值法是根据已知点推断出未知点函数值的一种计算方法,其中三次插值的方法有很多,其中还包括,三次条样插值和三次多项式插值的方法。
三次条样插值函数调用方式为Y=spline(x,y,X),其特点是速度最慢,精度高,最平滑,更加接近图像本体,三次多项
式插值调用方式为Y=interp1(x,y,X),其特点是速度较慢,精度高,平滑性好。
两种方法各有各自的好处。
代码:
x=[1,1.1,1.2,1.3,1.4];
y=[1.00000,1.23368,1.55271,1.99372,2.61170];%输入已知数据
X=1.0:
0.05:
1.4;%每隔0.05计算未知点函数值
Y1=spline(x,y,X);%三次样条插值
Y2=interp1(x,y,X,'cubic');%三次多项式插值
subplot(1,2,1)
plot(x,y,'r:
',X,Y1,'b',X,Y1,'k*')
title('三次样条插值')%绘制三次样条插值法的拟合曲线
subplot(1,2,2)
plot(x,y,'r:
',X,Y2,'b',X,Y2,'k*')
title('三次多项式插值')%绘制三次多项式插值法的拟合曲线
MATLAB的运行结果:
图3.10三次条样插值和三次多项式插值
4心得体会
本次课程设计内容比较简单,但是用matlab实现起来并不容易,在课程的前期需要自己查阅大量的资料,学习matlab的函数使用等等。
在课设之前,在信号与系统中我已经使用过MATLAB,对其有了一些基础的了解和认识。
通过这次的课程设计使我进一步了解了信号的产生,学习到了一些matlab的一些函数,采样及频谱分析的方法。
以及其中产生信号和绘制信号的基本命令和一些基础编程语言。
同时也整理了我的知识,以及一些思维方式,提高了自己的动手年实践能力。
因为对信号与系统这门课程学习已经学过matlab,,所以以为专业基础实践这门课程也应该不在话下,但事实上并非如此。
在设计过程中也遇到了不少问题,设计前期在利用MATLAB软件工具对程序进行编译时,由于其中有些标点符号问题。
通过这次课程设计实践,我更深刻的了解了MATLAB的运用。
在课设完成过程中,我遇到了许多问题,也非常的困扰着我。
但是我通过自己的努力,上网查阅资料、翻阅书籍,同时请教其他同学,最终解决了问题。
虽然过程比较艰苦,但是结果是令人喜悦的。
在此期间,我也学习到了,只要坚持努力,最终的结果是不会差的,会给我们带来不一样的惊喜。
5参考文献
[1]刘泉.阙大顺.数字信号处理.北京:
电子工业出版社,2009
[2]李建新.现代通信系统分析与仿真-MATLAB通信工具箱[M].西安:
西安电子科技大学
[3]徐潇,李远.MATLAB面向对象编程--从入门到设计模..北京航空航天大学出版社
[4]张志涌,杨祖樱.MATLAB教程.北京航空航天大学出版社,2015
[5]刘浩.MATLABR2016a完全自学一本通.电子工业出版社,2017
本科生课程设计成绩评定表
姓名
舒细兵
性别
男
专业、班级
电子信息工程电信1502班
课程设计题目:
课程设计答辩或质疑记录:
(不少于3个问题)
1)设计中主要承担、完成了哪些任务,完成情况如何?
评定项目
评分成绩
1.选题合理、目的明确(10分)
2.设计方案正确,具有可行性、创新性(20分)
3.设计结果(软件程序)(20分)
4.态度认真、学习刻苦、遵守纪律(15分)
5.设计报告的规范化、参考文献充分(不少于5篇)(10分)
6.答辩(25分)
总分
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日