1、1毕业设计题目基于MATLAB的数据采系统的设计姓名学号系别电子工程系专业电子信息科学与技术同组人指导教师协助指导教师2一、主要内容和基本要求本项目的目的是实现基于小本的计算机应用系统。1、系统结构系统结构如下图所示系统结构图系统的实验电路实现模块化,每一个模块利用本所总线与链接模块相连接。操作流程图2、系统设计内容本系统的目的,是提供一个利用MATLAB和小本资源实现的实验系统。MATLAB的程序必须编译成可执行文件,以便在小本中运行。硬件电路要求提供音频(10KHZ)信号处理电路。具体包括1)向PC的输出信号调理电路输入放大器抗混叠滤波器幅度可调输出放大器2)接收PC信号的输入信号调理电路
2、缓冲放大器(40KHZ)驱动电路3)5V/10MA电源电路,有PC机的USB口为电路模块提供电源。硬件电路需提供模拟电路和测试电路接口。开始初始化展开界面选择执行相应处理3信号接口电路板图三、系统功能本系统具有如下功能110KHZ以内信号采集2信号采集系统模型分析3可连接相关处理程序4可发送音频范围内的测试信号5信号存储和调用6信号显示7信号处理结果显示与对比分析二、主要参考资料1美JANAXELSON著,陈逸译USB应用大全北京中国电力出版社,20012刘志俭等编著MATLAB应用程序接口用户指南M科学出版社,20003飞思科技产品研发中心编著MATLAB65应用接口编程M电子工业出版社,2
3、0034廖济林编著USB20应用系统开发实例精讲M电子工业出版社,20065程伟程文波李灿平基于MATLAB的实时数据采集与分析研究J电子测量技术2008年08期6程国英基于USB20的声音采集系统的研制D东北师范大学2006年7健莲科技改编,许永和编著USB外围设备设计与应用M中国电力出版社,20028韩新风基于USB接口的信号发生与采集系统的研究D华中科技大学2007三、进度要求1、第一周查询文献和资料,对课题进行调研。2、第二周根据调研资料撰写开题报告。3、第三周完善开题报告,准备开题答辩。44、第四周对外文文献进行翻译。5、第五周查找资料,确定总体方案。6、第六周设计具体的方案。7、第
4、七周程序的初步编写。8、第八周程序初步仿真与测试9、第九周继续丰富系统功能。10、第十周进一步的进行程序仿真和调试,论文结构撰写。11、第十一周系统整体调试。12、第十二周毕设论文撰写,系统调试。13、第十三周继续修改论文,系统功能测试。14、第十四周毕设论文修改。15、第十五周制作PPT并且进行模拟答辩。16、第十六周完成所有毕设论文,最后答辩。指导教师(签字)专业负责人系主任(签字)I基于MATLAB的数据采系统的设计摘要该设计是一个声音信号采集和分析系统,实现了对语音信号采集和显示,并对其进行了频谱分析。设计以计算机为核心构成一个数据采集系统,系统的可以分为传感器、声卡和计算机三大模块。
5、在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。系统首先通过传感器采集声音信号,再经过声卡对信号进行模数转换(采集、量化、编码)处理后,存入计算机进行信号的一系列处理。硬件部分引用了麦克风作为声音信号的传感器,以声卡作为信号的A/D转换模块,计算机用作信号的存储和处理。软件用的是MATLAB并且主要用到的是MATLAB中的数据采集工具箱。关键词MATLAB数据采集工具箱麦克风声卡IIABSTRACTTHEDESIGNISASOUNDSIGNALACQUISITIONANDANALYSISSYSTEM,ITIMPLEMENTSSPEECHSIGNALACQUISITIONA
6、NDDISPLAY,ANDITMADETHESPECTRUMANALYSISOFSIGNALSDESIGNWITHCOMPUTERASTHECORECONSISTSOFADATAACQUISITIONSYSTEM,THESYSTEMCANBEDIVIDEDINTOTHREESENSORS,SOUNDCARDANDCOMPUTERMODULEBASEDONTHIS,THEOVERALLSCHEMEOFTHESYSTEMHASBEENACCOMPLISHEDFINALLY,ALLFUNCTIONALMODULEWEREIMPLEMENTEDTHROUGHHARDWAREANDSOFTWAREFIR
7、STOFALL,THESYSTEMACQUIRESOUNDSIGNALTHROUGHTHESENSORSTHENTHEACQUIREDSIGNALACCOMPLISHEDANALOGTODIGITALCONVERSIONTHROUGHTHESOUNDCARDSAMPLING,QUANTIZATIONANDCODINGFINALLY,ITISSTOREDINTHECOMPUTERANDTHECOMPUTERWILLCARRYOUTASERIESOFPROCESSINGTHEHARDWAREPARTUSEDTHEMICROPHONEFORVOICESIGNALSENSOR,ANDITTOOKSOU
8、NDCARDASA/DCONVERSIONMODULE,THECOMPUTERISUSEDTOSTOREANDPROCESSSIGNALSOFTWAREUSEDMTALABANDMAINLYUSEDDATAACQUISITIONTOOLBOXOFMATLABKEYWORDSMATLABDATAACQUISITIONBOXTHEMICROPHONESOUNDCARDIII目录摘要IABSTRACTII引言11绪论211课题背景及意义212数据采集系统的研究状况313课题的研究目的和任务42数据采集系统分析521数据采集系统的构成522基于MATLAB的数据采集系统原理63基于MATLAB和声卡的
9、数据采集器的设计831方案选取832传感器的选择1033声卡在A/D转换中的应用11331声卡在A/D转换中的原理11332声卡的驱动软件12333声卡的参数设置124软件设计1441基于MATLAB和声卡的软件流程1442基于MATLAB和声卡采集的示波器的实现18421GUI的创建18422GUI的设计18423代码的实现195程序的调试与分析23结论26致谢27参考文献28IV1引言伴随着计算机的广泛应用和信息化时代的到来,计算机与外部物理世界连接需要通过数据采集来实现。随着计算机技术的迅猛发展和广泛普及,数据采集系统也迅速地得到了广泛的应用。在工业生产过程中,我们需要应用该系统对生产现
10、场的各种参数实施采集,监视和记录,提高产品的质量,降低成本。在我们的科学研究中,使用数据采集系统可以帮助我们获取大量的动态信息,更是研究瞬间物理过程的强有力工具,也是我们获取科学奥秘的重要手段。总之,在各个应用领域中,数据采集与处理越发的及时,工作效率就会越高,从而取得的经济效益和生活品质也就会越高。本篇就是针对语音信号的采集和处理设计的基于MATLAB的数据采集器,文中提出了系统构成、设计方案、设计过程。21绪论11课题背景及意义计算机和信息技术自出现以来一直在飞速的发展。时至今日,我们的生活和工作已经离不开了计算机。信号以各种各样的表现形式出现在我们的日常生活中,信息的传递、存储和获取都要
11、通过信号来实现。所以,实时的信号采集和分析处理对于计算机和信息技术有着非常重要的意义。利用MATLAB的数据分析处理功能进行采集处理,则首先需要将语音信号转换成MATLAB的数据格式,因此,我们不能直接对硬件端口进行操作。随着计算机技术的势不可挡地发展与广泛应用,数字设备正在逐步的取代模拟设备,在生产过程中的控制和科学研究以及生活中的各个领域,计算机测控技术正发挥着无法取代的作用。我们外部世界当中的大部分信息是随着时空变化而变化的物理量形式出现的,比如温度、压力、位移等等。要将这些信息送入到计算机里进行处理,就势必要先将这些连续变化的物理量进行离散化,并进行量化和编码,从而最终变成数字量,这个
12、过程就是通常我们所说的数据采集。计算机在监测和控制这个系统的过程中,获取原始数据的主要手段就是数据采集。数据采集是计算机是获取信息的重要途径,也是计算机与外面世界进行沟通的桥梁。数据采集技术是计算机技术和信息科学的一个不可或缺的部分,它已经广泛应用于我们的国民经济和国防建设的各个领域,而且随着科学技术的发展,尤其是信息技术的发展与普及,数据采集技术它有着广阔的发展前景。MATLAB是MATHWORKS公司很早推出的一种科学计算仿真软件,已经被广泛地应用于各种计算机上。现在已经发展成为功能强大的科学软件,它能够进行数据采集、信号分析、数学运算和可视化解释等。利用MATLAB设计数据采集器有很多各
13、方面的优点,会使得我们对数据的后面分析和处理将更加的方便。MATLAB语言简单,介于汇编语言和高级语言之间,入手会简单很多,使用起来会很方便,输入简单明了,用户也可以对其自行发展,它是全球绝大多数国家进行科学研究都要用到的重要工具。MATLAB由于其丰富的数值分析和处理功能、简单的接口编程和强大的仿真功能而受到广大的用户推崇,但若要对量比较大的数据进行实时的采集,MATALB会显得相形见绌。在我们传统工业检测中,采集到的数据需要存储起来,后经过处理和转换,才能使用MATLAB进行最后的分析并作相应的处理,毋庸置疑这是一个相当复杂的过程,这势必会影响到MATLAB在开发测控系统的范围和在实践中对
14、实时数据的处理速度。我们若是能够在MATLAB环境下直接采集实时数据,无疑所有的难题都会迎刃而解。3MATLAB70下的数据采集工具箱提供了直接对硬件端口进行实时数据采集的功能。只要利用该工具箱再加上合适的数据采集卡就可以进行实时数据采集和实时控制,由此就可以很容易地组建自动控制分析系统。利用计算机的声卡和MATLAB中的图形用户接口软件界面就可以构造一个简单的实时信号分析仪器。显而易见,在MATLAB开发环境下进行数据采集是确实可行的而且开发起来也会比较方便。在进入21世纪以来,世界变的越来越国际化,一个国家的发展必定会落后与世界的发展,全球化的趋势没法阻挡,竞争日益激烈,所有的国家所有的企
15、业都在追求实时的信息处理和高效的工作效率,以最少的成本获得最大效益,所以基于MATLAB的数据采集的开发和应用是非常有必要的。它的实时数据采集处理特性会提高我们的工作效率以及对生产的管理水平,最终提高企业的经济效益。12数据采集系统的研究状况目前,数据采集系统主要有以下4种设计方案使用RS232串行通信将采集模块采集到的数据传输到PC机。采集模块采集到的数据通过RS232串行通信传输到PC机,借助MATLAB中的仪器控制工具箱封装的串口对象,可以像操作文件一样控制串行端口与外设进行通信。先使用SERIAL函数创建串口对象,再设置波特率、数据位、停止位等属性,使PC机和数据采集模块间具有相同的通
16、信模式。传输数据时,用FOPEN函数打开串口,再用FWRITE函数和FREAD函数以二进制或ASCII码格式对进行读写操作。数据通信过程中,通过读串口对象属性可以实时了解串口的工作状态。数据传输结束后用FCLOSE函数关闭串口。用智能数据采集模块采集系统的输入激励信号和输出响应,将采集到的数据通过串行通信传输到MATLAB。用AT89C51单片机MCS51系列与美国TITEXASINSTRUMENTS公司的A/D芯片TLC2543制作数据采集卡。该采集系统移动性比较好,而且成本也不高,它利用AT89C51单片机MCS51系列与美国TITEXASINSTRUMENTS公司的A/D芯片TLC254
17、3制作了一块数据采集卡,由单片机完成具体的数据采集任务,采集到的数据同时传送给计算机进行分析处理。数据采集卡的结构是设计成外置式的,模拟信号通过A/D转换转化成数字信号,然后串行传输给后台控制的计算机。TLC2543是拥有11个输入端的12位模数转换芯片,并且是串行控制的,内置有采样保持器,转换时间最长不能超过10LS,还有S/H和多路选择开关,单5V供电,05V模拟输入,需要外接参考电压。选用2211184MHZ作为单片机的振荡频率,这样可使AT89C51与PC通信的波特率能够非常精确地达到115200BPS,确保计算机能够实时的接收到的高速采集的数据。模拟信号通过TLC22744高速低噪声
18、运放进行缓冲,它的输出是满幅度的即RAILTORAIL,采用单5V供电时,可产生05V输出,所以说它非常适合用在这里。TLC2543参考电压是电压源芯片AD586产生的5V精密基准电压。由计算机传送采集设置,采集到的数据通过串行口实时传输给计算机。(3)使用USB总线的数据采集器。USB总线的速度快,而且易扩展,能够采用总线供电,所以使用起来比较灵活。可以在MATLAB的环境下通过USB总线进行实时的信号采集,但是MATLAB自身是不能实现对USB总线的控制功能。在C语言环境下,是可以非常方便地对USB的驱动进行开发和控制。如果对USB的数据采集部分进行驱动和控制利用C语言进行开发,编译成ME
19、X文件,然后在MATLAB中需要时调用即可。4基于ARM和GPRS的嵌入式多路数据采集系统。该系统是运行于32位微处理器和嵌入式LINUX操作系统的架构上,与传统的解决方案相比,速度更快,数据处理能力更强,功能也扩展了,更加的可靠。并且它有向其它的行业应用的发展前景。13课题的研究目的和任务设计声音采集系统,该系统利用计算机和声卡的资源完成10KHZ以内的声音信号的采集和显示以及对其做一个简单的频谱分析,并且能够实现信号的存储和调用示。设计是以计算机为核心构成数据采集系统,主要模块包括麦克风、声卡和计算机。系统具体的完成如下功能110KHZ以内信号采集2信号采集系统模型分析3可连接相关处理程序
20、4可发送音频范围内的测试信号5信号存储和调用6信号显示7信号处理结果显示与对比分析基本要求根据主要内容提出整体设计方案,确定设计方案满足题目要求及课设要求、明确系统所需的软硬件,并编写系统正常运行所需程序,完成软硬件的调试,使系统正常运行。52数据采集系统分析21数据采集系统的构成近年来,微电子技术与数字信号处理技术的火速发展使得数字信号处理变的非常容易和方便。因此,如果采用数字信号处理技术来处理信号,那么在进行信号处理之前就必须完成数据采集。数据采集技术是信息科学技术的一个必不可少的分支,它主要研究数据的采集、存储、处理以及控制的问题。在信息处理、智能化仪器以及工业自动化控制等领域,都无法避
21、免数据的采集、传输与控制等问题,将外面世界真实存在的压力、温度、位移以及速度等物理量转化为数字信号,再传输到计算机中并进一步予以显示、处理、传输与记录的过程,称为数据采集。相应的系统也就是数据采集系统。下图1是数据采集系统的系统框图图1数据采集系统的系统框图传感器是能够感受到特定的被测物理量,并且会呈现一定的规律变化,它通常是由敏感元件和转换元件两部分组成。其中,敏感元件是传感器中能直接感应被测物理量的部分;转换元件是能将敏感元件的输出量转化为方便传输或测量的电信号部分,转换元件是传感器中能够直观感受或响应被测物理量的部分。传感器在一些其他领域中又会被称为检测器或探测器。随着传感器集成技术的发
22、展渐趋成熟,其应用将会越来越广泛。传感器的功能是把非电的物理量转化成模拟电信号(电流或电压),例如热电偶、热电阻电阻大小随温度变化而变化;转速传感器通常是把转速转换为电脉冲信号。通常把传感器转化成的电信号输入到A/D转换器中,输入的这一段信号电路称为模拟通道。对传感器输入的信号进行放大滤波就是信号调整模块,用输入放大器来放大和缓冲输入信号,后用抗混叠滤波器滤波。传感器输出的电信号太小,所以需要对其进行放大,以满足A/D转换器的满量程输入的要求。除此之外,一些传感器内阻很大,输6出功率太小。这样同时放大器还起到了的来缓冲输入信号作用,也就是阻抗变换器的功能。下图2是传感器的工作框图图2传感器的工
23、作框图A/D转换器的功能就是把不好处理的模拟信号转化为数字信号,具体的转化流程是采样、量化、编码,并且把转化后的数字信息储存在缓存当中,等待中央处理器的读取。要将模拟信号的转换必须由A/D转换器完成,伴随着大规模乃至超大规模集成电路的发展,为了满足各类不同的检测和控制任务的要求,大量的各式A/D转换电路应运而生,有的结构不同,有的性能不同。积分型、传统并行型、逐次逼近型是层出不穷以及新发展起来的一型和流水线型等,所以在选取A/D转换器时我们就要根据应用场合和所需性能指标的要求来选取A/D转换器。低功率、高速度、高分辨率是大家所追求的,也是是A/D转换器的发展方向,所以A/D转换器的这一发展方向
24、肯定是适应现代数字电子技术的发展方向。22基于MATLAB的数据采集系统原理基于MATLAB的数据采集需要用到数据采集工具箱,使用它可以极大地简化和加快数据采集工作。它将实验测量、数据分析、和可视化的应用集合在一起会更加的容易,它提供了一整套的命令和函数,通过调用这些命令和函数,可以实现各种与计算机兼容的硬件设备的数据采集和通信。因为现在的MATLAB软件自身是集成有数据采集工具箱的,所以一边在实时采集数据,一边就可以对采集到的数据进行分析,或进行相应的处理,或者因为数据分析的需要实时地更新测试条件。数据采集工具箱给硬件驱动程序和MATLAB环境之间提供了“对话”所需的3种组件,分别是M文件函
25、数、数据采集引擎和硬件驱动接口。MATLAB程序通过这3种组件与数据采集硬件的互联和信息传递,它们之间的关系如图3所示。7图3MATLAB数据采集箱提供的三种组件硬件之间的关系硬件驱动适配器在硬件驱动程序和数据采集引擎之间交换属性数值、数据和事件;数据采集引擎用来存储各个设备对象,以及每个设备对象的属性值;对采集到的数据进行存储并且使不同事件同步;M文件用来创建设备对象、采集或输出数据、检查数据采集设备和数据采集的状态和配置属性值。只有使用工具箱提供的设备对象才能访问硬件端口。设备对象给访问硬件设备带来了方便,数据采集的应用程序需要设备对象来控制。每个设备对象它都会对应着一个规定的硬件子系统,
26、如下图4所示。MATLAB数据采集工具箱提供了3个设备对象,分别是模拟输入设备对象AI、模拟输出设备对象AO和数字输入/输出设备对象DIO。在每次采样之前,要创建合适的设备对象。图4设备对象和硬件子系统83基于MATLAB和声卡的数据采集器的设计31方案选取当今在推进信息化建设的实践中,数据采集技术是不可缺少的重要环节,对设施的影响尤为深远。目前,比较常见的数据采集系统设计方案主要有以下几种(1)使用RS232串行通信将采集模块采集到的数据传输到PC机RS232是PC机与通信工业中应用最广泛的一种串行接口,RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS232采取不平衡传输
27、方式,即所谓单端通讯,同时又有通信距离短、速率低的缺点。(2)用AT89C51单片机MCS51系列与美国TITEXASINSTRUMENTS公司的A/D芯片TLC2543制作数据采集卡该采集系统具有较好的可移动性并降低成本,但AT89C51的精确度不高。(3)应用USB总线的数据采集器。该方案有速度快、易扩展、能够采用总线供电、设备安装和配置容易和使用灵活等优点,但是设计和调试比较麻烦,成本相对较高。(4)基于ARM和GPRS的嵌入式多路数据采集系统。该系统运行于32位微处理器和嵌入式LINUX操作系统的架构上,与传统的解决方案相比,在可靠性、速度、数据处理能力、功能扩展等方面有了显著改进,并
28、且有向其它场合下的行业应用扩展的前景。信号采集工程是工程中信号分析和处理的前提,基于MATLAB的数据采集器是为了实现MATLAB与外部环境的交互,达到直接对硬件端口进行读写操作,实现这个目的,要利用MATLAB的数据采集工具箱。数据采集工具箱是MATLAB计算环境中M文件函数、MEX文件和MEXFILE动态链接库的集合。硬件驱动接口也就是硬件驱动程序和数据采集工具箱它们之间的接口,主要目的是通过驱动程序在硬件设备和MATLAB之间传送信息。数据采集工具箱是不会提供硬件驱动的,一般设备供应商提供是会提供硬件驱动的。那么在系统中安装相应的版本NIDAQ驱动即可,它可从硬件的驱动程序实现接收数据的
29、采集,并送入MATLAB。功能包括实时模拟输入AI,ADC,数据采集、模拟输出AO,DAC、数字量输入输出DI/DO。支持流行的硬件,例如声卡、NATIONALINSTRUMENTSE系列和1200系列数据采集卡、HEWLETTPACKARDE1432A系列VXI数据采集卡等。表1是目前支持的供应商和接口卡的名称。9表1供应商和接口卡名称供应商VENDOR接口卡名称ADAPTORNAMENATIONALINSTRUMENTSNIDAQCOMPUTERBOARDSCBIAGILENTTECHNOLOGIESHPEL432WINDOWSSOUNDCARDS声卡WINSOUND数据采集硬件的不同操作
30、都是一致的界面,不同的采集硬件只需简单地修改相应的程序即可。集成于MATLAB内的数据采集工具箱不仅支持标准的数据采集卡,而且支持通过声卡进行采集数据和输出数据。所以,以声卡作为数据采集卡就不需要再加A/D和D/A转换器了,一台个人计算机就可以作为一个数据采集系统。再进一步利用MATLAB内的数据采集工具箱,从而就可以组成一个系统进行实时采集和仿真控制。可以将MATLAB内的SIMULINK、DIALSCLEAR16设置适合于大多数的应用,这些基本特性包括触发方式和采样率。数据采集工具箱支持的触发方式有4种,它们分别是手动触发、立即触发、软件触发和硬件触发(MANUAL、IMMEDIATE、S
31、OFTWARE、HARDWARE)。(1)通过编程将MATLAB与声卡连接起来。声卡设备仅仅是MATLAB中的一个对象,之后的所有的操作都不会直接作用于硬件,而是直接对已经建立的声卡设备对象的操作作用于外部的硬件设备。对于这个系统来说,采集数据用的是声卡,所以系统输入和输出的信号都是模拟信号。在MATLAB中将MATLAB与声卡连接起来是非常容易的,编程是只需利用相应的语句就成,MATLAB中的ANALOGINPUT命令是专门用于建立模拟信号输入设备对象的,下面的语句是其语法。AIANALOGINPUTADVANTECH或者AIANALOGINPUTADVANTECH,IDADVANTECH也
32、就是硬件设备的名称,MATLAB还支持很多的硬件设备,它们的名称分别是WINSOUND,HPE1432,MCC,KEITHLEY,CBI,NIDAQ和ADAPTOR。其中的ID则是硬件设备的标识,声卡的ID标识可以省略,所以用声卡作为采集硬件设备,其语法就可以是AIANALOGINPUTWINSOUND在MATLAB的编程过程中使用上述语句就可以在众多的计算机硬件中迅速地找到声卡,同时也就创建了一个模拟信号的采集的对象。创建一个输入设备对象,所有的硬件信号通道不能被它一个设备对象所霸占。所以为了方便操控硬件设备,为了模拟信号的传输就势必要创建一条专属通道。通过MATLAB中的ADDCHANNE
33、L命令,就会很容易达成这一目的,下面的语句是其语法的一般格式。CHANADDCHANNELOBJ,HWCHOBJ是模拟输入或输出的对象,也就是上面建立的“AI”;HWCH是已经指定好设备的标识数量。在本系统中,指定好的声卡设备只有1个标识,所以在创建数据传输通道的就可以这样写CHANADDCHANNELAI,1(2)接下来设置采样时间和采样频率以及采样的点数。设定采样时间、采样频率和采样点数是非常的容易,以下语句完成即可完成。DURATION3FS22050BLOCKSIZEDURATIONFS如果需要在设计图形用户界面上对它们进行设置,只需利用MATLAB中的SET命令对它们进行赋值即可,下
34、面的语句就是其语法格式。SETOBJECT,PROPERTY,VALUE对于本系统来说,OBJECT就是要操作的设备对象AI,PROPERTY为采样频率SAMPLERATE,最后的VALUE即为取值。所以可以这样写17SETAI,SAMPLERATE,8000对采样点数进行设置时,OBJECT不变还是AI,同理PROPERTY就要换成采样点数SAMPLESPERTRIGGER,而VALUE在这就是DURATIONACTUALRATE。所以就可以这样写SETAI,SAMPLESPERTRIGGER,DURATIONACTUALRATE紧接着就必须要使用GET命令将已设定好的参数传递给对应的变量,
35、GETOB,PROPERTYNAME是其语法格式。OB是OBJECT的简写即为目标对象的名称,显然PROPERTYNAME是数值来源的名称,这里的数值来源就是SAMPLERATE和SAMPLESPERTRIGGER,所以就可以这样写ACTUALRATEGETAI,SAMPLERATEBLOCKSIZEGETAI,SAMPLESPERTRIGGER故这部分的全部代码语句如下DURATION3设置3秒的采样时间SETAI,SAMPLERATE,22050设定2205KHZ的采样频率ACTUALRATEGETAI,SAMPLERATESETAI,SAMPLESPERTRIGGER,DURATIONA
36、CTUALRATEBLOCKSIZEGETAI,SAMPLESPERTRIGGER设置采样点数FSACTUALRATE(3)对于触发方式的设置,只有四种触发方式,分别是IMMEDIATE是自动触发;HARDWARE是硬件触发;MANUAL为手动触发;SOFTWARE是软件触发。因为本系统要求能够随时地采集数据,所以该系统选用手动触发方式,下面是设定触发方式的语句。SETAI,TRIGGERTYPE,MANUAL(4)采集数据,上述的采集参数设置完成,就可以启动该设备开始数据采集,当采集完成后,设备会自动停止运行。语法格式如下STARTAITRIGGERAIDATAGETDATAAI声卡只有上述
37、4种触发方式的3种,在本设计中设定的是MANUAL手动触发方式,所以就势必要用TRIGGERAI命令人工触发,启动声卡开始数据采集;如果触发方式设为IMMEDIATE时,使用START命令就可以将立即触发,开始数据采集。(5)清楚设备对象。在采集完成之后,需要从内存以及MATLAB工作空间中清除建立了的设备对象。语法格式如下STOPAIDELETEAISTOP命令可以终止声卡设备运行;DELETE命令是清除MATLAB工作空间中18的声卡设备对象。42基于MATLAB和声卡采集的示波器的实现421GUI的创建(1)首先启动MATLAB70,点击菜单“FILE”中的“NEW”子菜单下的“GUI”
38、选项,打开“GUIDEQUICKSTART”对话框。(2)在“GUIDETEMPLATES”列表框中选择“BLANKGUI(DEFAULT)”选项,后单击“OK”按钮。当MATLAB完成GUIDE初始化后,显示GUI窗口,可以适当调整窗口的大小。(3)点击GUI窗口中的“文件”菜单中的“SAVEAS”选项,在弹出对话框内设置一个保存的位置,保存为NIDAQFIG文件,系统将自动保存并打开NIDAQM文件。422GUI的设计(1)设置GUI窗口(FIGURE1)属性。双击窗口内任意位置,打开“PROPERTYINSPECTOR”对话框,选择NAME属性,设置标题为“音频信号采集”。(2)选择控件
39、面板中控件,以一定的次序为GUI窗口添加控件,并按照下图8所示放置。图9GUI窗口图(4)双击各控件对象,打开“PROPERTYINSPECTOR”对话框,按下表3进行属性设19置。表3控件属性设置控件类型TAG属性STRING属性其他类型功能AXESAXES1默认绘图PUSHBUTTONPUSHBUTTON1采集和显示默认采集命令PUSHBUTTONPUSHBUTTON2保存默认保存命令PUSHBUTTONPUSHBUTTON3频域分析默认频域分析PUSHBUTTONPUSHBUTTON4关闭默认关闭对话框PUSHBUTTONPUSHBUTTON5测试默认发出测试信号PUSHBUTTONPU
40、SHBUTTON6时域分析默认时域分析PUSHBUTTONPUSHBUTTON7读取播放默认播放423代码的实现(1)在NIDAQM文件中,设置打开回调函数NIDAQ_OPENINGFCN,添加如下代码完成程序初始化工作具体代码如下FUNCTIONNIDAQ_OPENINGFCNHOBJECT,EVENTDATA,HANDLES,VARARGINTHISFUNCTIONHASNOOUTPUTARGS,SEEOUTPUTFCNHOBJECTHANDLETOFIGUREEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLABHANDLESSTRUCT
41、UREWITHHANDLESANDUSERDATASEEGUIDATAVARARGINCOMMANDLINEARGUMENTSTONIDAQSEEVARARGINOPENDAQDAQFINDFORI1LENGTHOPENDAQSTOPOPENDAQIDELETEOPENDAQIENDCHOOSEDEFAULTCOMMANDLINEOUTPUTFORNIDAQHANDLESOUTPUTHOBJECTUPDATEHANDLESSTRUCTUREGUIDATAHOBJECT,HANDLES(2)在NIDAQM文件中,分别在“采集和显示”、“保存”、调用、“关闭”等按钮相应回调函数PUSHBUTTON
42、1_CALLBACK、PUSHBUTTON2_CALLBACK、PUSHBUTTON3_CALLBACK、PUSHBUTTON4_CALLBACK中添加代码分别实现声卡数据采集和显示、保存数据、调用和关闭GUI窗口等功能,具体代码如下UNCTIONPUSHBUTTON1_CALLBACKHOBJECT,EVENTDATA,HANDLESHOBJECTHANDLETOPUSHBUTTON1SEEGCBOEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLAB20HANDLESSTRUCTUREWITHHANDLESANDUSERDATASEEGUI
43、DATAGLOBALDATAGLOBALFSAIANALOGINPUTWINSOUNDCHANADDCHANNELAI,1DURATION3FS22050BLOCKSIZEDURATIONFSSETAI,TRIGGERTYPE,MANUALSTARTAITRIGGERAIDATAGETDATAAISUBPLOT121STOPAIDELETEAIPLOTDATAGRIDONTITLE声音信号的波形显示YLABELSIGNALLEVELVOLTSXLABELSAMPLESEXECUTESONBUTTONPRESSINPUSHBUTTON2FUNCTIONPUSHBUTTON2_CALLBACKHO
44、BJECT,EVENTDATA,HANDLESHOBJECTHANDLETOPUSHBUTTON2SEEGCBOEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLABHANDLESSTRUCTUREWITHHANDLESANDUSERDATASEEGUIDATAGLOBALDATAGLOBALFSWAVWRITEDATA,SOUNDEXECUTESONBUTTONPRESSINPUSHBUTTON3FUNCTIONPUSHBUTTON3_CALLBACKHOBJECT,EVENTDATA,HANDLESHOBJECTHANDLETOPUSHBU
45、TTON3SEEGCBOEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLABHANDLESSTRUCTUREWITHHANDLESANDUSERDATASEEGUIDATADATA,FS,NWAVREADSOUNDWAV21FIGURE3F,MAGDAQDOCFFTDATA,FS,12000SUBPLOT3,1,1PLOTF,MAGYLABELMAGNITUDEDBXLABELFREQUENCYHZTITLE原信号的频谱图XFFTDATAHAMMINGLENGTHDATAFM5000LENGTHX/FSF0FMFS/LENGTHXSUBPLO
46、T3,1,2PLOTF,20LOG10ABSX1LENGTHFEPSGRIDONTITLE滤波后的频谱图YLABELMAGNITUDEDBXLABELFREQUENCYHZSUBPLOT3,1,3SPECGRAMDATA,512,FSTITLE语谱图EXECUTESONBUTTONPRESSINPUSHBUTTON4FUNCTIONPUSHBUTTON4_CALLBACKHOBJECT,EVENTDATA,HANDLESHOBJECTHANDLETOPUSHBUTTON4SEEGCBOEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLABHAN
47、DLESSTRUCTUREWITHHANDLESANDUSERDATASEEGUIDATACLOSEALLFORCEEXECUTESONBUTTONPRESSINPUSHBUTTON5FUNCTIONPUSHBUTTON5_CALLBACKHOBJECT,EVENTDATA,HANDLESHOBJECTHANDLETOPUSHBUTTON5SEEGCBOEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLABHANDLESSTRUCTUREWITHHANDLESANDUSERDATASEEGUIDATAGLOBALDATAAOANALOGOUTP
48、UTWINSOUNDCHANADDCHANNELAO,1DURATION422SETAO,SAMPLERATE,8000ACTUALRATEGETAO,SAMPLERATESETAO,TRIGGERTYPE,MANUALBLSACTUALRATEDURATIONDATACOSLINSPACE0,2PI500,BLSPUTDATAAO,DATASTARTAOTRIGGERAOWAITTILSTOPAO,5DELETEAOCLEARAOFUNCTIONPUSHBUTTON6_CALLBACKHOBJECT,EVENTDATA,HANDLESHOBJECTHANDLETOPUSHBUTTON6SEE
49、GCBOEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLABHANDLESSTRUCTUREWITHHANDLESANDUSERDATASEEGUIDATADATA,FS,NWAVREADSOUNDWAVFENFRAMEDATA,200F5F,5FIGURE2SUBPLOT2,1,1PLOTF5XLABEL样点TITLE清音波形图F8F,8SUBPLOT2,1,2PLOTF8XLABEL样点TITLE浊音波形图FUNCTIONPUSHBUTTON7_CALLBACKHOBJECT,EVENTDATA,HANDLESHOBJECTHANDLETOPUSHBUTTON7SEEGCBOEVENTDATARESERVEDTOBEDEFINEDINAFUTUREVERSIONOFMATLABHANDLESSTRUCTUREWITHHANDLESANDUSERDATASEEGUIDATADATA,FS,NWAVREADSOUNDWAVWAVPLAYDATA,FS235程序的调试与分析程序设计、调试完毕,运行程序。直接将带有麦克风的耳机插头插在声卡