MATLAB课程设计.docx

上传人:b****7 文档编号:9792500 上传时间:2023-02-06 格式:DOCX 页数:21 大小:128.65KB
下载 相关 举报
MATLAB课程设计.docx_第1页
第1页 / 共21页
MATLAB课程设计.docx_第2页
第2页 / 共21页
MATLAB课程设计.docx_第3页
第3页 / 共21页
MATLAB课程设计.docx_第4页
第4页 / 共21页
MATLAB课程设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

MATLAB课程设计.docx

《MATLAB课程设计.docx》由会员分享,可在线阅读,更多相关《MATLAB课程设计.docx(21页珍藏版)》请在冰豆网上搜索。

MATLAB课程设计.docx

MATLAB课程设计

课程设计任务书

学生姓名:

**专业班级:

电信****

指导教师:

****工作单位:

信息工程学院

题目:

Matlab运算与应用设计4

初始条件:

1.Matlab6.5以上版本软件;

2.课程设计辅导资料:

“Matlab语言基础及使用入门”、“数字信号处理原理与实现”、“Matlab及在电子信息课程中的应用”等;

3.先修课程:

信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.本课程设计统一技术要求:

研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析总结。

具体设计要求包括:

1初步了解Matlab、熟悉Matlab界面、进行简单操作;

2MATLAB的数值计算:

创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计;

3基本绘图函数:

plot,plot3,mesh,surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等;

4使用文本编辑器编辑m文件,函数调用;

5能进行简单的信号处理Matlab编程;

2.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:

1目录;

2与设计题目相关的理论分析、归纳和总结;

3与设计内容相关的原理分析、建模、推导、可行性分析;

4程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;

5课程设计的心得体会(至少500字);

6参考文献;其它必要内容等。

时间安排:

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

目录

一.MATLAB简介……………………………………………………………………(3)

二.具体题目分析…………………………………………………………………(4)

2.1……………………………………………………………………………(4)

2.2……………………………………………………………………………(4)

2.3……………………………………………………………………………(5)

2.4……………………………………………………………………………(6)

2.5……………………………………………………………………………(9)

2.6……………………………………………………………………………(10)

2.7……………………………………………………………………………(10)

2.8……………………………………………………………………………(11)

2.9……………………………………………………………………………(11)

2.10…………………………………………………………………………(12)

三.课程设计得…………………………………………………………………(14)

四.参考文献……………………………………………………………………(15)

五.本科生课程设计成绩评表…………………………………………………(16)

 

(2)

一.MATLAB的简介

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

  MATLAB是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

MATLAB应用

MATLAB产品族可以用来进行以下各种工作:

  ●数值分析

  ●数值和符号计算

  ●工程与科学绘图

  ●控制系统的设计与仿真

  ●数字图像处理

  ●数字信号处理

  ●通讯系统设计与仿真

  ●财务与金融工程

MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。

   

 

(3)

二.具体题目分析

2.1算y1=

和y2=

2.1.1理论分析

这是利用matlab处理数值运算的题目。

这其中要用到cos()函数。

2.1.2程序代码

>>y1=5*cos(0.6*pi)/(2+3^0.5)%计算y1的表达式

y1=

-0.4140%y1的计算结果

>>y2=5*cos(0.2*pi)/(3+3^0.5)%计算y2的表达式

y2=

0.8548%y2的计算结果

2.1.3总结

我们注意到matlab中的pi与真正的

有差距,而且数字与因式相乘要使用乘法符号'*'.通过这个计算,我了解到matlab有处理数据计算的功能。

2.2绘制函数

时的曲线。

2.2.1理论分析

利用MATLAB软件绘制曲线图。

在这里用到的是plot函数。

熟悉使用plot函数

2.2.2程序代码

x=(0:

0.00001:

1);%x的范围

y=x.*exp(-x).*sin(x);%表达式

plot(x,y)%输出图形

其图形如下:

(4)

2.2.3总结

Plot函数是很好使用的函数。

他可以很方便的画出所需区域的函数图像。

甚至可以很轻松的描绘处函数运算之后以及符合函数的图像。

2.3.用图形表示离散函数

2.3.1理论分析

这道题目中还是要用到plot()函数来描点。

其中还用到绝对值的函数abs(),exp()函数。

2.3.2程序代码

>>n=linspace(1,100);

>>y=(abs((n-6).*exp(n))).^(-1);

>>plot(n,y);

得到的图像为:

2.3.3总结

Plot函数是很好使用的函数。

他可以很方便的画出所需区域的函数图像。

甚至可以很轻松的描绘处函数运算之后以及符合函数的图像。

2.4.分析下面每条指令的功能并运行,观察执行结果。

2.4.1分析指令

X=0:

0.25:

3;%产生一组自变量数据

Y=X.*exp(-X);%数组的乘法

plot(X,Y),xlabel(‘x’),ylabel(‘y’),title(‘y=x*exp(-x)’);

%将函数视图划并表明x,y轴和标题

执行结果:

 

(5)

2.4.2指令分析

A=zeros(4,5)%定义一个4x5的全零矩阵

A(:

)=-4:

15%将元素-4到15按列取出生成4行5列数组

L=abs(A)>4%绝对值大于4的值变为1,小于3的为0

islogical(L)%判断L是不是逻辑数

X=A(L)%取出A中大于1的元素组成一个新矩阵

执行结果:

>>A(:

)=-4:

10

A=

-404812

-315913

-2261014

-1371115

>>L=abs(A)>4

L=

00011

00111

00111

00111

>>islogical(L)

(6)

ans=

1

>>X=A(L)

X=

5

6

7

8

9

10

11

12

13

14

15

2.4.3指令分析

A=[1:

5;6:

10]%生成一个矩阵

pow2(A)%矩阵相应位子的值变成原来的平方

执行结果:

>>A=[1:

5;6:

10]

A=

12345

678910

>>pow2(A)

ans=

2481632

641282565121024

2.4.4指令分析

A=zeros(5,6)%生成一个5X6的全零矩阵

A(:

)=1:

30%将1到30分别赋给矩阵的各元素

A=A*(1+i)%给A矩阵的元素从新赋值

A1=A.’;%A的转置矩阵

B1=A’;%A的共轭转置矩阵

执行结果:

>>A=zeros(5,6)

(6)

A=

000000

000000

000000

000000

000000

>>A(:

)=1:

30

A=

1611162126

2712172227

3813182328

4914192429

51015202530

>>A=A*(1+i)

A=

Columns1through5

1.0000+1.0000i6.0000+6.0000i11.0000+11.0000i16.0000+16.0000i21.0000+21.0000i

2.0000+2.0000i7.0000+7.0000i12.0000+12.0000i17.0000+17.0000i22.0000+22.0000i

3.0000+3.0000i8.0000+8.0000i13.0000+13.0000i18.0000+18.0000i23.0000+23.0000i

4.0000+4.0000i9.0000+9.0000i14.0000+14.0000i19.0000+19.0000i24.0000+24.0000i

5.0000+5.0000i10.0000+10.0000i15.0000+15.0000i20.0000+20.0000i25.0000+25.0000i

Column6

26.0000+26.0000i

27.0000+27.0000i

28.0000+28.0000i

29.0000+29.0000i

30.0000+30.0000i

>>A1=A.';B1=A';

>>A1

(7)

A1=

1.0000+1.0000i2.0000+2.0000i3.0000+3.0000i4.0000+4.0000i5.0000+5.0000i

6.0000+6.0000i7.0000+7.0000i8.0000+8.0000i9.0000+9.0000i10.0000+10.0000i

11.0000+11.0000i12.0000+12.0000i13.0000+13.0000i14.0000+14.0000i15.0000+15.0000i

16.0000+16.0000i17.0000+17.0000i18.0000+18.0000i19.0000+19.0000i20.0000+20.0000i

21.0000+21.0000i22.0000+22.0000i23.0000+23.0000i24.0000+24.0000i25.0000+25.0000i

26.0000+26.0000i27.0000+27.0000i28.0000+28.0000i29.0000+29.0000i30.0000+30.0000i

>>B1

B1=

1.0000-1.0000i2.0000-2.0000i3.0000-3.0000i4.0000-4.0000i5.0000-5.0000i

6.0000-6.0000i7.0000-7.0000i8.0000-8.0000i9.0000-9.0000i10.0000-10.0000i

11.0000-11.0000i12.0000-12.0000i13.0000-13.0000i14.0000-14.0000i15.0000-15.0000i

16.0000-16.0000i17.0000-17.0000i18.0000-18.0000i19.0000-19.0000i20.0000-20.0000i

21.0000-21.0000i22.0000-22.0000i23.0000-23.0000i24.0000-24.0000i25.0000-25.0000i

26.0000-26.0000i27.0000-27.0000i28.0000-28.0000i29.0000-29.0000i30.0000-30.0000i

2.4.5指令分析

A=ones(2,3)%定义一个2X3的全一矩阵

B=ones

(2)%定义一个2X2的全一矩阵

C=eye(4)%生成四行四列的单位矩阵

D=diag(C)%生成C的对角矩阵

E=repmat(C,1,3)%将C矩阵作为一个元素生成一个1行3列的矩阵

执行结果:

>>A=ones(2,3)

A=

(8)

111

111

>>B=ones

(2)

B=

11

11

>>C=eye(4)

C=

1000

0100

0010

0001

>>D=diag(C)

D=

1

1

1

1

>>E=repmat(C,1,3)

 

>>E=repmat(C,1,3)

E=

100010001000

010001000100

001000100010

000100010001

2.5.计算

在x=0.1与10处的值。

2.5.1理论分析

这道题目是运用MATLAB计算多项式。

这里运用到的是polyval()命令。

通过polyval()命令可以很快的计算出在相应值下的多项式的值。

(9)

2.5.2程序代码

>>p=[200.10-10];

>>polyval(p,0.1);

ans=

-9.9988

>>polyval(p,10)

ans=

20000

2.5.3总结

本题要注意四次项和二次项的系数为零。

2.6.求函数

n=100的值

2.6.1理论分析

本题可用for循环实现函数求值其中循环次数为100次。

2.6.2程序代码

s=0;%函数初值为0

forn=0:

100%for控制循环100次

x=exp(n);

s=s+x;%函数加和

end%结束

s

s=

4.2525e+043

2.6.3总结

For循环可以简单的用来求和,使用的时候要注意使用格式。

for循环控制变量=表达式1:

表达式2:

表达式3

语句

end

 

2.7.求3000个元素的随机数向量A中大于0.5的元素个数。

2.7.1理论分析

这道题中要用到随机函数rand()。

在生成矩阵后还要用程序控制。

其中还要用到循环语句,和选择语句。

其中用到嵌套循环语句。

2.7.2程序代码

>>A=rand(1,3000);%产生3000个随机数

sum(A>0.5)%对A中大于0.5的数的个数求和

ans=

(10)

1530

2.7.3总结

8.用图形表示连续调制波形

及其包络线,运行下面的程序,观察结果,并简单说明。

8.1简要分析

t=(0:

pi/100:

pi)';%定义t的范围

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的特征之和特征向量。

9.1理论分析

这里是运用matlab中的函数来处理矩阵,从而生成所需要的矩阵。

这里用到的是[X,Lamda]=eig()来球矩阵的特征值和特征向量。

9.2程序代码

>>A=[114;225;336];

[X,Lamda]=eig(A)

X=

(11)

0.39080.86370.7071

0.56050.2007-0.7071

0.7302-0.4623-0.0000

 

Lamda=

9.908300

0-0.90830

00-0.0000

2.9.3总结

在MATLAB中有很多很方便的函数帮助我们处理数据。

我们要时常注意相关的函数,在以后的数据处理中就显得很轻松了。

2.10.用FFT直接计算x=3sin(2*pi*50*t)+2cos(2*pi*120*t)+w(t)的功率谱。

2.10.1理论分析

用FFT直接计算x=3sin(2*pi*30*t)+3cos(2*pi*140*t)+w(t)的功率谱。

2.10.1理论分析在本题中注意.调用方法X=FFT(x);X=FFT(x,N);x=IFFT(X);x=IFFT(X,N)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。

在IFFT时已经做了处理。

要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

2.10.2程序设计

>>clf;

>>fs=100;N=128;%采样频率和数据点数

>>n=0:

N-1;t=n/fs;%时间序列

>>w=rands(1,N);%加入噪音信号

>>x=3*sin(2*pi*30*t)+3*cos(2*pi*140*t)+w;%信号

>>y=fft(x,N);%对信号进行快速

>>mag=abs(y);%求得Fourier变换后的振幅

>>f=n*fs/N;%频率序列

>>subplot(2,2,2),plot(f(1:

N/2),mag(1:

N/2));%绘出随频率变化的振幅

>>xlabel('频率/Hz');ylabel('振幅');title('功率谱');%分别对X,Y轴进行标记

2.10.3运行结果

 

(12)

2.10.4实验总结

实验总结一般说来利用fft只是对已有数据进行傅里叶变换,而具体应用到画图还要经过处理,如对已知数据x进行fft傅里叶变换只需运行:

y=fft(x);做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。

在IFFT时已经做了处理。

要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

注意w=rands(1,N);%加入噪音信号。

 

(13)

三.课程设计心得

正所谓“纸上得来终觉浅,觉知此事要躬行。

”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的。

因此在学期末来临之际,我们迎来了MATLAB课程设计。

通过为期一周半的MATLAB课程设计,我对MATLAB这个仿真软件有了更进一步的认识和了解。

在这一周半时间里,我通过自己摸索,向同学请教,查阅资料,完成了老师教给我们的任务。

这次课程设计,提高自己的基础理论知识、基本动手能力,提高人才培养的基本素质,并帮助我们掌握基本的文献检索和文献阅读的方法,同时提高我们正确地撰写论文的基本能力。

在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力,使自己充分体会到了在设计过程中的成功喜悦。

虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。

在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。

希望以后像这样的课程设计在多一点。

 

(14)

四.参考文献

①张智星.MATLAB程序设计与应用.北京:

清华大学出版社,2002

②陈怀琛.MATLAB及其在理工课程中的应用指南.西安:

西安电子科技大学出版社,1999.10 

③肖伟、刘忠.MATLAB程序设计与应用[M].北京:

清华大学出版社2005

④姚东.MATLAB及在电子信息课程中的应用[M].第二版.北京:

北京电子工业出版社,2000

⑤葛哲学等编.MATLAB时频分析技术及其应用.人民邮电出版社.2007年

 

(15)

本科生课程设计成绩评定表

姓名

性别

专业、班级

题目:

答辩或质疑记录:

 

成绩评定依据:

 

最终评定成绩(以优、良、中、及格、不及格评定)

 

指导教师签字:

2010年1月13日

 

(16)

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

当前位置:首页 > 总结汇报 > 学习总结

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

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