MATLAB课程设计-Matlab运算与应用设计.doc_第1页
MATLAB课程设计-Matlab运算与应用设计.doc_第2页
MATLAB课程设计-Matlab运算与应用设计.doc_第3页
MATLAB课程设计-Matlab运算与应用设计.doc_第4页
MATLAB课程设计-Matlab运算与应用设计.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计任务书学生姓名: * 专业班级: 电信* 指导教师: * 工作单位: 信息工程学院 题 目: matlab运算与应用设计4 初始条件: 1.matlab6.5以上版本软件; 2.课程设计辅导资料:“matlab语言基础及使用入门”、“数字信号处理原理与实现”、“matlab及在电子信息课程中的应用”等; 3.先修课程:信号与系统、数字信号处理、matlab应用实践及信号处理类课程等。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析总结。具体设计要求包括: 初步了解matlab、熟悉matlab界面、进行简单操作; matlab的数值计算:创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计; 基本绘图函数:plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等; 使用文本编辑器编辑m文件,函数调用; 能进行简单的信号处理matlab编程;2. 课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: 目录; 与设计题目相关的理论分析、归纳和总结; 与设计内容相关的原理分析、建模、推导、可行性分析; 程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; 课程设计的心得体会(至少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的简介matlab 是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括matlab和simulink两大部分。matlab是矩阵实验室(matrix laboratory)的简称,和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+30.5) %计算y1的表达式y1 =-0.4140 %y1的计算结果 y2=5*cos(0.2*pi)/(3+30.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的为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=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 %将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.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.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.0000 + 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.0000 +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.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.0000 -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.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 = 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()命令可以很快的计算出在相应值下的多项式的值。 (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循环可以简单的用来求和,使用的时候要注意使用格式。for 循环控制变量=表达式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=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.7071 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);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课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论