首页 > 毕业论文百科 > matlab的毕业论文怎么写

matlab的毕业论文怎么写

发布时间:

matlab的毕业论文怎么写

matlab在微分方程中的应用毕业论文大纲书写方法为1、先写前言。2、第一部分解释matlab的基本概念。3、第二部分描述其在微分方程中的应用。

第一章 绪 论 §1-1 课题研究的背景 §1-2 信号与系统分析国内外研究现状 §1-3 Matlab概述§1-4 课题研究的目的及意义 §1-5 论文主要内容及结构 第二章 MATLAB在信号与系统分析中的应用 §2-1 信号与系统分析2-1-1 国内外关于该课题的研究现状及发展趋势 2-1-2 信号与系统分析方法分类 §2-2 Matlab在信号与系统分析中应用的简介§2-3 本章小结 第三章 Matlab在信号与系统分析中应用模型设计 §3-1 引言 §3-2 系统分析 §3-3 模型建立(是本章重点需要扩充) 第四章 (具体实例实现) §4-1 §4-2 §4-3 实验结果分析 §4-4 本章小结 第五章 结束语 参考文献 致 谢 最好找本MATLAB在信号与系统分析中的应用的书来看看。可以看看飞思科技产品研发中心出的一系列关于matlab应用的书,会对你有帮助的!祝顺利!

摘要:由于MA7ⅡAB不能直接对硬件端12进行读写操作,缺乏了实时性,使得工程上的应用受到了极大的限制。而通过MATI.AB应用程序接口Mex调用C++语言,可实现在MATLAB环境下对硬件端12信号的读写。为此,笔者对Mex接口文件进行了详细介绍,包括Mex接口的各种特殊功能、详细编写规则和具体编译要求,具体阐述了Mex接口在MA啊AB环境下的调用及使用。并根据Mex接口的相关功能。对MATLAB数据采集系统的设计在理论上进行了探讨,以图对MATLAB功能进行进一步的扩展。关键词:MATLAB:接口;数据采集Research of Data—Collection System Based onⅣ队TLABWang Hailong,Chen Shanjie,Li Qian,Zhang Peng,Ku Tao,Xu Dahua(Co//ege ofEngieering,Nanjing Agriculture University,Nanjing 210031)Abstract:Since MATLAB can not write directly to hardware available for operation.and it lacks of a re。al-time,it works on the applications has been significantly hampered.MATLAB applications through rede—ployment C++language interface Mex.Achievable in the MATI。AB environment for the specific hardwareinterface signals.Therefore,author of a paper details Mex interfaces,inchding interfaces Mex various spe—cial functions,and specific translation rules for the preparation of detailed,enuncimed the transfer and theuse of Mex interfaee in the MA’nAB environment.And in accordance with the relevant functional interfaceMex.MATIAB data acquisition system for the design in theory explored in a bid to further expand thefunctions of MA7n。AB.Key words:MA,11AB,Interface,Data collectionMATLAB产品系列被广泛地应用于包括信号与图像处理、控制系统设计、通讯、系统仿真等诸多领域。它的一大特性是有众多的面向具体应用的工具箱和仿真块,包含了完整的函数集用来对信号图像处理,控制系统设计,神经网络等特殊应用进行分析和设计。其他的产品延伸了MATLAB的能力,包括数据采集,报告生成,和依靠MATLAB语言编程产生独立C/C++代码等等。正因为其强大的科学计算与可视化功能、简单易用的开放式可扩展环境以及所拥有的各种面向不同领域而扩展的工具箱(ToolBox)t11,使得MATLAB在许多学科领域中成为计算机辅助设计与分析、算法研究和应用开发的基本工具和首选平台。但是,MATLAB也存在局限性,就是不能直接对硬件端口进行读写操作,从而影响了它在测控系统开发上的应用范围。但它提供了应用程序接口API,通过该接口,用户可以方便地完成MATLAB与外部环境的交互(如图1所示)。为此,如何通过接口文件调用其它语言编写的程序(如C_卜}),再通过其实现对硬件端口的读写操作,最终实现在单一MArⅡAB环境中进行测控系统的开发,便成了一项值得探讨和研究的问题。1 MATLAB应用程序接口文件MexMATLAB应用程序接口(APD主要包括3部分:Mex文件(外部程序调用接13),Mat文件(数据输入输出接口)及MATLAB计算引擎函数库。它们实现的一般功能分别为:(1)在MATLAB环境中调用C/c++语言或FORTRAN语言编写的程序,以提高数据处理效率;(2)向MATLAB环境传送数据或从MATLAB环境接收数据,即实现MATLAB系统与外部环境的数据交换;(3)在MATLAB和其他应用程序间建立客户机/服务器关系,将MATLAB作为一个计算引擎,在其他应用程序中调用从而降低程序设计的工作量。以下重点介绍Mex文件的应用。1.1眦X是一种动态链接的子程序,其具体功能如下(1)对于某些已有的C程序,可以通过Mex方式在MATLAB环境中直接调用;(2)对于影响MATLAB执行速度的FOR__I,OOP等循环体,可以编写相应的C程序完成相同功能,并编译成Mex文件,提高运行速度;(3)对于A/D或D/A卡,或其他PC硬件,可以直接用Mex文件进行访问,扩展MATLAB的功能;(4)利用MEX文件,还可以使用一些软件,如Windows的用户界面资源等。1.2 Mex文件的编程规则(1)编制自己的C++算法程序;(2)编制MEX源文件代码;MEX文件的源文件主要有两个部分组成:①计算子例行程序(Computational Routine)。它是链接的外部子程序,包含所有要完成计算功能的源代码,用来完成实际的计算工作。②入口子例行程序(Gateway Routine)。它是计算子例行程序和MATLAB环境之间的接口,用于完成两者间的数据交互。入口子例行程序是MATLAB调用C抖程序所必需的部分,计算子例行程序可以由入口子例行程序调用以完成其特定的功能要求。入口子例行程序具体的使用格式如下:#include"mex.h"void MexFunction(int nlhs,mxArray牛pills[],int nrhs,const mxArray·prhs[]){//C语言代码)其中,入口子程序的函数名必须为MexFunction。prhs为一个结构体类型的指针数组,该数组元素按顺序指向所有的输入参数;nrhs为输入参数的个数;plhs与prhs的类型一致,它指向所有的输出参数;nlhs表示输出参数的个数。该函数通过prhs获得输入数据,对这些输入数据的处理后经由plhs获得结果,该结果作为输出数据与其它程序进行数据交互嘲。1.3 Mex文件的编译和调用在编译Mex文件之前,必须先在MATLAB下安装好Mex编译器,安装方法如下:在MATLAB命令窗口中输入mex.setup然后按照提示向导逐步安装即可。Mex文件在MATLAB命令窗口中直接编译,方式如下:>>mex filename,然后按回车键,如果编译通过,系统就会生成同名字的DLL文件,在以后的程序中可以像调用MATLAB的内建函数一样直接调用此函数。原理如图2。由上可知,Mex文件可以作为一个MATLAB的内建函数来处理,但这个函数又具有强大的接口功能,可以完成对硬件端口信号的读写操作。其对硬件端口读写操作的总流程如图3所示:2基于MATLAB的数据采集系统的概念设计拟采用MATLAB和C的交互编程来处理数据采集问题,这样系统不仅具有传统计算机数据采集系统的全部功能,而且还具有很强的数据处理能力,实际上构成了智能虚拟仪器t3]。初步设计系统由三个模块构成,MATLAB模块的功能包括图形显示和存取、数据分析和处理等,C语言模块主要实现串行通信功能,而硬件设备则完成对物理量的变换[4,5/。如图4所示。当采样对象确定后硬件设备也就随之而定,而C语言部分实现通信功能也是固定的,故所有的数据处理功能设置都在MATLAB环境中的人机界面中实现。该系统的3个界面实现功能如下。主界面主要由一个图形框和4个按钮构成。图形框借助于MATLAB的图形处理功能,以最佳匹配模式动态显示实时采样数据,实现自动示波器功能。4个按钮名称分别尚酽设置串口”、“开始采集”、“数据处理”和“退出系统”,鼠标点击即可实现相应功能。在主界面选择了“串口设置”后,就进入通信协议.设置界面。这个界面主要由5个弹出式菜单和2个按钮构成,弹出式菜单的名称和选项分别是:端口选择(COMI--COM4)、波特率(300-19200)、数据位m8)、停止位(o~2)和校验位(无、奇、偶),而2个按钮则分别对所设参数进行确认或者修正。在主界面选择了“数据处理,,后,则进入数据处理界面。这个界面的功能与采样对象有关,需由用户自己针对任务要求进行编程。3结束语MATLAB具有各种丰富的数值运算及图形处理功能,大量实用控制工具箱的存在更为其控制应用奠定了坚实的基础;而C语言则对硬件系统具有强有力的处理能力,可方便地实现数据采集、串行通讯等功能嘲。Mex文件是MATLAB调用C++和其他语言(如Visual Fortran等)的简易接口,它极大地扩展了MATLAB的应用范围,使MATLAB系统成为真正意义上的开放的、功能完善的、自包容的程序设计和数据处理集成环境Isl。参考文献【l】王正林,王盛开,陈国顺.MATLAB/Simulink与控制系统仿真嗍.北京:电子工业出版社,2005:11-13.【2】张威.MATLAB外部接121编程嗍.西安:西安电子科技大学出版社,2004:50-85.【3】廖良斌,喻方平.基于DSP和USB的图像采集系统的研究叨.武汉理工大学学报(交通科学与工程版),2006,.30(1):120.123.[4】申鼎才,郭庆平.基于Interact的分布式数据采集与分析在岩土工程中的应用研究明.武汉理工大学学报(交通科学与工程版),2005,29(6):974-976,992.【5】王志冰,李汉强.基于USB总线的数据采集系统的设计与实现叨.武汉理工大学学报(交通科学与工程版),2005,29(5):758.761.[6】杨义伟,蒋大明,戴胜华.驼峰信号微机监测系统的数据采集阴.武汉理工大学学报(交通科学与工程版),2005,.29(1):154-156.[7】杨健,张慧慧.基于DSP和ARM的网络化数据采集与信号分析终端田.计算机工程,2006,32(8):269-271.【8】李尧坤,史忠科,毕业等.Matlab在基于B/S模式的决策支持系统中的应用叨.计算机工程,2006,32(5):255-256,282.

工科毕业论文怎么写matlab

相关论文:Vc++下如何利用Matlab工具箱进行数字信号处理摘要: 本文详述了在Vc环境下如何利用Matlab工具箱进行数字信号处理,全文以Matlab工具箱中功率谱密度分析函数为例,介绍了通过Matlab自带的引擎、Matlab自身的编译器以及利用MathTools公司的Matcom进行对工具箱函数的调用。 关键词:Matlab M-文件 引擎 编译器 Matcom Vc++Matlab的信号处理工具箱是信号算法文件的集合,它处理的基本对象是信号与系统,信号处理工具箱位于目录、Toolbox\Signal下,利用工具箱中的文件可以实现信号的变换、滤波、谱估计、滤波器设计等。在其它的环境如Vc下如果能调用Matlab工具箱中的文件,会大大地加快一些算法的实现,同时其可靠性也很高。利用Matlab引擎 Matlab引擎采用客户和服务器计算方式,在运用中,Vc的C语言或C++语言的程序作为前端客户机,它向Matlab引擎传递命令和数据信息,并从Matlab引擎接收数据信息,它提供了下列几个函数: engOpen, engGetArray, engPutArray, engEvaString, engOutputBuffer ,engClose与客户机进行交互。下面例程是在Vc下建一个基于对话框的应用程序,在对话框中设置一个Button控件OnMatlabEngine.,在对话框 .cpp文件中加入”” 和“” 头文件,下面给出部分程序清单。Void CtestmatlabDlg::OnMatlabEngine(){Engine *ep;mxArray* T=NULL,*result=NULL,*mFs=NULL,*mnfft= NULL;double datax[1024];char buffer[1024];for(int j=0;j<1024;j++)//注:如通过采集卡采集数据可将采集的数据放在datax[]数组中,此循环就不需要{double samt=(double)(); datax[j]=sin(**samt**);}double *pPxx,*pFxx;if(!(ep=engOpen(" \0"))){//打开Matlab引擎,建立与本地Matlab的连接fprintf(stderr,"\n Can't start MATLAB engine\n");exit(-1);} double Fs[1]={1024};//因为Matlab所有参与运算的参数都是矩阵的形式,因而下列几行将参数转变double nfft[1]={1024};//成Matlab可接受的矩阵形式。T=mxCreateDoubleMatrix(1,1024,mxREAL);mnfft=mxCreateDoubleMatrix(1,1,mxREAL);mFs=mxCreateDoubleMatrix(1,1,mxREAL);mxSetName(T,"T");mxSetName(mnfft,"mnfft");mxSetName(mFs,"mFs");memcpy((char*)mxGetPr(T),(char*)datax, 1024*sizeof(double));memcpy((char*)mxGetPr(mnfft),(char*)nfft, sizeof(double));memcpy((char*)mxGetPr(mFs),(char*)Fs,1*sizeof(double));engPutArray(ep,T); //将转化的参数放入引擎中,此时可在Matlab command窗口下查看此参数engPutArray(ep,mnfft); engPutArray(ep,mFs);engEvalString(ep,"[pxx,fo]=psd(T,mnfft,mFs);"); //利用引擎执行工具箱中文件engOutputBuffer(ep,buffer,512); //如只想看显示图形,可将返回参数去掉,psd无返回参数缺省情况下会自动画图形result=engGetArray(ep,"pxx");//取出引擎中的数据放在所指的区域中供后续处理pPxx=mxGetPr(result); result=engGetArray(ep,"fo");pFxx=mxGetPr(result);engEvalString(ep,"plot(fo,10*log10(pxx));");//利用引擎画图engEvalString(ep,"title('功率谱分析');");engEvalString(ep,"xlabel('Hz');");engEvalString(ep,"ylable('db');");mxDestroyArray(T); //释放内存mxDestroyArray(mFs);mxDestroyArray(mnfft);mxDestroyArray(result);engEvalString(ep,"close;");engClose(ep);}上述程序在Vc下编译需要将 和两个动态库利用以下的命令:lib/def:<自己的Matlab的安装路径,下同>e:\ Matlab\extern\include\*.def /machine:ix86 /out:*.lib来生成程序所需的静态连接库和,将和所在的目录加入Vc++ project/link/object/library modules下即可。利用Matlab自身的编译器调用工具箱中的函数 Matlab的编译器可将Matlab的M文件转换为为C或C++的源代码以产生完全脱离Matlab运行环境的独立的运用程序,但Matlab本身的资料说明编译器如用来建立独立的运用程序,不能调用Matlab工具箱中的函数,这非常不利于搞一些特殊的算法。本人研究了一段时间发现,工具箱中的函数既然是M文件就一定可以用编译器来编译,以提供如Vc的调用函数,但是编译器只能编译一个独立的M文件,即这个 M文件不依赖于其他的M文件。如果M文件中又调用了其他的M文件,可将被调用的M文件拷贝到调用M文件的相应位置,作适当的改动就可以用于编译器编译。编译器不支持图形函数,所以M文件中如有图形函数需注释掉。当Matlab的编译器mcc加入适当的参数-e(mcc –e *.*)或-p(mcc –p *.*)就可生成将输入的M文件转换为适用于特定运用的C或C++源代码。这样如果要在Vc下编译通过,还需连入以下几个库, , , . . 以及Matlab C MATH库,建议采用前述的方法将动态连接改为静态连接。对于C/C++编译环境的设置,在Matlab command窗口下运行mex –setup 然后依提示操作,而对于C/C++连接环境的设置,运行mbuild –setup依提示操作即可。下面给出利用编译器将Matlab工具箱中文件生成可供Vc调用的函数。将文件拷贝一份至Matlab\bin目录下,改写相应调用的M文件如, 等。为生成的代码简洁,对于采集数据处理输入参数很明了的情况下可作大量的删减,最终使成为一个不依赖于其他M文件的独立的M文件,注意千万注释掉作图代码,最终改成如下形式,限于篇幅给出关键的几步: function [Pxx,f]=psd(Fs,nfft,noverlap,x)window=o,5*(1-cos(2*pi*(1:nfft)’/(nffft+1)));//hanning 窗dflag=’none’;window=window(;)………………………………….以上只要稍懂Matlab语言和信号处理知识就可完成这项工作。假设上述代码重新存为,在Matlab command 窗口下设置好环境参数运行mcc –e testwin,则可在Matlab\bin下生成 ,如运行mcc –p testwin 则生成. Vc下建立一个基于对话框的文件,然后在对话框里加一个Button控件OnButtonPsd 将上述生成的.c文件的头文件加入到工程的.cpp中,且将#ifdef_cplusplus extern “c”{#end ifc代码声明加入Vc的包含文件和生成的.C的包含文件之间将#ifdef_cplusplus}#end if加入.cpp文件未尾为了简洁且便于处理将生成的c函数稍改动,给出部分代码如下: void CTestpsdwinDlg::OnButtonPsd(){mxArray* x_rhs_;//指向采集数据存放区Fs=23510;//数据采集的频率 nfft=1024;//1024点的fftdouble datax[1024]//采集的数据x_rhs_mxCreateDoubleMatrix(1,1024,mxReal);memcpy(mxGetPr(x_rhs_),datax,1024*sizeof(double));noverlap=512;……………….……………….mccCopy(&Pxx,&Spec);mccCopy(&f,&frevgg_vector);for(int j=0;j<(int)(nfft/2+1);j++){datap[j]=mccGetRealVectorElement(&Pxx, (j+1));//功率谱密度存于datap[]数组dataf[j]=mccGetRealVectorElement(&f, (j+1));//相应频率存于数组dataf[]中}mccFreeMatrix(&Pxx);……………….SendMessageBox(WM_PAINT,0,0);//利用Vc下的图形函数画图Return;}如上生成的程序可读性不太好,而生成的c++代码则可读性较好,但千万注意只能用 Matlab的MATH库,不可用c++的MATH库,否则编译会出错,限于篇幅在此不述。3)利用Matcom调用工具箱中的函数Matcom编译M文件,先将M文件按照与Matcom的cpp库的对应关系翻译为cpp源代码,然后用对应版本的c编译器将cpp文件编译成相应的exe或dll文件,所以第一次运行要指定c编译器的路径,否则无法编译,指定好的编译信息就写在Matcom\bin\文件中,不过这一步按装matcom时,它自动寻找编译器并将其写入文件中,版中使用 OCX控件,因而它支持图形操作。我们依然用上述的文件,不要将图形函数注释掉,利用Mideva来生成可被Vc调用的信号处理程序。运行Mideva在主界面上直打开M文件,在菜单中选择compile to dll,输入testwin..在Matcom debug目录下可以找到这样的几个文件, ,等。 将上述和加入工程中,project/add to project/files并且在相应的文件中加入”” 加连接库:Tools\option\directory\ , 选include选项,加入e:\matcom45\lib (包含) library选项,加入e:\matcom45\lib4) project\add to project\files 文件类型选项选(.lib)将e:\matcom45\lib\加入工程中编译运行。相应代码如下:void CtestmatcomDlg::OnpsdButton(){double datap[512],dataf[512];initM(MATCOM_VERSION);//初始化matcom库Mm Fs,nfft,noverlap;//创建矩阵Mm x=zeros(1,1024);Fs=1024;nfft=1024;noverlap=128;dMm(Pxx_o);dMm(f_o);//创建并命名矩阵datax[];//数据采集的数据存于此数组中for(int i=1;i<=1024;i++){(1,i)=datax[i+1];//给x阵赋值}testwin(Fs,nfft,noverlap,x,i_o,Pxx,f_o);//matcom生成的函数for(i=0;i<513;i++){//取出功率谱密度分析结果dataf[i]=(i+1,1);datap[i]=(i+1,1);}exitM();return;}可见利用Matcom进行M文件转换非常的容易,生成的代码可读性很好,以上的转换同时生成了可供Vc调用的动态连接库,其使用和一般的动态库一样使用。同时需指明Matcom不仅可转换独立的不依赖于其它M文件的M文件,同时可转换调用其它M文件的M文件嵌套。条件是这此M文件在同一个目录下面,如前所述的可直接用上述方法转换,生成了多个重载形式的psd函数结论: 利用Mtlab引擎调用工具箱中的函数可节省大量的系统资源,应用程序整体性能较好,但不可脱离Matlab 的环境运行。用Matlab编译器进行工具箱函数的调用,须转换相应的M文件使其成为独立的M文件,且不支持图形函数,转换的代码可读性不太好。用Matcom 进行转换非常方便,生成的代码可读性很好,支持图形函数,且代码执行的速度比不转换平均要快倍以上。以上程序在Vc++ 中调试通过,以上方法在工程实践中已得到很好的运用。仅供参考,请自借鉴希望对您有帮助

第一章 绪 论 §1-1 课题研究的背景 §1-2 信号与系统分析国内外研究现状 §1-3 Matlab概述§1-4 课题研究的目的及意义 §1-5 论文主要内容及结构 第二章 MATLAB在信号与系统分析中的应用 §2-1 信号与系统分析2-1-1 国内外关于该课题的研究现状及发展趋势 2-1-2 信号与系统分析方法分类 §2-2 Matlab在信号与系统分析中应用的简介§2-3 本章小结 第三章 Matlab在信号与系统分析中应用模型设计 §3-1 引言 §3-2 系统分析 §3-3 模型建立(是本章重点需要扩充) 第四章 (具体实例实现) §4-1 §4-2 §4-3 实验结果分析 §4-4 本章小结 第五章 结束语 参考文献 致 谢 最好找本MATLAB在信号与系统分析中的应用的书来看看。可以看看飞思科技产品研发中心出的一系列关于matlab应用的书,会对你有帮助的!祝顺利!

直接秒杀 运行去吧%%%%%%%%%%%%% ++直接序列扩频1+++++++++++++++++++++++++++++++++++++++++++clear;clc;code_length=10;fs=4960; %每个信息码元内含fs个采样点t=0:1/fs:code_length;rand('seed',0);x=sign(rand(1,code_length)); %信息码for i=1:code_length s((1+(i-1)*fs):i*fs)=x(i);ends(i*fs+1)=x(i);figure(1);plot(t,s);axis([]);title('原始信息码');%% ++生成PN码++++++++++++++++++++++++++++++++++++++++++++++++fd=[1 0 0 1 0 1]; %反馈系数num_mreg=length(fd)-1; %移位寄存器的个数num_mseq=2^(num_mreg)-1; %一个m序列的码的个数init_mseq=ones(1,num_mreg); %m序列发生器初始化值mseq=zeros(1,num_mseq);for i=1:num_mreg mseq(i)=init_mseq(num_mreg-i+1);endi=i+1;for j=i:num_mseq for k=1:num_mreg if fd(k+1)==1 mseq(j)=xor(mseq(j),mseq(j-k)); end endendfor i=1:num_mseq mseq(i)=sign(mseq(i));endw_mseq=mseq;for i=1:code_length-1 w_mseq=[w_mseq,mseq];endfor i=1:code_length*num_mseq c_mseq(((i-1)*160+1):i*160)=w_mseq(i);endc_mseq(i*160+1)=w_mseq(i);figure(2);plot(t,c_mseq);axis([0,1,]);title('一周期m序列');%% ++扩频++++++++++++++++++++++++++++++++++++++++++++++++++k_code=s.*c_mseq;figure(3);plot(t,k_code);axis([0,1,]);title('扩频序列');%% ++跳频调制++++++++++++++++++++++++++++++++++++++++++++++++++fc0=3*fs/31;fc1=6*fs/31;fc2=9*fs/31;fc3=12*fs/31;tc=0:1/fs:159/fs;c0=2*cos(2*pi*fc0*tc);c0=[c0,2*cos(2*pi*fc3*tc)];c0=[c0,2*cos(2*pi*fc1*tc)];c0=[c0,2*cos(2*pi*fc2*tc)];c1=c0;for i=1:6 c1=[c1,c0];endc1=[c1,2*cos(2*pi*fc2*tc)];c1=[c1,2*cos(2*pi*fc3*tc)];c1=[c1,2*cos(2*pi*fc1*tc)];c=c1;for i=1:code_length-1 c=[c,c1];endc(code_length*fs+1)=0;signal=k_code.*c;figure(4);plot(t,signal);axis([100/fs,400/fs,]);%title('一个信息码元的跳频调制');%% ++解跳++++++++++++++++++++++++++++++++++++++++++++++++++signal_h=signal.*c;figure(5);plot(t,signal_h);axis([0,code_length,]);%% ++解扩+++++++++++++++++++++++++++++++++++++++++++++++++jk_code=signal_h.*c_mseq;figure(6);plot(t,jk_code);axis([0,code_length,]);%% ++低通滤波++++++++++++++++++++++++++++++++++++++++++++++wn=1/1e7;b=fir1(16,wn);H=freqz(b,1,16000);signal_d=filter(b,1,jk_code);figure(7);subplot(2,1,1);plot(t,signal_d);axis([0,code_length,]);title('恢复出来的信号波形');subplot(2,1,2);plot(t,s);axis([0,code_length,]);title('原始信号波形');

1要写出预期目标 2开题以来所做的具体工作和取得的进展或成果3存在的具体问题4下一步工作具体设想与安排5指导教师意见

怎么用matlab做毕业论文

MATLAB做出来的毕业设计有很多,比如人脸识别,车牌识别等图像类的。还有算法类的,比如神经网络,遗传算法等等,这个要看你的具体要求。在必过源码有很多MATLAB的相关毕业设计参考,希望对你有帮助。

基于MATLAB的毕业设计有:

1、基于MATLAB的视图技术分析。

2、二值图像细化算法研究与实现。

3、基于MATLAB下的信号分析与处理。

4、基于matlab的伪彩色处理与研究。

5、matlab进行小波分析。

matlab将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。

扩展资料

MATLAB特点

1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2、具有完备的图形处理功能,实现计算结果和编程的可视化;

3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

毕业设计是教学过程的最后阶段采用的一种总结性的实践教学环节。通过毕业设计,学生可以综合应用所学的各种理论知识和技能,进行全面、系统、严格的技术及基本能力的练习。通常情况下,仅对大专以上学校要求在毕业前根据专业的不同进行毕业设计,对中等专业学校的学生不作要求。

基于MATLAB的毕业设计有:

1、基于MATLAB的视图技术分析

2、二值图像细化算法研究与实现

3、基于MATLAB下的信号分析与处理

4、基于matlab的伪彩色处理与研究

5、matlab进行小波分析

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

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

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

直接秒杀 运行去吧%%%%%%%%%%%%% ++直接序列扩频1+++++++++++++++++++++++++++++++++++++++++++clear;clc;code_length=10;fs=4960; %每个信息码元内含fs个采样点t=0:1/fs:code_length;rand('seed',0);x=sign(rand(1,code_length)); %信息码for i=1:code_length s((1+(i-1)*fs):i*fs)=x(i);ends(i*fs+1)=x(i);figure(1);plot(t,s);axis([]);title('原始信息码');%% ++生成PN码++++++++++++++++++++++++++++++++++++++++++++++++fd=[1 0 0 1 0 1]; %反馈系数num_mreg=length(fd)-1; %移位寄存器的个数num_mseq=2^(num_mreg)-1; %一个m序列的码的个数init_mseq=ones(1,num_mreg); %m序列发生器初始化值mseq=zeros(1,num_mseq);for i=1:num_mreg mseq(i)=init_mseq(num_mreg-i+1);endi=i+1;for j=i:num_mseq for k=1:num_mreg if fd(k+1)==1 mseq(j)=xor(mseq(j),mseq(j-k)); end endendfor i=1:num_mseq mseq(i)=sign(mseq(i));endw_mseq=mseq;for i=1:code_length-1 w_mseq=[w_mseq,mseq];endfor i=1:code_length*num_mseq c_mseq(((i-1)*160+1):i*160)=w_mseq(i);endc_mseq(i*160+1)=w_mseq(i);figure(2);plot(t,c_mseq);axis([0,1,]);title('一周期m序列');%% ++扩频++++++++++++++++++++++++++++++++++++++++++++++++++k_code=s.*c_mseq;figure(3);plot(t,k_code);axis([0,1,]);title('扩频序列');%% ++跳频调制++++++++++++++++++++++++++++++++++++++++++++++++++fc0=3*fs/31;fc1=6*fs/31;fc2=9*fs/31;fc3=12*fs/31;tc=0:1/fs:159/fs;c0=2*cos(2*pi*fc0*tc);c0=[c0,2*cos(2*pi*fc3*tc)];c0=[c0,2*cos(2*pi*fc1*tc)];c0=[c0,2*cos(2*pi*fc2*tc)];c1=c0;for i=1:6 c1=[c1,c0];endc1=[c1,2*cos(2*pi*fc2*tc)];c1=[c1,2*cos(2*pi*fc3*tc)];c1=[c1,2*cos(2*pi*fc1*tc)];c=c1;for i=1:code_length-1 c=[c,c1];endc(code_length*fs+1)=0;signal=k_code.*c;figure(4);plot(t,signal);axis([100/fs,400/fs,]);%title('一个信息码元的跳频调制');%% ++解跳++++++++++++++++++++++++++++++++++++++++++++++++++signal_h=signal.*c;figure(5);plot(t,signal_h);axis([0,code_length,]);%% ++解扩+++++++++++++++++++++++++++++++++++++++++++++++++jk_code=signal_h.*c_mseq;figure(6);plot(t,jk_code);axis([0,code_length,]);%% ++低通滤波++++++++++++++++++++++++++++++++++++++++++++++wn=1/1e7;b=fir1(16,wn);H=freqz(b,1,16000);signal_d=filter(b,1,jk_code);figure(7);subplot(2,1,1);plot(t,signal_d);axis([0,code_length,]);title('恢复出来的信号波形');subplot(2,1,2);plot(t,s);axis([0,code_length,]);title('原始信号波形');

毕业论文应该怎么利用matlab

你说的应该是层次分析中的一致性检验吧。下面是我准备美赛建模时提前写的一个程序。输入相应矩阵后自动判断是否通过一致性检验。若通过则给出最大特征值和标准化特征向量。结果为“pass”,恭喜通过一致性检验。输入要判定的矩阵A=[1,1/2,2,1/3,3,1/4;2,1,3,1/2,4,1/3;1/2,1/3,1,1/4,2,1/5;3,2,4,1,5,1/2;1/3,1/4,1/2,1/5,1,1/6;4,3,5,2,6,1]特征向量及特征值为:V = + - - + + - - + - + + - + - + - - + - + D = 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 CR = 权向量为B =

matlab在微分方程中的应用毕业论文大纲书写方法为1、先写前言。2、第一部分解释matlab的基本概念。3、第二部分描述其在微分方程中的应用。

同学你的问题解决了么 我也有这个问题 ==

把plot(y1)改成plot(x,y1) 正常的频谱图应该是横坐标为频率,纵坐标为幅值,但若要用fft作频谱的话,横坐标要有适当的变化 看看用plot(x,y1)后图像的变化

matlab预测的毕业论文

%RBF预测模型%标准化后的测试数据集t_datat_data=[     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ;     ];%初始化数据tt=t_data(:,6);x=t_data(:,1:5);tt=tt';%随机选取中心c=x;%定义delta平方为样本各点的协方差之和delta=cov(x');delta=sum(delta);%隐含层输出Rfor i=1:1:30  for j=1:1:30     R(i,j)=((x(i,:)-c(j,:)))*((x(i,:)-c(j,:))');     R(i,j)=exp(-R(i,j)./delta(j));  endendp=R;%建模%r=radbas(p);err_goal=;sc=3;net=newrb(p,tt,err_goal,sc,200,1);%测试ty=sim(net,p);tE=tt-ty;tSSE=sse(tE);tMSE=mse(tE);%预测(测试)曲线figure; plot(tt,'-+'); hold on; plot(ty,'r:*'); legend('化验值','预测值'); title('RBF网络模型输出预测曲线'); xlabel('输入样本点'); ylabel('淀粉利用率');axis([1,30,0,1]);

你好,能请教一下您吗

clc;

clearall;

closeall;

%%----BuildatrainingsetofasimilarversionofXOR

c_1=[00];

c_2=[11];

c_3=[01];

c_4=[10];

n_L1=20;%numberoflabel1

n_L2=20;%numberoflabel2

A=zeros(n_L1*2,3);

A(:,3)=1;

B=zeros(n_L2*2,3);

B(:,3)=0;

%createrandompoints

fori=1:n_L1

A(i,1:2)=c_1+rand(1,2)/2;

A(i+n_L1,1:2)=c_2+rand(1,2)/2;

end

fori=1:n_L2

B(i,1:2)=c_3+rand(1,2)/2;

B(i+n_L2,1:2)=c_4+rand(1,2)/2;

end

%showpoints

scatter(A(:,1),A(:,2),[],'r');

holdon

scatter(B(:,1),B(:,2),[],'g');

X=[A;B];

data=X(:,1:2);

label=X(:,3);

%%Usingkmeanstofindcintervector

n_center_vec=10;

rng(1);

[idx,C]=kmeans(data,n_center_vec);

holdon

scatter(C(:,1),C(:,2),'b','LineWidth',2);

%%Calulatesigma

n_data=size(X,1);

%calculateK

K=zeros(n_center_vec,1);

fori=1:n_center_vec

K(i)=numel(find(idx==i));

end

%UsingknnsearchtofindKnearestneighborpointsforeachcentervector

%thencalucatesigma

sigma=zeros(n_center_vec,1);

fori=1:n_center_vec

[n,d]=knnsearch(data,C(i,:),'k',K(i));

L2=(bsxfun(@minus,data(n,:),C(i,:)).^2);

L2=sum(L2(:));

sigma(i)=sqrt(1/K(i)*L2);

end

%%Calutateweights

%kernelmatrix

k_mat=zeros(n_data,n_center_vec);

fori=1:n_center_vec

r=bsxfun(@minus,data,C(i,:)).^2;

r=sum(r,2);

k_mat(:,i)=exp((-r.^2)/(2*sigma(i)^2));

end

W=pinv(k_mat'*k_mat)*k_mat'*label;

y=k_mat*W;

%y(y>=)=1;

%y(y<)=0;

%%trainingfunctionandpredictfunction

[W1,sigma1,C1]=RBF_training(data,label,10);

y1=RBF_predict(data,W,sigma,C1);

[W2,sigma2,C2]=lazyRBF_training(data,label,2);

y2=RBF_predict(data,W2,sigma2,C2);

扩展资料

matlab的特点

1、具有完备的图形处理功能,实现计算结果和编程的可视化;

2、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

3、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

参考资料来源:百度百科—MATLAB

(内蒙古工业大学理学院,内蒙古 呼和浩特 010051) 摘 要:本文采用基于误差反向传播算法(BP算法)的人工神经网络技术,利用Mat lab神经网络工具箱,建立了固体火箭发动机比冲性能预测的神经网络模型,并利用实验数据进行了验证。结果表明,可以利用该方法开展固体火箭发动机比冲性能的预测。 关键词:固体火箭发动机比冲; BP算法; Mat lab神经网络工具箱; 人工神经网络 中图分类号:V435∶TP183 文献标识码:A 文章编号:1007—6921(2007)08—0073—02 固体火箭发动机性能参数预测是发动机设计和研究的基本课题之一,正确预测发动机性能参数是提高发动机性能指标和精度并缩短研制周期的关键和基础。比冲性能的预测目前有两种方法。一种是以历次试验得到的修正系数对新设计的发动机的理论比冲进行修正。另一种是通过计算各种损失来预估比冲。这些方法存在需要样本数据大和预测精度差的缺点。 神经网络理论由于自身固有的超强适应能力和学习能力在很多领域获得了极其广泛的应用,解决了许多传统方法难以解决的问题。由于神经网络学习算法在数学计算上比较复杂过程也比较繁琐,容易出错。因此,采用神经网络软件包成为必然的选择。本文采用现在应用最为广泛的MATLAB神经网络工具箱,利用基于BP算法的人工神经网络建立固体火箭发动机比冲性能预测模型,以提高比冲的预测精度。 1 BP神经网络模型 BP网络由于结构简单,具有较强的非线性映射能力,是应用最为广泛的一类神经网络。BP神经网络的学习过程分为信息的正向传播过程和误差的反向传播过程两个阶段。外部输入的信号经输入层、隐含层的神经元逐层处理向前传播到输出层,给出结果。如果在输出层得不到期望输出,则转入逆向传播过程,将实际值与网络输出之间的误差沿原来联结的通路返回,通过修改各层神经元的联系权值,使误差减少,然后再转入正向传播过程,反复迭代,直到误差小于给定的值为止。 2 MATLAB神经网络工具箱的应用 神经网络工具箱是在Mat lab环境下开发出来的许多工具箱之一,它以人工神经网络理论为基础,用MATLAB语言构造出典型神经网络的激活函数,在网络训练过程中使用的是Mat lab for Windows软件,对于网络的训练使用了Neural Networks Toolbox for Mat lab。美国的Math work公司推出的MATLAB软件包既是一种非常实用有效的科研编程软件环境,又是一种进行科学和工程计算的交互式程序。MATLAB本身带有神经网络工具箱,可以大大方便权值训练,减少训练程序工作量,有效的提高工作效率。 3 影响固体火箭发动机比冲性能的因素 比冲是反映发动机所用推进剂能量高低和内部工作过程完善程度的重要技术指标。影响比冲性能的因素很多,主要包括以下几项:喷管喉径、喷管潜入比、平均扩张比、工作时间、扩散半角、平均工作压强、平均燃速、推进剂密度。由于固体火箭发动机的全尺寸试车需要耗费大量的人力、物力和财力。因此比冲的试验数据比较缺乏,本文共收集了6组数据样本,选定其中的5组作为训练样本,一组作为测试样本。每组数据样本前8项为输入因子,输出因子为实际比冲。利用这6组数据对网络进行训练、测试。 4 网络模型设计 BP网络的设计主要包括输入层、隐层、输出层及各层之间的传输函数几个方面。 网络层数。BP网络可以包含不同的隐层,理论上已经证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数。对隐含层层数的经验选择为:对于线性问题一般可以采用感知器或自适应网络来解决,而不采用非线性网络,因为单层不能发挥出非线性激活函数的特长; 非线性问题,一般采用两层或两层以上的隐含层,但是误差精度的提高实际上也可以通过增加隐含层中的神经元数目获得,其训练效果也比增加层数更容易观察和调整,所以一般情况下,应优先考虑增加隐含层中的神经元数。 输入层的节点数和输出层的节点数。输入层起缓冲存储器的作用,它接收外部的输入数据,因此其节点数取决于输入矢量的维数。由于固体火箭发动机比冲性能预测的输入样本为8维的输入向量,因此,输入层一共有8个神经元。 输出层的节点数取决于两个方面,输出数据类型和表示该类型所需的数据大小。由于固体火箭发动机比冲性能预测的输出样本为1维的输出向量,因此,输出层有1个神经元。 隐含层神经元的节点数。隐含层神经元的节点数确定是通过对不同神经元数进行训练对比,然后适当的增加一点余量。根据前人经验,可以参照以下公式进行设计:  式中:n为隐层节点数; n i 为输入节点数;  n 0 为输出节点数; a为1~10之间的常数。 根据这一原则此BP网络的隐含层神经元的节点数为[KF(]8+1[KF)]+a(a=1~10),取为13。 传输函数。一般情况下BP网络结构均是在隐含层采用S型激活函数,而输出层采用线性激活函数。 训练方法的选取。采用附加动量法使反向传播减少了网络在误差表面陷入低谷的可能性有助于减少训练时间。太大的学习速率导致学习的不稳定,太小值又导致极长的训练时间。自适应学习速率通过保证稳定训练的前提下,达到了合理的高速率,可以减少训练时间。 学习速率的经验选择。一般情况下倾向于选取较小的学习速率以保证系统的稳定性,学习速率的选取范围在~之间。此网络学习速率选取为。 期望误差的选取。一般情况下,作为对比,可以同时对两个不同的期望误差值的网络进行训练,最后通过综合因素的考虑来确定其中一个网络。 综上所述:BP网络拓扑结构为8×13×1的结构。中间层神经元的传递函数为S型正切函数tansig。由于输出已被归一化到区间[0,1]中,输出层神经元的传递函数可以设定为S型对数函数logsig。网络的训练函数采用学习率可变的动量BP算法修正神经网络的权值和阀值函数traingdx。 5 网络的训练与测试 在对神经网络进行学习训练以及预测比冲时,必须先对输入输出数据进行预处理,即归一化或标准化,将网络的输入输出数据限制在[0,1]区间内。进行归一化的主要原因有:①网络的各个输入数据常常具有不同的物理意义和不同的量纲,归一化可使得各输入分量被赋以同等重要的地位; ②某些输入变量的值可能与其它输入变量相差甚远,归一化可避免数值大的变量掩盖数值小的变量; ③可以避免神经元饱和。 6组实测数据样本经过归一化处理后的数据如表1所示。  用仿真函数sim来计算网络的输出,其预报误差曲线如图1。  由图可见,网络预测值和真实值之间的误差是非常小的,均小于3%。完全满足应用要求。 6 结论 神经网络作为一种输入/输出的高度非线性映射,通过对作用函数的多次复合,实现了固体火箭发动机比冲性能参数预测。并得到以下结论: 无需建立系统的数学模型,只要有足够的训练样本(由实验数据或仿真数据得到)即可预测。 BP网络根据样本数据,通过学习和训练,找出输入与输出之间的关系,从而求取问题的解,而不是依据对问题的经验判断,因而具有自适应功能,克服了统计回归方法分析小样本数据的不足。 结果表明,训练好的BP网络模型可以较准确的开展固体火箭发动机比冲性能的预测。 模型预测的规律受样本的性质影响,由于固体火箭发动机比冲的实验数据比较缺乏,因此本模型还有待于进一步的试验数据验证。 [参考文献] [1] 刘佩进,吕翔,何国强.基于人工神经网络的燃速相关性研究[J].推进技术,2004,25(2):156-158. [2] 张宇星.基于神经网络原理的固体火箭发动机比冲性能的预示研究[D].呼和浩特:内蒙古工业大学硕士研究生论文,2002. [3] 飞思科技产品研发中心.应用接口编程[M].北京:电子工业出版社,2003. [4] 闻新,周露,王丹力,等.Mat lab神经网络应用设计[M].北京:科学出版社,2000. [5] 蒋宗礼.人工神经网络导论[M].北京:高等教育出版社,2001.

  • 索引序列
  • matlab的毕业论文怎么写
  • 工科毕业论文怎么写matlab
  • 怎么用matlab做毕业论文
  • 毕业论文应该怎么利用matlab
  • matlab预测的毕业论文
  • 返回顶部