武汉理工专业基础实践4报告书Word格式.docx
《武汉理工专业基础实践4报告书Word格式.docx》由会员分享,可在线阅读,更多相关《武汉理工专业基础实践4报告书Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
2.1题目14
2.2题目24
2.3题目35
2.4题目46
2.5题目59
2.6题目610
2.7题目710
2.8题目812
2.9题目912
2.10题目1013
3.实践总结15
参考文献15
摘要
掌握基本信号处理方法以及学会使用一些工具进行信息的分析运算是电子信息学生基本的专业技能。
专业基础实践是基于MATLAB的运用实践,让我们熟悉MATLAB在本专业中的运用方法。
通过完成本次专业实践任务要求,达到掌握MATLAB基本计算方法,熟悉它的编程环境和编程语言特点,掌握MATLAB编程运算的基本方法的目的。
MATLAB在数字信息处理和图像处理中应用广泛,学会使用MATLAB基本编程运是应用该工具进行数字信息处理以及图像处理的基础,故而专业基础实践对我们来说是学习MATLAB的一个重要途径
关键词:
MATLAB,信号图像处理,专业实践。
1.概述
1.1MATLAB简介
MATLAB是美国MathWorks公司推出的一套用于科学计算和图形处理实的可视化、高性能语言的软件工具,全称为矩阵实验室(Matrix
Laboratory)。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB按照功能划分,其主要组成部分包括:
开发环境、数学函数库、编程与数据类型、文件I/O、图形、三维可视化、创建图形用户界面和外部接口等。
MATLAB现今在科学研究和工程应用中发挥着巨大的作用,受广大用户的喜爱。
MATLAB具有区别于其他应用软件的独特特点:
(1)灵活的数值与符号计算
每个数值或符号变量都用一个矩阵表示,他有n×
m个元素,而且矩阵无需定义即可采用,可随时改变矩阵的尺寸。
一般一复数矩阵作为基本编程单元,每个元素都看作复数,使矩阵操作变得简单。
(2)简单的语句表达
MATLAB的语句书写简单,表达式的书写如同在稿纸中演算一样。
(3)强大的语句描述
MATLAB语句功能强大,一条语句往往相当于其他高级语言中语句的几十条、几百条甚至几千条。
(4)简洁完善的图形绘制
MATLAB系统本身是一个Windows下的具有良好的用户界面的系统,而且提供了丰富的图形界面设计函数。
可根据输入数据自动确定绘图坐标,能在规定的多种不同坐标系绘图。
不但能绘制二维图还能绘制三维坐标系中的曲线和曲面。
(5)丰富的工具箱函数
MATLAB提供了几十种面向应用问题的工具箱函数,如信号处理、图像处理、控制系统、非线性公职设计、最优化、神经网络和小波等,使系统分析设计变得更加简便,大大方便了各个领域科研人员的使用。
(6)智能化的自动处理
在程序调试中能够自动的检测和显示程序的错误,易于检查调试。
1.2任务内容
第4套题目:
专业基础实践4
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)
)=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的结果。
2.题目编程解答
2.1题目1
计算y1=
分析:
MATLAB中有基本的计算功能,三角函数中的余弦直接用cos(),对于
可以用sqrt(3)表示,也可以当做是30.5来计算,MATLAB中的圆周率用pi来表示。
MATLAB计算过程如下图1所示:
图1函数y的曲线图
2.2题目2
绘制函数
MATLAB处理的实际上都是离散量,但是将自变量x分成n个等间隔细小的点计算其对应值,这就成了矩阵运算,对于矩阵对应位置的乘除及幂运算由点运算符“.*”“./”和“.^”来完成,再用二维绘图命令plot(x,y)可绘制成连续的曲线,间隔越小,曲线越圆滑。
MATLAB程序:
x=[0:
0.01:
1];
%x赋值0~1,间隔为0.01
y=x.*exp(-x).*sin(x);
plot(x,y)%绘制连续曲线y
title('
陈伟山'
)
xlabel('
x'
);
ylabel('
y'
)%添加横纵坐标的标号
所得y曲线的图像结果:
图2函数y的曲线图
2.3题目3
用图形表示离散函数
绘图命令stem(n,y)绘制的是离散序列柄状图,默认在顶部用圆形标记,其拓展形式stem(x,y,’选项’)中,’选项’选择标记的形状颜色。
所求离散函数中的绝对值在MATLAB中有abs()来求得。
离散函数的图像如图3所示。
n=[0:
10]%定义变量n的取值范围
y=1./abs((n-6).*exp(n));
stem(n,y);
n'
图3离散函数y图形
2.4题目4
分析下面每条指令的功能并运行,观察执行结果。
(1)X=0:
%定义变量x为0-20,步长为0.5
%给出Y的表达式
%绘制Y曲线,并调价横纵坐标标志及标题
变量x从0到20,间隔为0.5;
y=xe-x,由plot绘制y的连续图形,xlabel、ylabel、title分别添加横纵坐标标记x,y以及标题到图像中。
各语句注释在语句后面。
结果如下图示:
图4程序
(1)结果图
(2)A=zeros(4,5)%生成4×
5全0矩阵
15%把-4~15共20个整数赋给矩阵A
4%将A中绝对值的元素变为1,小于4的变为0,生成矩阵L
islogical(L)%判断L是否为逻辑型矩阵
X=A(L)%取出当L中为1时A对应位上元素给X
分析:
)是将矩阵A每一列元素堆叠起来称为列向量;
abs(A)>
4是逻辑关系运算,表达式为真时返回1,为假时返回0,故而当A中元素绝对值大于4时,其值将变为1;
具体语句解释在程序中。
结果如下图:
图5程序
(2)结果图
(3)A=[1:
10]%定义2×
5矩阵A并赋值
pow2(A)%将每个元素改为2的幂
pow2(n)是2的n次幂,程序中将整数1~10赋给2×
5的矩阵A之后,再将每个元素转变为以2为底,该元素为次数的幂。
图6程序(3)结果图
(4)A=zeros(5,6)
30%对A中元素从上至下,从左至右赋值1~30
A=A*(1+i)%A中的元素乘以(1+i)变成复数矩阵
A1=A.’%对A进行转置运算
B1=A’%对A进行共轭转置运算
对于复数矩阵,A.’单纯为转置,A’则取共轭后转置,计算结果如下图示。
图7程序(4)结果图
(5)A=ones(2,3)%生成矩阵A为2×
3的全1矩阵
B=eye(3)%生成3阶的单位矩阵B
C=ones(4)%生成4×
4的全1矩阵
D=diag(C)%抽取主对角线元素向量
此题为特殊函数生成矩阵以及矩阵的操作函数,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阶矩阵。
图8程序(5)结果图
2.5题目5
计算
将y的表达式看成一个多项式,运用多项式表示方法y=[an,an-1,…a1,a0]生成多项式,再利用polyval(y,b),设b为0.1和10可求多项式的值y1,y2。
y=[200.100-10];
y1=polyval(y,0.1)
y2=polyval(y,10)
结果如下:
2.6题目6
求函数
设该函数的值为s,用循环语句可求得其值,程序流程图如图示:
N
Y
图9计算流程图
MATLAB程序如下:
s=0
forn=0:
100
s=s+exp(n)
end
2.7题目7
求3000个元素的随机数向量A中大于0.5的元素个数
由函数rand(N,M)可以生成一个N×
M的随机矩阵,再通过循环结构程序检测矩阵中每个元素的值的大小,若是大于0.5则计数加1,程序流程图如下:
图10算法流程图
程序:
A=rand(1,3000)%产生1x3000的在(0,1)之间的随机矩阵
n=0%设计数初值为0
fori=1:
3000
ifA(1,i)>
0.5%对300个元素依次检测大小
n=n+1%大于0.5是计数加1
end
2.8题目8
用图形表示连续调制波形
y1为已调信号的包络,用sin(t)乘以±
1得到,用红色虚线表示;
y2为已调信号,用蓝色实线表示;
y3为已调信号与t轴交点,即在sin(9t)为0时取样得到的点,用蓝色圆圈表示。
运行结果如下图:
图11调制信号及其包络图
2.9题目9
计的算下列矩阵A的特征值与特征向量
MATLAB中有用于矩阵分解的函数,[V,D]=eig(A)得到的是矩阵A的特征值对角矩阵D和其列为对应特征值的特征向量。
A=[114;
225;
336];
[V,D]=eig(A)
结果如下所示,D中对角线为特征值,V中对应列为该特征值的特征向量。
V=
0.39080.86370.7071
0.56050.2007-0.7071
0.7302-0.4623-0.0000
D=
9.908300
0-0.90830
00-0.0000
2.10题目10
有如下数据:
插值法是根据已知点推断出未知点函数值的一种计算方法,三次样条插值法函数调用方式为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(121)
plot(x,y,'
X,Y1,'
holdon
plot(X,Y1,'
k*'
三次样条插值'
)%绘制三次样条插值法的拟合曲线
subplot(122)
X,Y2,'
三次多项式插值'
)%绘制三次多项式插值法的拟合曲线
MATLAB计算结果如下所示,Y1为三次样条插值法计算出来的值,Y2为三次多项式插值法计算出来的值,两种方法得出的拟合曲线如图12所示
X=
1.00001.05001.10001.15001.20001.25001.30001.35001.4000
Y1=
1.00001.10821.23371.38051.55271.75481.99372.27692.6117
Y2=
1.00001.10701.23371.38061.55271.75521.99372.27872.6117
图12插值法拟合曲线
3.实践总结
本次专业基础实践是基于MATLAB的编程应用实践,在实践中遇到过许多问题,同时也学到很多有关MATLAB编程的知识。
首先,MATLAB对于我们专业的同学并不陌生,在信号与系统以及数字信号处理实验课中运用过MATLAB进行信号分析处理,但是并没有通过专业的MATLAB书籍进行系统学习。
在本次实践中,自学了MATLAB的矩阵计算,图形绘制,数值计算等部分的内容,基本学会了计算多项式,插值运算以的方法,掌握了一些二维图形绘制的工具箱函数,更重要的是理解了MATLAB矩阵运算的特性和方法,让我能根据这些方法完成实践任务。
其次,MATLAB语言与C语言基本一致,但仍然有不一样的地方,故而在实践编程中往往得到的不是正常结果。
比如要逐步观察每条执行语句时,若在语句后面添加了分号,那么该语句的执行结果是不会显示在窗口的,这一细节并没有太去关注导致纠结了比较长的时间。
在MATLAB中矩阵点运算是很重要的,在这次实践中,一开始由于点运算没有运用好,导致调试时间增加了。
总而言之,实践课程重要的是自己的自学品质,只有认认真真编写程序,理解每句程序的含义,才能更好地掌握MATLAB使用方法。
参考文献
[1]刘勍;
温志贤.MATLAB基础及应用.东南大学出版社,2011.1
[2]周博.MATLAB科学计算.机械工业出版社.,2010.5
[3]王沫然.MATLAB与科学计算教程.电子工业出版社,2016.2
[4]苏金明.MATLAB图形图像.电子工业出版社,2011
[5]张德丰.MATLAB程序设计与综合应用.清华大学出版社,2012
本科生课程设计成绩评定表
姓名
陈
性别
男
专业、班级
电信140班
课程设计题目:
课程设计答辩或质疑记录:
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日