MATLAB课程设计-Matlab运算与应用设计.doc

上传人:来看看 文档编号:5090149 上传时间:2020-02-01 格式:DOC 页数:19 大小:325.50KB
返回 下载 相关 举报
MATLAB课程设计-Matlab运算与应用设计.doc_第1页
第1页 / 共19页
MATLAB课程设计-Matlab运算与应用设计.doc_第2页
第2页 / 共19页
MATLAB课程设计-Matlab运算与应用设计.doc_第3页
第3页 / 共19页
MATLAB课程设计-Matlab运算与应用设计.doc_第4页
第4页 / 共19页
MATLAB课程设计-Matlab运算与应用设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《MATLAB课程设计-Matlab运算与应用设计.doc》由会员分享,可在线阅读,更多相关《MATLAB课程设计-Matlab运算与应用设计.doc(19页珍藏版)》请在三一文库上搜索。

1、 课程设计任务书学生姓名: * 专业班级: 电信* 指导教师: * 工作单位: 信息工程学院 题 目: Matlab运算与应用设计4 初始条件: 1.Matlab6.5以上版本软件; 2.课程设计辅导资料:“Matlab语言基础及使用入门”、“数字信号处理原理与实现”、“Matlab及在电子信息课程中的应用”等; 3.先修课程:信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的

2、推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析总结。具体设计要求包括: 初步了解Matlab、熟悉Matlab界面、进行简单操作; MATLAB的数值计算:创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计; 基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等; 使用文本编辑器编辑m文件,函数调用; 能进行简单的信号处理Matlab编程;2. 课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: 目录; 与设计题目

3、相关的理论分析、归纳和总结; 与设计内容相关的原理分析、建模、推导、可行性分析; 程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; 课程设计的心得体会(至少500字); 参考文献;其它必要内容等。时间安排: 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录一. 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的简介MAT

4、LAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、

5、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。MATLAB应用MATLAB 产品族可以用来进行以下各种工作: 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理 数字信号处理 通讯系统设计

6、与仿真 财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。 (3)二.具体题目分析2.1算y1=和y2=2.1.1 理论分析 这是利用matlab处理数值运算的题目。这其中要用到cos()函数。2.1.2程序代码 y1=5*cos(0.6*pi)/(2+30.5) %计算y1的表达式y1 =-0.4140 %y1的计算结果 y2=5*cos(0.2*pi)/(3+30.5) %计算y2的

7、表达式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函数是很好使用的函数。他可以很方便的画出所需区域的函数图像。甚至可以很轻松的描绘处

8、函数运算之后以及符合函数的图像。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);

9、 %数组的乘法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的为0islogical(L) %判断L是不是逻辑数X=A(L) %取出A中大于1的元素组成一个新矩阵执行结果: A(:)=-4:10A = -4 0 4 8 12 -3 1 5 9 13 -2 2 6 10 14 -1 3 7 11 15 L

10、=abs(A)4 L = 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 islogical(L) (6)ans = 1 X=A(L) X = 5 6 7 8 9 10 11 12 13 14 152.4.3 指令分析 A=1:5;6:10 %生成一个矩阵pow2(A) %矩阵相应位子的值变成原来的平方执行结果: A=1:5;6:10A = 1 2 3 4 5 6 7 8 9 10 pow2(A)ans = 2 4 8 16 32 64 128 256 512 10242.4.4 指令分析A=zeros(5,6) %生成一个5X6的全零矩阵A(:)=1:30 %

11、将1到30分别赋给矩阵的各元素A=A*(1+i) %给A矩阵的元素从新赋值A1=A.; %A的转置矩阵B1=A; %A的共轭转置矩阵执行结果: A=zeros(5,6) (6) A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A(:)=1:30A = 1 6 11 16 21 26 2 7 12 17 22 27 3 8 13 18 23 28 4 9 14 19 24 29 5 10 15 20 25 30 A=A*(1+i) A = Columns 1 through 5 1.0000 + 1.0000i 6.

12、0000 + 6.0000i 11.0000 +11.0000i 16.0000 +16.0000i 21.0000 +21.0000i 2.0000 + 2.0000i 7.0000 + 7.0000i 12.0000 +12.0000i 17.0000 +17.0000i 22.0000 +22.0000i 3.0000 + 3.0000i 8.0000 + 8.0000i 13.0000 +13.0000i 18.0000 +18.0000i 23.0000 +23.0000i 4.0000 + 4.0000i 9.0000 + 9.0000i 14.0000 +14.0000i 19.

13、0000 +19.0000i 24.0000 +24.0000i 5.0000 + 5.0000i 10.0000 +10.0000i 15.0000 +15.0000i 20.0000 +20.0000i 25.0000 +25.0000i Column 6 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.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i 4.00

14、00 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000i 7.0000 + 7.0000i 8.0000 + 8.0000i 9.0000 + 9.0000i 10.0000 +10.0000i 11.0000 +11.0000i 12.0000 +12.0000i 13.0000 +13.0000i 14.0000 +14.0000i 15.0000 +15.0000i 16.0000 +16.0000i 17.0000 +17.0000i 18.0000 +18.0000i 19.0000 +19.0000i 20.0000 +20.0000i 21.0

15、000 +21.0000i 22.0000 +22.0000i 23.0000 +23.0000i 24.0000 +24.0000i 25.0000 +25.0000i 26.0000 +26.0000i 27.0000 +27.0000i 28.0000 +28.0000i 29.0000 +29.0000i 30.0000 +30.0000i B1B1 = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i 4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i 7.0000 - 7.0000

16、i 8.0000 - 8.0000i 9.0000 - 9.0000i 10.0000 -10.0000i 11.0000 -11.0000i 12.0000 -12.0000i 13.0000 -13.0000i 14.0000 -14.0000i 15.0000 -15.0000i 16.0000 -16.0000i 17.0000 -17.0000i 18.0000 -18.0000i 19.0000 -19.0000i 20.0000 -20.0000i 21.0000 -21.0000i 22.0000 -22.0000i 23.0000 -23.0000i 24.0000 -24.

17、0000i 25.0000 -25.0000i 26.0000 -26.0000i 27.0000 -27.0000i 28.0000 -28.0000i 29.0000 -29.0000i 30.0000 -30.0000i2.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) 1 1 1 1 1 1 B=ones(2) B =

18、1 1 1 1 C=eye(4) C = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 D=diag(C) D = 1 1 1 1 E=repmat(C,1,3) E=repmat(C,1,3)E = 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 12.5.计算在x=0.1与10处的值。2.5.1 理论分析 这道题目是运用MATLAB计算多项式。这里运用到的是polyval()命令。通过polyval()命令可以很快的计算出在相应值下的

19、多项式的值。 (9)2.5.2 程序代码 p=2 0 0.1 0 -10; polyval(p,0.1);ans = -9.9988 polyval(p,10)ans = 200002.5.3 总结 本题要注意四次项和二次项的系数为零。2.6.求函数, n=100的值2.6.1 理论分析 本题可用for 循环实现函数求值 其中循环次数为100次。2.6.2 程序代码s=0;%函数初值为0for n=0:100%for控制循环100次x=exp(n);s=s+x;%函数加和end %结束ss = 4.2525e+0432.6.3 总结 For循环可以简单的用来求和,使用的时候要注意使用格式。fo

20、r 循环控制变量=表达式1:表达式2:表达式3语句end2.7.求3000个元素的随机数向量A中大于0.5的元素个数。2.7.1 理论分析这道题中要用到随机函数rand()。在生成矩阵后还要用程序控制。其中还要用到循环语句,和选择语句。其中用到嵌套循环语句。2.7.2程序代码 A=rand(1,3000);%产生3000个随机数sum(A0.5)%对A中大于0.5的数的个数求和ans = (10) 15302.7.3 总结8.用图形表示连续调制波形及其包络线,运行下面的程序,观察结果,并简单说明。8.1简要分析 t=(0:pi/100:pi);%定义t的范围y1=sin(t)*1,-1;y2=

21、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=1 1 4;2 2 5;3 3 6;X,Lamda=eig(A)X = (11) 0.3908 0.8637 0.7071 0.5605 0.2007 -0.7

22、071 0.7302 -0.4623 -0.0000Lamda = 9.9083 0 0 0 -0.9083 0 0 0 -0.00002.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

23、);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,

24、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)三.

25、课程设计心得正所谓“纸上得来终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的。因此在学期末来临之际,我们迎来了MATLAB课程设计。通过为期一周半的MATLAB课程设计,我对MATLAB这个仿真软件有了更进一步的认识和了解。在这一周半时间里,我通过自己摸索,向同学请教,查阅资料,完成了老师教给我们的任务。这次课程设计,提高自己的基础理论知识、基本动手能力,提高人才培养的基本素质,并帮助我们掌握基本的文献检索和文献阅读的方法,同时提高我们正确地撰写论文的基本能力。在整个设计过程中我懂得了许多东西,也培养了独立思考和设计的能力,树立了对知识应用的信心,相信会对今后

26、的学习工作和生活有非常大的帮助,并且提高了自己的动手实践操作能力, 使自己充分体会到了在设计过程中的成功喜悦。虽然这个设计做的不怎么好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我终身受益。在没有做课程设计以前,觉得课程设计只是对知识的单纯总结,但是通过这次课程设计发现自己的看法有点太片面,课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。希望以后像这样的课程设计在多一

27、点。 (14)四参考文献张智星.MATLAB程序设计与应用.北京:清华大学出版社,2002陈怀琛.MATLAB及其在理工课程中的应用指南.西安:西安电子科技大学出版社,1999.10 肖伟、刘忠. MATLAB程序设计与应用M.北京:清华大学出版社 2005姚东.MATLAB及在电子信息课程中的应用M.第二版.北京:北京电子工业出版社,2000葛哲学等编 .MATLAB时频分析技术及其应用.人民邮电出版社.2007年 (15)本科生课程设计成绩评定表姓 名性 别 男专业、班级题 目: 答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 2010年 1 月 13 日 (16)

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

当前位置:首页 > 绩效管理


经营许可证编号:宁ICP备18001539号-1