基于MATLAB的数据采集系统的设计.doc
1一、主要内容和基本要求本项目的目的是实现基于小本的计算机应用系统。1、系统结构系统结构如下图所示系统结构图系统的实验电路实现模块化,每一个模块利用本所总线与链接模块相连接。操作流程图2、系统设计内容本系统的目的,是提供一个利用Matlab和小本资源实现的实验系统。Matlab的程序必须编译成可执行文件,以便在小本中运行。硬件电路要求提供音频(10kHz)信号处理电路。具体包括:1)向PC的输出信号调理电路输入放大器抗混叠滤波器幅度可调输出放大器2)接收PC信号的输入信号调理电路缓冲放大器(>40kHz)驱动电路3)5V/10mA电源电路,有PC机的USB口为电路模块提供电源。硬件电路需提供模拟电路和测试电路接口。开始初始化展开界面选择执行相应处理2信号接口电路板图三、系统功能本系统具有如下功能:1.10kHz以内信号采集2.信号采集系统模型分析3.可连接相关处理程序4.可发送音频范围内的测试信号5.信号存储和调用6.信号显示7.信号处理结果显示与对比分析二、主要参考资料[1](美)JanAxelson著,陈逸译.USB应用大全.北京:中国电力出版社,2001[2]刘志俭等编著.MATLAB应用程序接口用户指南[M].科学出版社,2000[3]飞思科技产品研发中心编著.MATLAB6.5应用接口编程[M].电子工业出版社,2003[4]廖济林编著.USB2.0应用系统开发实例精讲[M].电子工业出版社,2006[5]程伟;程文波;李灿平;;基于MATLAB的实时数据采集与分析研究[J];电子测量技术;2008年08期[6]程国英;基于usb2.0的声音采集系统的研制[D];东北师范大学;2006年[7]健莲科技改编,许永和编著.USB外围设备设计与应用[M].中国电力出版社,2002[8]韩新风.基于USB接口的信号发生与采集系统的研究[D].华中科技大学2007三、进度要求1、第一周:查询文献和资料,对课题进行调研。2、第二周:根据调研资料撰写开题报告。3、第三周:完善开题报告,准备开题答辩。34、第四周:对外文文献进行翻译。5、第五周:查找资料,确定总体方案。6、第六周:设计具体的方案。7、第七周:程序的初步编写。8、第八周:程序初步仿真与测试9、第九周:继续丰富系统功能。10、第十周:进一步的进行程序仿真和调试,论文结构撰写。11、第十一周:系统整体调试。12、第十二周:毕设论文撰写,系统调试。13、第十三周:继续修改论文,系统功能测试。14、第十四周:毕设论文修改。15、第十五周:制作ppt并且进行模拟答辩。16、第十六周:完成所有毕设论文,最后答辩。指导教师:(签字)专业负责人/系主任:(签字)I摘要该设计是一个声音信号采集和分析系统,实现了对语音信号采集和显示,并对其进行了频谱分析。设计以计算机为核心构成一个数据采集系统,系统的可以分为传感器、声卡和计算机三大模块。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。系统首先通过传感器采集声音信号,再经过声卡对信号进行模数转换(采集、量化、编码)处理后,存入计算机进行信号的一系列处理。硬件部分引用了麦克风作为声音信号的传感器,以声卡作为信号的A/D转换模块,计算机用作信号的存储和处理。软件用的是MATLAB并且主要用到的是MATLAB中的数据采集工具箱。关键词:MATLAB数据采集工具箱麦克风声卡IIAbstractThedesignisasoundsignalacquisitionandanalysissystem,itimplementsspeechsignalacquisitionanddisplay,anditmadethespectrumanalysisofsignals.Designwithcomputerasthecoreconsistsofadataacquisitionsystem,thesystemcanbedividedintothreesensors,soundcardandcomputermodule.Basedonthis,theoverallschemeofthesystemhasbeenaccomplished.Finally,allfunctionalmodulewereimplementedthroughhardwareandsoftware.Firstofall,thesystemacquiresoundsignalthroughthesensors.Thentheacquiredsignalaccomplishedanalog-to-digitalconversionthroughthesoundcard(sampling,quantizationandcoding).Finally,itisstoredinthecomputerandthecomputerwillcarryoutaseriesofprocessing.Thehardwarepartusedthemicrophoneforvoicesignalsensor,andittooksoundcardasA/Dconversionmodule,thecomputerisusedtostoreandprocesssignal.SoftwareusedMTALABandmainlyuseddataacquisitiontoolboxofMATLAB.KeyWords:MATLABDataacquisitionboxThemicrophoneSoundcardIII目录摘要.IAbstractII引言.11绪论21.1课题背景及意义21.2数据采集系统的研究状况31.3课题的研究目的和任务42数据采集系统分析52.1数据采集系统的构成52.2基于MATLAB的数据采集系统原理.63基于MATLAB和声卡的数据采集器的设计.83.1方案选取83.2传感器的选择.103.3声卡在A/D转换中的应用.113.3.1声卡在A/D转换中的原理.113.3.2声卡的驱动软件.123.3.3声卡的参数设置.124软件设计.144.1基于MATLAB和声卡的软件流程144.2基于MATLAB和声卡采集的示波器的实现184.2.1GUI的创建184.2.2GUI的设计184.2.3代码的实现.195程序的调试与分析.23结论26致谢27参考文献281引言伴随着计算机的广泛应用和信息化时代的到来,计算机与外部物理世界连接需要通过数据采集来实现。随着计算机技术的迅猛发展和广泛普及,数据采集系统也迅速地得到了广泛的应用。在工业生产过程中,我们需要应用该系统对生产现场的各种参数实施采集,监视和记录,提高产品的质量,降低成本。在我们的科学研究中,使用数据采集系统可以帮助我们获取大量的动态信息,更是研究瞬间物理过程的强有力工具,也是我们获取科学奥秘的重要手段。总之,在各个应用领域中,数据采集与处理越发的及时,工作效率就会越高,从而取得的经济效益和生活品质也就会越高。本篇就是针对语音信号的采集和处理设计的基于MATLAB的数据采集器,文中提出了系统构成、设计方案、设计过程。21绪论1.1课题背景及意义计算机和信息技术自出现以来一直在飞速的发展。时至今日,我们的生活和工作已经离不开了计算机。信号以各种各样的表现形式出现在我们的日常生活中,信息的传递、存储和获取都要通过信号来实现。所以,实时的信号采集和分析处理对于计算机和信息技术有着非常重要的意义。利用MATLAB的数据分析处理功能进行采集处理,则首先需要将语音信号转换成MATLAB的数据格式,因此,我们不能直接对硬件端口进行操作。随着计算机技术的势不可挡地发展与广泛应用,数字设备正在逐步的取代模拟设备,在生产过程中的控制和科学研究以及生活中的各个领域,计算机测控技术正发挥着无法取代的作用。我们外部世界当中的大部分信息是随着时空变化而变化的物理量形式出现的,比如温度、压力、位移等等。要将这些信息送入到计算机里进行处理,就势必要先将这些连续变化的物理量进行离散化,并进行量化和编码,从而最终变成数字量,这个过程就是通常我们所说的数据采集。计算机在监测和控制这个系统的过程中,获取原始数据的主要手段就是数据采集。数据采集是计算机是获取信息的重要途径,也是计算机与外面世界进行沟通的桥梁。数据采集技术是计算机技术和信息科学的一个不可或缺的部分,它已经广泛应用于我们的国民经济和国防建设的各个领域,而且随着科学技术的发展,尤其是信息技术的发展与普及,数据采集技术它有着广阔的发展前景。MATLAB是MathWorks公司很早推出的一种科学计算仿真软件,已经被广泛地应用于各种计算机上。现在已经发展成为功能强大的科学软件,它能够进行数据采集、信号分析、数学运算和可视化解释等。利用MATLAB设计数据采集器有很多各方面的优点,会使得我们对数据的后面分析和处理将更加的方便。MATLAB语言简单,介于汇编语言和高级语言之间,入手会简单很多,使用起来会很方便,输入简单明了,用户也可以对其自行发展,它是全球绝大多数国家进行科学研究都要用到的重要工具。MATLAB由于其丰富的数值分析和处理功能、简单的接口编程和强大的仿真功能而受到广大的用户推崇,但若要对量比较大的数据进行实时的采集,MATALB会显得相形见绌。在我们传统工业检测中,采集到的数据需要存储起来,后经过处理和转换,才能使用MATLAB进行最后的分析并作相应的处理,毋庸置疑这是一个相当复杂的过程,这势必会影响到MATLAB在开发测控系统的范围和在实践中对实时数据的处理速度。我们若是能够在MATLAB环境下直接采集实时数据,无疑所有的难题都会迎刃而解。3MATLAB7.0下的数据采集工具箱提供了直接对硬件端口进行实时数据采集的功能。只要利用该工具箱再加上合适的数据采集卡就可以进行实时数据采集和实时控制,由此就可以很容易地组建自动控制分析系统。利用计算机的声卡和MATLAB中的图形用户接口软件界面就可以构造一个简单的实时信号分析仪器。显而易见,在MATLAB开发环境下进行数据采集是确实可行的而且开发起来也会比较方便。在进入21世纪以来,世界变的越来越国际化,一个国家的发展必定会落后与世界的发展,全球化的趋势没法阻挡,竞争日益激烈,所有的国家所有的企业都在追求实时的信息处理和高效的工作效率,以最少的成本获得最大效益,所以基于MATLAB的数据采集的开发和应用是非常有必要的。它的实时数据采集处理特性会提高我们的工作效率以及对生产的管理水平,最终提高企业的经济效益。1.2数据采集系统的研究状况目前,数据采集系统主要有以下4种设计方案:⑴使用RS232串行通信将采集模块采集到的数据传输到PC机。采集模块采集到的数据通过RS232串行通信传输到PC机,借助MATLAB中的仪器控制工具箱封装的串口对象,可以像操作文件一样控制串行端口与外设进行通信。先使用serial函数创建串口对象,再设置波特率、数据位、停止位等属性,使PC机和数据采集模块间具有相同的通信模式。传输数据时,用函数打开串口,再用fwrite函数和fread函数以二进制或ASCII码格式对进行读写操作。数据通信过程中,通过读串口对象属性可以实时了解串口的工作状态。数据传输结束后用fclose函数关闭串口。用智能数据采集模块采集系统的输入激励信号和输出响应,将采集到的数据通过串行通信传输到MATLAB。⑵用AT89C51单片机(MCS51系列)与美国TI(TexasInstruments)公司的A/D芯片TLC2543制作数据采集卡。该采集系统移动性比较好,而且成本也不高,它利用AT89C51单片机(MCS51系列)与美国TI(TexasInstruments)公司的A/D芯片TLC2543制作了一块数据采集卡,由单片机完成具体的数据采集任务,采集到的数据同时传送给计算机进行分析处理。数据采集卡的结构是设计成外置式的,模拟信号通过A/D转换转化成数字信号,然后串行传输给后台控制的计算机。TLC2543是拥有11个输入端的12位模数转换芯片,并且是串行控制的,内置有采样保持器,转换时间最长不能超过10Ls,还有S/H和多路选择开关,单5V供电,0~5V模拟输入,需要外接参考电压。选用2211184MHz作为单片机的振荡频率,这样可使AT89C51与PC通信的波特率能够非常精确地达到115200bps,确保计算机能够实时的接收到的高速采集的数据。模拟信号通过TLC22744高速低噪声运放进行缓冲,它的输出是满幅度的(即rail-to-rail),采用单5V供电时,可产生0~5V输出,所以说它非常适合用在这里。TLC2543参考电压是电压源芯片AD586产生的+5V精密基准电压。由计算机传送采集设置,采集到的数据通过串行口实时传输给计算机。(3)使用USB总线的数据采集器。USB总线的速度快,而且易扩展,能够采用总线供电,所以使用起来比较灵活。可以在MATLAB的环境下通过USB总线进行实时的信号采集,但是MATLAB自身是不能实现对USB总线的控制功能。在C语言环境下,是可以非常方便地对USB的驱动进行开发和控制。如果对USB的数据采集部分进行驱动和控制利用C语言进行开发,编译成MEX文件,然后在MATLAB中需要时调用即可。(4)基于ARM和GPRS的嵌入式多路数据采集系统。该系统是运行于32位微处理器和嵌入式Linux操作系统的架构上,与传统的解决方案相比,速度更快,数据处理能力更强,功能也扩展了,更加的可靠。并且它有向其它的行业应用的发展前景。1.3课题的研究目的和任务设计声音采集系统,该系统利用计算机和声卡的资源完成10kHz以内的声音信号的采集和显示以及对其做一个简单的频谱分析,并且能够实现信号的存储和调用示。设计是以计算机为核心构成数据采集系统,主要模块包括麦克风、声卡和计算机。系统具体的完成如下功能:1.10kHz以内信号采集2.信号采集系统模型分析3.可连接相关处理程序4.可发送音频范围内的测试信号5.信号存储和调用6.信号显示7.信号处理结果显示与对比分析基本要求:根据主要内容提出整体设计方案,确定设计方案满足题目要求及课设要求、明确系统所需的软硬件,并编写系统正常运行所需程序,完成软硬件的调试,使系统正常运行。52数据采集系统分析2.1数据采集系统的构成近年来,微电子技术与数字信号处理技术的火速发展使得数字信号处理变的非常容易和方便。因此,如果采用数字信号处理技术来处理信号,那么在进行信号处理之前就必须完成数据采集。数据采集技术是信息科学技术的一个必不可少的分支,它主要研究数据的采集、存储、处理以及控制的问题。在信息处理、智能化仪器以及工业自动化控制等领域,都无法避免数据的采集、传输与控制等问题,将外面世界真实存在的压力、温度、位移以及速度等物理量转化为数字信号,再传输到计算机中并进一步予以显示、处理、传输与记录的过程,称为数据采集。相应的系统也就是数据采集系统。下图1是数据采集系统的系统框图:图1数据采集系统的系统框图传感器是能够感受到特定的被测物理量,并且会呈现一定的规律变化,它通常是由敏感元件和转换元件两部分组成。其中,敏感元件是传感器中能直接感应被测物理量的部分;转换元件是能将敏感元件的输出量转化为方便传输或测量的电信号部分,转换元件是传感器中能够直观感受或响应被测物理量的部分。传感器在一些其他领域中又会被称为检测器或探测器。随着传感器集成技术的发展渐趋成熟,其应用将会越来越广泛。传感器的功能是把非电的物理量转化成模拟电信号(电流或电压),例如热电偶、热电阻电阻大小随温度变化而变化;转速传感器通常是把转速转换为电脉冲信号。通常把传感器转化成的电信号输入到A/D转换器中,输入的这一段信号电路称为模拟通道。对传感器输入的信号进行放大滤波就是信号调整模块,用输入放大器来放大和缓冲输入信号,后用抗混叠滤波器滤波。传感器输出的电信号太小,所以需要对其进行放大,以满足A/D转换器的满量程输入的要求。除此之外,一些传感器内阻很大,输6出功率太小。这样同时放大器还起到了的来缓冲输入信号作用,也就是阻抗变换器的功能。下图2是传感器的工作框图:图2传感器的工作框图A/D转换器的功能就是把不好处理的模拟信号转化为数字信号,具体的转化流程是采样、量化、编码,并且把转化后的数字信息储存在缓存当中,等待中央处理器的读取。要将模拟信号的转换必须由A/D转换器完成,伴随着大规模乃至超大规模集成电路的发展,为了满足各类不同的检测和控制任务的要求,大量的各式A/D转换电路应运而生,有的结构不同,有的性能不同。积分型、传统并行型、逐次逼近型是层出不穷以及新发展起来的∑一△型和流水线型等,所以在选取A/D转换器时我们就要根据应用场合和所需性能指标的要求来选取A/D转换器。低功率、高速度、高分辨率是大家所追求的,也是是A/D转换器的发展方向,所以A/D转换器的这一发展方向肯定是适应现代数字电子技术的发展方向。2.2基于MATLAB的数据采集系统原理基于MATLAB的数据采集需要用到数据采集工具箱,使用它可以极大地简化和加快数据采集工作。它将实验测量、数据分析、和可视化的应用集合在一起会更加的容易,它提供了一整套的命令和函数,通过调用这些命令和函数,可以实现各种与计算机兼容的硬件设备的数据采集和通信。因为现在的MATLAB软件自身是集成有数据采集工具箱的,所以一边在实时采集数据,一边就可以对采集到的数据进行分析,或进行相应的处理,或者因为数据分析的需要实时地更新测试条件。数据采集工具箱给硬件驱动程序和MATLAB环境之间提供了“对话”所需的3种组件,分别是M文件函数、数据采集引擎和硬件驱动接口。MATLAB程序通过这3种组件与数据采集硬件的互联和信息传递,它们之间的关系如图3所示。7图3MATLAB数据采集箱提供的三种组件硬件之间的关系硬件驱动适配器在硬件驱动程序和数据采集引擎之间交换属性数值、数据和事件;数据采集引擎用来存储各个设备对象,以及每个设备对象的属性值;对采集到的数据进行存储并且使不同事件同步;M-文件用来创建设备对象、采集或输出数据、检查数据采集设备和数据采集的状态和配置属性值。只有使用工具箱提供的设备对象才能访问硬件端口。设备对象给访问硬件设备带来了方便,数据采集的应用程序需要设备对象来控制。每个设备对象它都会对应着一个规定的硬件子系统,如下图4所示。MATLAB数据采集工具箱提供了3个设备对象,分别是模拟输入设备对象(AI)、模拟输出设备对象(AO)和数字输入/输出设备对象(DIO)。在每次采样之前,要创建合适的设备对象。图4设备对象和硬件子系统83基于MATLAB和声卡的数据采集器的设计3.1方案选取当今在推进信息化建设的实践中,数据采集技术是不可缺少的重要环节,对设施的影响尤为深远。目前,比较常见的数据采集系统设计方案主要有以下几种:(1)使用RS232串行通信将采集模块采集到的数据传输到PC机RS232是PC机与通信工业中应用最广泛的一种串行接口,RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS232采取不平衡传输方式,即所谓单端通讯,同时又有通信距离短、速率低的缺点。(2)用AT89C51单片机(MCS51系列)与美国TI(TexasInstruments)公司的A/D芯片TLC2543制作数据采集卡该采集系统具有较好的可移动性并降低成本,但AT89C51的精确度不高。(3)应用USB总线的数据采集器。该方案有速度快、易扩展、能够采用总线供电、设备安装和配置容易和使用灵活等优点,但是设计和调试比较麻烦,成本相对较高。(4)基于ARM和GPRS的嵌入式多路数据采集系统。该系统运行于32位微处理器和嵌入式Linux操作系统的架构上,与传统的解决方案相比,在可靠性、速度、数据处理能力、功能扩展等方面有了显著改进,并且有向其它场合下的行业应用扩展的前景。信号采集工程是工程中信号分析和处理的前提,基于MATLAB的数据采集器是为了实现MATLAB与外部环境的交互,达到直接对硬件端口进行读写操作,实现这个目的,要利用MATLAB的数据采集工具箱。数据采集工具箱是MATLAB计算环境中M文件函数、MEX文件和MEX-file动态链接库的集合。硬件驱动接口也就是硬件驱动程序和数据采集工具箱它们之间的接口,主要目的是通过驱动程序在硬件设备和MATLAB之间传送信息。数据采集工具箱是不会提供硬件驱动的,一般设备供应商提供是会提供硬件驱动的。那么在系统中安装相应的版本NIDAQ驱动即可,它可从硬件的驱动程序实现接收数据的采集,并送入MATLAB。功能包括实时模拟输入(AI,ADC,数据采集)、模拟输出(AO,DAC)、数字量输入输出(DI/DO)。支持流行的硬件,例如声卡、NationalinstrumentsE系列和1200系列数据采集卡、Hewlett-PackardE1432A系列VXI数据采集卡等。表1是目前支持的供应商和接口卡的名称。9表1供应商和接口卡名称供应商Vendor接口卡名称AdaptorNameNationalInstrumentsnidaqComputerBoardscbiAgilentTechnologiesHpel432Windowssoundcards声卡winsound数据采集硬件的不同操作都是一致的界面,不同的采集硬件只需简单地修改相应的程序即可。集成于MATLAB内的数据采集工具箱不仅支持标准的数据采集卡,而且支持通过声卡进行采集数据和输出数据。所以,以声卡作为数据采集卡就不需要再加A/D和D/A转换器了,一台个人计算机就可以作为一个数据采集系统。再进一步利用MATLAB内的数据采集工具箱,从而就可以组成一个系统进行实时采集和仿真控制。可以将MATLAB内的Simulink、Dialsclear16设置适合于大多数的应用,这些基本特性包括触发方式和采样率。数据采集工具箱支持的触发方式有4种,它们分别是手动触发、立即触发、软件触发和硬件触发(‘Manual’、‘Immediate’、‘Software’、‘Hardware’)。(1)通过编程将MATLAB与声卡连接起来。声卡设备仅仅是MATLAB中的一个对象,之后的所有的操作都不会直接作用于硬件,而是直接对已经建立的声卡设备对象的操作作用于外部的硬件设备。对于这个系统来说,采集数据用的是声卡,所以系统输入和输出的信号都是模拟信号。在MATLAB中将MATLAB与声卡连接起来是非常容易的,编程是只需利用相应的语句就成,MATLAB中的analog命令是专门用于建立模拟信号输入设备对象的,下面的语句是其语法