matlab设计报告.docx

上传人:b****8 文档编号:9353986 上传时间:2023-02-04 格式:DOCX 页数:24 大小:241.74KB
下载 相关 举报
matlab设计报告.docx_第1页
第1页 / 共24页
matlab设计报告.docx_第2页
第2页 / 共24页
matlab设计报告.docx_第3页
第3页 / 共24页
matlab设计报告.docx_第4页
第4页 / 共24页
matlab设计报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

matlab设计报告.docx

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

matlab设计报告.docx

matlab设计报告

课程设计任务书

学生姓名:

尹龙剑专业班级:

电信1005班

指导教师:

祝立华阙大顺工作单位:

信息工程学院

课程设计名称:

Matlab应用课程设计

课程设计题目:

Matlab运算与应用设计三

初始条件:

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

2.课程设计辅导资料:

“Matlab语言基础及使用入门”、“Matlab及在电子信息课程中的应用”等;

3.先修课程:

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

要求完成的主要任务:

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

1.课程设计时间:

1周;

2.课程设计内容:

根据指导老师给定的7套题目,按规定选择其中1套完成;

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

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

具体设计要求包括:

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

2MATLAB的数值计算:

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

3基本绘图函数:

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

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

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

6按要求参加课程设计实验演示和答辩等。

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

1目录;

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

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

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

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

6参考文献(不少于5篇);

7其它必要内容等。

指导教师签名:

年月日

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

年月日

目录

1Matlab概述.................................................................................3

1.1MATLAB简介..................................................................................3

1.2MATLAB的功能..............................................................................3

1.3MATLAB的典型应用包括...................................................................3

2设计题目:

Matlab运算与应用设计套题三.................................4

3设计内容...............................................................................................4

3.1题一.....................................................................................................................4

3.2题二.....................................................................................................................4

3.3题三.....................................................................................................................5

3.4题四.....................................................................................................................6

3.5题五....................................................................................................................11

3.6题六....................................................................................................................11

3.7题七.....................................................................................................................................12

3.8题八.....................................................................................................................................12

3.9题九.....................................................................................................................................13

3.10题十.....................................................................................................................14

4课程设计心得....................................................................................15

5参考文献............................................................................................17

1.MATLAB概述

11MATLAB简介

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

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

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

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

1.2.MATLAB的功能

1-2-1MATLAB具有很强的数值计算功能

●MATLAB以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数

●按照IEEE的数值计算标准进行计算

●提供十分丰富的数值计算函数,方便计算,提高效率

●MATLAB命令与数学中的符号,公式非常接近,可读性强,容易掌握

1-2-2MATLAB的符号计算功能

●MATLAB和著名的符号计算语言Maple相结合

1-2-3MATLAB的绘图功能

●MATLAB提供丰富的绘图命令,很方便实现数据的可视化

1-2-4MATLAB的编程功能

●MATLAB具有程序结构控制,函数调用,数据结构,输入输出,面向对象等程序语言特征,而且简单易学,编程效率高

3、MATLAB应用

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

●数值分析

●数值和符号计算

●工程与科学绘图

●控制系统的设计与仿真

●数字图像处理技术

●数字信号处理技术

●财务与金融工程

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

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

2.设计题目:

Matlab运算与应用设计套题三

3.题目内容

3-1.计算

理论分析:

利用MATLAB的基本函数cos()和sqrt()就可以处理这两个算式。

程序代码如下:

>>20*cos(0.5*pi)/(2+sqrt(3))

ans=

3.2814e-016

>>5*cos(0.4*pi)/(4+sqrt(3))

ans=

0.2696

小结:

要注意乘法要用‘*’而不能用‘·’或者不写。

分母要用括号括起来,而‘π’直接写'pi'就可以了。

这与平时的一些书写习惯有所差别。

通过计算这两个算式可以看见matlab计算功能的强大。

带着这份激动,让我继续去揭开matlab的神秘面纱吧。

3-2.绘制函数

时的曲线。

理论分析:

利用matlab的绘图功能绘制曲线图,我用的是最基本的plot()函数.

程序代码:

>>x=0:

0.05:

1;

y=x.*exp(-x);

plot(x,y)

 

图形如图一所示:

图一

小结:

在二维绘图函数中,最重要、最基本的函数就是plot函数。

其可以在二维坐标系中绘制线性图形。

其调用格式为

Plot(y)

Plot(x1,y1,......)

Plot(x1,y1,Linespace,......)

Plot(....,'PropertyName','PropertyValue',....)

H=plot(....)

3-3.用图形表示离散函数

理论分析:

在这道题目中,运用到绝对值函数abs(),描粗方格函数gridon以及上题所用到的绘图函数plot()

程序代码:

>>n=(0:

12);

y=1./abs(n-6);

plot(n,y,'r*','MarkerSize',20)

Gridon

图形如图二所示:

图二

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

3-4-1.题目X=0:

0.25:

3;

Y=X.*exp(-X);

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

理论分析:

x=0:

0.25:

3;表示自变量x的变化范围是0到3,每次自增0.25;y=x.*exp(-x)表示应变量与自变量之间的函数关系;plot(x,y)表示用plot函数在二维坐标系里绘制线性函数;xlabel(‘x’),ylabel(‘y’)表示在当前坐标轴上加注x轴,y轴的表示一次为x,y。

而title(‘y=x*exp(-x)’)表示将"y=x.*exp(-x)"标注为图形的标题。

或者注释如下:

X=0:

0.25:

3;%长度为13的x轴采样点

Y=X.*exp(-X);%函数表达式

plot(X,Y);%绘制一条曲线,如下所示

xlabel(‘x’);%将水平轴标注为x轴

ylabel(‘y’);%将竖直轴标注为y轴

title(‘y=x*exp(-x)’);%将函数图形取名为y=x.*exp(-x)

程序代码:

>>X=0:

0.25:

3;

Y=X.*exp(-X);

plot(X,Y);

xlabel('x');

ylabel('y');

title('y=x*exp(-x)');

图形如图三所示:

图三

3-4-2题目:

A=zeros(3,5)

A(:

)=-4:

5

L=abs(A)>4

islogical(L)

X=A(L)

理论分析:

(声明:

A数组取值有误,应将3改为2)指令功能如下

A=zeros(2,5)%取0数组A,2行5列

A(:

)=-4:

5%将-4至5的10个数值按列依次给A数组赋值

L=abs(A)>4%判断A中元素的绝对值与4的大小,将结果赋值给L

islogical(L)%将L变为L的逻辑数组

X=A(L)%将逻辑值为1的元素列写出来

程序代码:

>>a=zeros(2,5)

a(:

)=-4:

5

l=abs(a)>4

islogical(l)

x=a(l)

a=

00000

00000

 

a=

-4-2024

-3-1135

 

l=

00000

00001

 

ans=

1

 

x=

5

3-4-3.题目:

A=[1:

5;6:

10]

pow2(A)

理论分析:

A=[1:

5;6:

10]%输入数组A

pow2(A)%依次计算数组A中元素以2为底的幂

程序代码:

A=[1:

5;6:

10]

pow2(A)

A=

12345

678910

 

ans=

2481632

641282565121024

3-4-4题目:

A=zeros(3,2)

A(:

)=1:

6

A=A*(1+i)

A1=A.’

B1=A’

理论分析:

A=zeros(3,2)%取0数组A,3行2列

A(:

)=1:

6%将1至6的6个数值按列依次给A数组赋值

A=A*(1+i)%将矩阵A转化为复数矩阵

A1=A.’%将矩阵A转置

B1=A’%将矩阵A共轭转置

程序代码:

A=zeros(3,2)

A(:

)=1:

6

A=A*(1+i)

A1=A.'

B1=A'

A=

00

00

00

A=

14

25

36

A=

1.0000+1.0000i4.0000+4.0000i

2.0000+2.0000i5.0000+5.0000i

3.0000+3.0000i6.0000+6.0000i

A1=

1.0000+1.0000i2.0000+2.0000i3.0000+3.0000i

4.0000+4.0000i5.0000+5.0000i6.0000+6.0000i

B1=

1.0000-1.0000i2.0000-2.0000i3.0000-3.0000i

4.0000-4.0000i5.0000-5.0000i6.0000-6.0000i

3-4-5A=ones(2,3)

B=ones

(2)

C=eye(4)

D=diag(C)

E=repmat(C,1,3)

理论分析:

指令说明如下

A=ones(2,3)%2行3列全1矩阵A

B=ones

(2)%2阶全1方阵B

C=eye(4)%4阶单位矩阵,对角线上元素全为1,其余元素均为0

D=diag(C)%提取对角矩阵C

E=repmat(C,1,3)%生成一个包含3个C的复制的大矩阵E

程序代码:

A=ones(2,3)

B=ones

(2)

C=eye(4)

D=diag(C)

E=repmat(C,1,3)

A=

111

111

B=

11

11

C=

1000

0100

0010

0001

D=

1

1

1

1

E=

Columns1through10

1000100010

0100010001

0010001000

0001000100

Columns11through12

00

00

10

01

3-5计算

在x=0.1与10处的值。

理论分析1:

可以直接输入方程式,然后就可以计算出结果,如下所示。

输入x=0.1

x=10

y=2*x^5+0.1*x^3-10

输出

x=

0.1000

y=

-9.9999

x=

10

y=

200090

理论分析2:

对于多项式的计算,matlab提供了专用的函数polyval(),通过polyval()函数可以很快的计算出在相应值的下的多项式结果。

程序代码:

>>p=[200.10-10];

>>polyval(p,0.1)

ans=

-9.9988

>>polyval(p,10)

ans=

20000

3-6求函数

n=100的值。

理论分析1:

在这道题目中我用了两种方法,这是第一种即编写程序算出结果。

代码如下:

>>y=0;

n=100;

fork=1:

n

y=y+1/(k^3);

end

>>y

y=1.2020

理论分析2:

在matlab中有专门的计算级数和的函数即symsum()函数。

其格式为:

symsum(x,y,a,b)计算级数x的和,其中y为自变量,x为符号表达式,[a,b]为参数y的取值范围。

代码如下:

>>symsn;

>>s=1/n^3;

>>symsum(s,n,1,100)

ans=

81473483330743503583074181861672511931518122336172216406894149391331289704097519580221863303145356050828007873151451209887/67781182783092495848656345091844021571734190630914590229332161379950257170828098031102950264769178652556660142954086400000

>>81473483330743503583074181861672511931518122336172216406894149391331289704097519580221863303145356050828007873151451209887/67781182783092495848656345091844021571734190630914590229332161379950257170828098031102950264769178652556660142954086400000

ans=

1.2020

小结:

对于级数求和函数symsum()要注意先定义变量,而计算结果一开始是一大串数数字,我以为错了,最后才发现中间还有一个'/'号。

我把结果运算一下,和上面所得结果一样。

3-7求1500个元素的随机数向量A中大于0.5的元素个数。

理论分析:

对于列写随机数需要用到函数rand().得到矩阵后需要用程序控制,有循环语句,选择语句和嵌套循环语句。

程序代码:

A=rand(50,30);

n=0;

fori=1:

50;

forj=1:

30;

ifA(i,j)>0.5,n=n+1;

end,end,end

>>

>>n

n=

760

小结:

在写代码的过程中需要注意‘,’与‘;’之间的区别,而最后三个end与for,for,if三者依次对应,缺一不可,否则得不到最终结果。

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

运行下面的程序,观察结果,并简单说明。

t1=(0:

11)/11*pi;y1=sin(t1).*sin(9*t1);

t2=(0:

100)/100*pi;y2=sin(t2).*sin(9*t2);

subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图

(1)')

subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图

(2)')

subplot(2,2,3),plot(t1,y1,t1,y1,'r.')

axis([0,pi,-1,1]),title('子图(3)')

subplot(2,2,4),plot(t2,y2)

axis([0,pi,-1,1]),title('子图(4)')

解答:

指令分析

t1=(0:

11)/11*pi;%定义一组自变量y1=sin(t1).*sin(9*t1);%数组的乘法

t2=(0:

100)/100*pi;y2=sin(t2).*sin(9*t2);

subplot(2,2,1),%将窗口分为4个,当前为第一个

plot(t1,y1,'r.'),%将点描绘在坐标轴上

axis([0,pi,-1,1]),%控制x,y轴的数值范围

title('子图

(1)')%显示标题

subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图

(2)')

subplot(2,2,3),plot(t1,y1,t1,y1,'r.')%点少时显示的是折线

axis([0,pi,-1,1]),title('子图(3)')

subplot(2,2,4),plot(t2,y2)%点多时才显示曲线

axis([0,pi,-1,1]),title('子图(4)')

结果如图四所示:

图四

3-9.计算下列矩阵A正交阵。

理论分析:

运用orth()函数处理即可

程序代码:

A=[114;225;336]

orth(A)

A=

114

225

336

ans=

-0.40800.8166

-0.56330.1268

-0.7185-0.5631

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

理论分析:

调用方法X=FFT(x);X=FFT(x,N);x=IFFT(x);x=IFFT(x,N)做分析时,幅值的大小与FFT的选择点数有关,但不影响分析结果。

在做IFFT时已经做了处理,要得到真实的幅值大小,只要将得到的变换后结果乘以2除以N即可。

程序如下:

clf

fs=100;N=128;

n=0:

N-1;t=n/fs;

w=ra

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

当前位置:首页 > 党团工作 > 党团建设

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

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