您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于MATLAB的信号处理仿真分析
第1页(共38页)基于MATLAB的信号处理仿真分析中文摘要:Matlab在信号分析与处理中有着广泛的应用。本文以具体的函数信号产生、信号变换、功率谱估计方法,详述了如何应用Matlab语言编程的方法设计对信号进行编辑和仿真分析。利用MATLAB软件,通过设计图形用户界面(GUI),说明Matlab功能强大、简单实用、调节容易、可视性好,可大大提高计算效率,缩短编程时间,是一种简便实用的计算工具,可成功地应用于信号处理中,在教学和研究等领域具有广泛的应用前景和一定的推广价值。关键词:Matlab信号产生信号变换功率谱估计GUI。Abstract:Matlabhasawiderangeofapplicationsinsignalanalysisandprocessing,Thisarticlehaspointedoutitscharacteristics,interfacesandbasicmethodofcalculation,Specificfunctionsignalgenerator,functiontransform,classicalspectralestimationmethods,detailedintheapplicationoftheMatlabprogramminglanguagedesignedforeditingofthesignalanalysisandsimulation.Throughthedesignofgraphicaluserinterface(GUI)byUsingMatlab,wecanlearnthatMatlabispowerful,simple,practical,easyadjustment,visibility,andcangreatlyimprovethecomputationalefficiencyandshortentheprogrammingtimeisasimpleandpracticaltool,canbesuccessfullyappliedtosignalprocessing,intheteachingandresearchinareassuchastheapplicationofawiderangeofprospectsandthepromotionofacertainvalue.KeyWords:MatlabSignalgenerationSignalchangePowerspectrumestimationGUI目录第2页(共38页)第一章绪论…………………………………………………………………………31.1MATLAB简介………………………………………………………………31.2MATLAB的特点和优势……………………………………………………41.3图形用户界面(GUI)………………………………………………………51.4设计内容……………………………………………………………………5第二章信号产生及其MATLAB实现……………………………………………52.1离散信号及其MATLAB实现……………………………………………62.2连续信号及其MATLAB实现………………………………………………92.3噪声及波形信号的MATLAB实现………………………………………13第三章信号变换及其MATLAB实现……………………………………………183.1Z变换……………………………………………………………………183.2离散傅里叶变换DFT……………………………………………………203.3快速傅里叶变换FFT……………………………………………………21第四章基于MALTAB的功率谱估计………………………………………………233.1直接法…………………………………………………………………233.2间接法…………………………………………………………………253.3改进直接法………………………………………………………………26第五章图形用户界面(GUI)的实现………………………………………………275.1GUI界面设计概述……………………………………………………275.2GUI的具体实现过程……………………………………………………295.3GUI总界面………………………………………………………………36第六章总结…………………………………………………………………………37第七章致谢………………………………………………………………………37参考文献……………………………………………………………………………38第一章绪论第3页(共38页)1.1MATLAB简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(MatrixLaboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。20世纪70年代,美国新墨西哥大学计算机科学系主任CleveMoler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、SteveBangert合作成立了的MathWorks公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。历经升级,到2001年已经有了6.0版,现在MATLAB6.1、6.5、7.0、7.X都已相继面世。早期的MATLAB在DOS环境下运行,1990年推出了Windows版本。1993年,Mathworks公司又推出了MATLAB的微机版本,从分支持在MicrosoftWindows界面下的编程。随着版本的升级,内容不断扩充,它的功能越来越强大,特别是在系统仿真和实时运行等方面,有很多新进展,更扩大了它的应用前景,是各种科学计算软件中使用频率最高的软件。MATLAB包括拥有数百个内部函数的主包和三十几种工具包。工具包又可以分为功能性工具包和学科工具包。功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能。学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属第4页(共38页)于此类。开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。1993年出现SIMULINK,这是基于框图的仿真平台,SIMULINK挂接在MATLAB环境上,以MATLAB的强大计算功能为基础,以直观的模块框图进行仿真和计算。SIMULINK提供了各种仿真工具,尤其是它不断扩展的、内容丰富的模块库,为系统的仿真提供了极大便利。在SIMULINK平台上,拖拉和连接典型模块就可以绘制仿真对象的模型框图,并对模型进行仿真。在SIMULINK平台上,仿真模型的可读性很强,这就避免了在MATLAB窗口使用MATLAB命令和函数仿真时,需要熟悉记忆大量M函数的麻烦,对广大工程技术人员来说,这无疑是最好的福音。现在的MATLAB都同时捆绑了SIMULINK,SIMULINK的版本也在不断升级,从1993年的MATLAB4.0/SIMULINK1.0版到2001年的MATLAB6.1/SIMULINK4.1版,2002年即推出了MATLAB6.5/SIMULINK5.0版。MATLAB已经不再是单纯的“矩阵实验室”了,它已经成为一个高级计算和仿真平台。1.2MATLAB的特点和优势特点:(1)此高级语言可用于技术计算(2)此开发环境可对代码、文件和数据进行管理(3)交互式工具可以按迭代的方式探查、设计及求解问题(4)数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分(5)二维和三维图形函数可用于可视化数据(6)各种工具可用于构建自定义的图形用户界面(7)各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM以及MicrosoftExcel)集成优势:(1)友好的工作平台和编程环境(2)简单易用的程序语言(3)强大的科学计算机数据处理能力(4)出色的图形处理功能第5页(共38页)(5)应用广泛的模块集合工具箱(6)实用的程序接口和发布平台(7)应用软件开发(包括用户界面)1.3图形用户界面(GUI)MATLAB提供的图形用户界面开发环境(GUIDE)来完成界面设计。GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法。GUI将用户保存设计好的GUI界面保存在一个FIG资源文件中,同时自动生成包含GUI初始化和组件界面布局控制代码的M文件,为实现回调函数提供了一个参考框架。这种提供图形用户界面的应用程序能够使用户的学习和使用更为方便、直观和实用。1.4设计内容(1)信号产生及其MATLAB实现a.离散信号及其MATLAB实现b.连续信号及其MATLAB实现c.噪声及波形信号的MATLAB实现(2)信号变换及其MATLAB实现a.Z变换b.离散傅里叶变换DFTc.快速傅里叶变换FFT(3)功率谱估计a.直接法b.间接法c.改进直接法(4)图形用户界面(GUI)的实现第二章信号产生及其MATLAB实现在MATLAB中产生信号,很多可以通过MATLAB内部的一些简单函数如zeros、ones等来实现。同时MATLAB可实现信号的基本运算,如移位、相加、相乘等。第6页(共38页)MATLAB内部提供了大量的函数用来产生噪声及常用的信号波形。下面对数字信号处理中的常用信号的产生进行阐述。2.1离散信号及其MATLAB实现(1)单位冲激序列编写程序产生32点并右移20的单位冲激序列。MATLAB程序如下:N=32;K=20;x=zeros(1,N);x(K)=1;xn=0:N-1;stem(xn,x)axis([-13301.1])运行结果:(2)单位阶跃序列编写程序产生N=32点的单位阶跃序列。MATLAB程序如下:x=ones(1,N);第7页(共38页)xn=0:N-1;stem(xn,x);axis([-13201.1]);运行结果:(3)斜坡序列编写程序产生斜率为3移位为4的斜坡序列。MATLAB程序如下:N=32;k=4;B=3;x=[zeros(1,k)ones(1,N-k)];fori=1:Nx(i)=B*x(i)*(i-k);endxn=0:N-1;stem(xn,x)axis([-132090])运行结果:第8页(共38页)(4)正弦序列编写程序产生幅度A=3,频率f=100,初始相位fai=1.2的正弦序列。MATLAB程序如下:N=32;A=3;f=100;fai=1.2;xn=0:N-1;x=A*sin(2*pi*f*(xn/N)+fai);stem(xn,x)axis([-132-3.23.2])运行结果:第9页(共38页)(5)实指数序列编写程序产生幅度A=3,a=0.7的实指数序列。MATLAB程序如下:
本文标题:基于MATLAB的信号处理仿真分析
链接地址:https://www.777doc.com/doc-1491399 .html