基于MATLAB的数据采集系统的设计_第1页
基于MATLAB的数据采集系统的设计_第2页
基于MATLAB的数据采集系统的设计_第3页
基于MATLAB的数据采集系统的设计_第4页
基于MATLAB的数据采集系统的设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、毕 业 设 计题目:基于MATLAB的数据采系统的设计姓 名: 学 号: 系 别: 电子工程系 专 业: 电子信息科学与技术 同 组 人: 指 导 教 师: 协助指导教师: 一、主要内容和基本要求本项目的目的是实现基于小本的计算机应用系统。1、系统结构系统结构如下图所示系统结构图系统的实验电路实现模块化,每一个模块利用本所总线与链接模块相连接。 开始初始化展开界面 选择 执行相应处理操作流程图2、系统设计内容本系统的目的,是提供一个利用Matlab和小本资源实现的实验系统。Matlab的程序必须编译成可执行文件,以便在小本中运行。硬件电路要求提供音频(10kHz)信号处理电路。具体包括:1)向

2、PC的输出信号调理电路输入放大器抗混叠滤波器幅度可调输出放大器2)接收PC信号的输入信号调理电路缓冲放大器(>40kHz)驱动电路3)5V/10mA电源电路,有PC机的USB口为电路模块提供电源。硬件电路需提供模拟电路和测试电路接口。信号接口电路板图三、系统功能本系统具有如下功能:110kHz以内信号采集2. 信号采集系统模型分析3. 可连接相关处理程序4. 可发送音频范围内的测试信号5. 信号存储和调用6. 信号显示7. 信号处理结果显示与对比分析二、主要参考资料1 (美)Jan Axelson著, 陈逸译.USB应用大全.北京:中国电力出版社,20012 刘志俭等编著.MATLAB应

3、用程序接口用户指南M. 科学出版社,20003 飞思科技产品研发中心编著.MATLAB 6.5应用接口编程M. 电子工业出版社, 2003 4 廖济林编著.USB 2.0应用系统开发实例精讲M.电子工业出版社, 2006 5程伟;程文波;李灿平;基于MATLAB的实时数据采集与分析研究J;电子测量技术;2008年08期6程国英;基于usb 2.0的声音采集系统的研制D;东北师范大学;2006年7 健莲科技改编,许永和编著.USB外围设备设计与应用M.中国电力出版社, 20028 韩新风.  基于USB接口的信号发生与采集系统的研究D.华中科技大学 2007 三、进度要求1、

4、第一周:查询文献和资料,对课题进行调研。2、第二周:根据调研资料撰写开题报告。3、第三周:完善开题报告,准备开题答辩。4、第四周:对外文文献进行翻译。5、第五周:查找资料,确定总体方案。6、第六周:设计具体的方案。7、第七周:程序的初步编写。8、第八周:程序初步仿真与测试9、第九周:继续丰富系统功能。10、第十周:进一步的进行程序仿真和调试,论文结构撰写。11、第十一周:系统整体调试。12、第十二周:毕设论文撰写,系统调试。13、第十三周:继续修改论文,系统功能测试。14、第十四周:毕设论文修改。15、第十五周:制作ppt并且进行模拟答辩。16、第十六周:完成所有毕设论文,最后答辩。指 导 教

5、 师: (签字)专业负责人系主任: (签字)3摘要该设计是一个声音信号采集和分析系统,实现了对语音信号采集和显示,并对其进行了频谱分析。设计以计算机为核心构成一个数据采集系统,系统的可以分为传感器、声卡和计算机三大模块。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。系统首先通过传感器采集声音信号,再经过声卡对信号进行模数转换(采集、量化、编码)处理后,存入计算机进行信号的一系列处理。硬件部分引用了麦克风作为声音信号的传感器,以声卡作为信号的A/D转换模块,计算机用作信号的存储和处理。软件用的是MATLAB并且主要用到的是MATLAB中的数据采集工具箱。关键词: MATL

6、AB 数据采集工具箱 麦克风 声卡 AbstractThe design is a sound signal acquisition and analysis system, it implements speech signal acquisition and display, and it made the spectrum analysis of signals.Design with computer as the core consists of a data acquisition system, the system can be divided into three senso

7、rs, sound card and computer module. Based on this, the overall scheme of the system has been accomplished. Finally, all functional module were implemented through hardware and software. First of all, the system acquire sound signal through the sensors. Then the acquired signal accomplished analog-to

8、-digital conversion through the sound card (sampling, quantization and coding) . Finally, it is stored in the computer and the computer will carry out a series of processing.The hardware part used the microphone for voice signal sensor, and it took sound card as A/D conversion module, the computer i

9、s used to store and process signal. Software used MTALAB and mainly used data acquisition toolbox of MATLAB.Key Words: MATLAB Data acquisition box The microphone Sound card目录摘要IAbstractII引言11绪论21.1课题背景及意义21.2数据采集系统的研究状况31.3课题的研究目的和任务42数据采集系统分析52.1数据采集系统的构成52.2基于MATLAB的数据采集系统原理63基于MATLAB和声卡的数据采集器的设计8

10、3.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参考文献2828引言伴随着计算机的广泛应用和信息化时代的到来,计算机与外部物理世界连接需要通过数据采集来实现。随着计算机技术的迅猛发展和广泛普及,数据采集系统也迅速地得到了广泛的应用。在工业生产过程中,我们需要应用

11、该系统对生产现场的各种参数实施采集,监视和记录,提高产品的质量,降低成本。在我们的科学研究中,使用数据采集系统可以帮助我们获取大量的动态信息,更是研究瞬间物理过程的强有力工具,也是我们获取科学奥秘的重要手段。总之,在各个应用领域中,数据采集与处理越发的及时,工作效率就会越高,从而取得的经济效益和生活品质也就会越高。本篇就是针对语音信号的采集和处理设计的基于MATLAB的数据采集器,文中提出了系统构成、设计方案、设计过程。1绪论1.1课题背景及意义计算机和信息技术自出现以来一直在飞速的发展。时至今日,我们的生活和工作已经离不开了计算机。信号以各种各样的表现形式出现在我们的日常生活中,信息的传递、

12、存储和获取都要通过信号来实现。所以,实时的信号采集和分析处理对于计算机和信息技术有着非常重要的意义。利用MATLAB的数据分析处理功能进行采集处理,则首先需要将语音信号转换成MATLAB的数据格式,因此,我们不能直接对硬件端口进行操作。随着计算机技术的势不可挡地发展与广泛应用,数字设备正在逐步的取代模拟设备,在生产过程中的控制和科学研究以及生活中的各个领域,计算机测控技术正发挥着无法取代的作用。我们外部世界当中的大部分信息是随着时空变化而变化的物理量形式出现的,比如温度、压力、位移等等。要将这些信息送入到计算机里进行处理,就势必要先将这些连续变化的物理量进行离散化,并进行量化和编码,从而最终变

13、成数字量,这个过程就是通常我们所说的数据采集。计算机在监测和控制这个系统的过程中,获取原始数据的主要手段就是数据采集。数据采集是计算机是获取信息的重要途径,也是计算机与外面世界进行沟通的桥梁。数据采集技术是计算机技术和信息科学的一个不可或缺的部分,它已经广泛应用于我们的国民经济和国防建设的各个领域,而且随着科学技术的发展,尤其是信息技术的发展与普及,数据采集技术它有着广阔的发展前景。MATLAB是Math Works公司很早推出的一种科学计算仿真软件,已经被广泛地应用于各种计算机上。现在已经发展成为功能强大的科学软件,它能够进行数据采集、信号分析、数学运算和可视化解释等。利用MATLAB设计数

14、据采集器有很多各方面的优点,会使得我们对数据的后面分析和处理将更加的方便。MATLAB语言简单,介于汇编语言和高级语言之间,入手会简单很多,使用起来会很方便,输入简单明了,用户也可以对其自行发展 ,它是全球绝大多数国家进行科学研究都要用到的重要工具。MATLAB由于其丰富的数值分析和处理功能、简单的接口编程和强大的仿真功能而受到广大的用户推崇,但若要对量比较大的数据进行实时的采集,MATALB会显得相形见绌。在我们传统工业检测中,采集到的数据需要存储起来,后经过处理和转换,才能使用MATLAB进行最后的分析并作相应的处理,毋庸置疑这是一个相当复杂的过程,这势必会影响到MATLAB在开发测控系统

15、的范围和在实践中对实时数据的处理速度。我们若是能够在MATLAB环境下直接采集实时数据,无疑所有的难题都会迎刃而解。MATLAB 7.0下的数据采集工具箱提供了直接对硬件端口进行实时数据采集的功能。只要利用该工具箱再加上合适的数据采集卡就可以进行实时数据采集和实时控制,由此就可以很容易地组建自动控制分析系统。利用计算机的声卡和MATLAB中的图形用户接口软件界面就可以构造一个简单的实时信号分析仪器。显而易见,在MATLAB开发环境下进行数据采集是确实可行的而且开发起来也会比较方便。在进入21世纪以来,世界变的越来越国际化,一个国家的发展必定会落后与世界的发展,全球化的趋势没法阻挡,竞争日益激烈

16、,所有的国家所有的企业都在追求实时的信息处理和高效的工作效率,以最少的成本获得最大效益,所以基于MATLAB的数据采集的开发和应用是非常有必要的。它的实时数据采集处理特性会提高我们的工作效率以及对生产的管理水平,最终提高企业的经济效益。1.2数据采集系统的研究状况目前,数据采集系统主要有以下4种设计方案: 使用RS232串行通信将采集模块采集到的数据传输到PC机。采集模块采集到的数据通过RS232串行通信传输到PC机,借助MATLAB中的仪器控制工具箱封装的串口对象,可以像操作文件一样控制串行端口与外设进行通信。先使用 serial函数创建串口对象,再设置波特率、数据位、停止位等属性,使PC机

17、和数据采集模块间具有相同的通信模式。传输数据时, 用fopen 函数打开串口,再用fwrite函数和fread 函数以二进制或ASCII码格式对进行读写操作。数据通信过程中,通过读串口对象属性可以实时了解串口的工作状态。数据传输结束后用fclose函数关闭串口。用智能数据采集模块采集系统的输入激励信号和输出响应,将采集到的数据通过串行通信传输到MATLAB。 用AT89C51单片机(MCS51系列)与美国TI(Texas Instruments)公司的A/D芯片TLC2543制作数据采集卡。该采集系统移动性比较好,而且成本也不高,它利用AT89C51单片机(MCS51系列)与美国TI(Texa

18、s Instruments)公司的A/D芯片TLC2543制作了一块数据采集卡, 由单片机完成具体的数据采集任务,采集到的数据同时传送给计算机进行分析处理。数据采集卡的结构是设计成外置式的,模拟信号通过A/D转换转化成数字信号,然后串行传输给后台控制的计算机。TLC2543是拥有11个输入端的12位模数转换芯片,并且是串行控制的,内置有采样保持器,转换时间最长不能超过10Ls,还有S/H和多路选择开关,单5V供电,05V模拟输入,需要外接参考电压。选用2211184MHz作为单片机的振荡频率,这样可使AT89C51与PC通信的波特率能够非常精确地达到115200bps,确保计算机能够实时的接收

19、到的高速采集的数据。模拟信号通过TLC2274高速低噪声运放进行缓冲,它的输出是满幅度的(即rail-to-rail) ,采用单5V供电时,可产生05V输出,所以说它非常适合用在这里。TLC2543参考电压是电压源芯片AD586产生的+5V精密基准电压。由计算机传送采集设置,采集到的数据通过串行口实时传输给计算机。(3) 使用USB总线的数据采集器。USB总线的速度快,而且易扩展,能够采用总线供电,所以使用起来比较灵活。可以在MATLAB的环境下通过USB总线进行实时的信号采集,但是MATLAB自身是不能实现对USB总线的控制功能。在C语言环境下,是可以非常方便地对USB的驱动进行开发和控制。

20、如果对USB的数据采集部分进行驱动和控制利用C语言进行开发,编译成MEX文件,然后在MATLAB中需要时调用即可。 (4) 基于ARM和GPRS的嵌入式多路数据采集系统。该系统是运行于32位微处理器和嵌入式Linux操作系统的架构上,与传统的解决方案相比,速度更快,数据处理能力更强,功能也扩展了,更加的可靠。并且它有向其它的行业应用的发展前景。1.3课题的研究目的和任务设计声音采集系统,该系统利用计算机和声卡的资源完成10kHz以内的声音信号的采集和显示以及对其做一个简单的频谱分析,并且能够实现信号的存储和调用示。设计是以计算机为核心构成数据采集系统,主要模块包括麦克风、声卡和计算机。系统具体

21、的完成如下功能:110kHz以内信号采集2. 信号采集系统模型分析3. 可连接相关处理程序4. 可发送音频范围内的测试信号5. 信号存储和调用6. 信号显示7. 信号处理结果显示与对比分析基本要求:根据主要内容提出整体设计方案,确定设计方案满足题目要求及课设要求、明确系统所需的软硬件,并编写系统正常运行所需程序,完成软硬件的调试,使系统正常运行。2数据采集系统分析2.1数据采集系统的构成近年来,微电子技术与数字信号处理技术的火速发展使得数字信号处理变的非常容易和方便。因此,如果采用数字信号处理技术来处理信号,那么在进行信号处理之前就必须完成数据采集。数据采集技术是信息科学技术的一个必不可少的分

22、支,它主要研究数据的采集、存储、处理以及控制的问题。在信息处理、智能化仪器以及工业自动化控制等领域,都无法避免数据的采集、传输与控制等问题,将外面世界真实存在的压力、温度、位移以及速度等物理量转化为数字信号,再传输到计算机中并进一步予以显示、处理、传输与记录的过程,称为数据采集。相应的系统也就是数据采集系统。下图1是数据采集系统的系统框图:图1 数据采集系统的系统框图传感器是能够感受到特定的被测物理量,并且会呈现一定的规律变化,它通常是由敏感元件和转换元件两部分组成。其中,敏感元件是传感器中能直接感应被测物理量的部分;转换元件是能将敏感元件的输出量转化为方便传输或测量的电信号部分,转换元件是传

23、感器中能够直观感受或响应被测物理量的部分。传感器在一些其他领域中又会被称为检测器或探测器。随着传感器集成技术的发展渐趋成熟,其应用将会越来越广泛。传感器的功能是把非电的物理量转化成模拟电信号(电流或电压),例如热电偶、热电阻电阻大小随温度变化而变化;转速传感器通常是把转速转换为电脉冲信号。通常把传感器转化成的电信号输入到A/D转换器中,输入的这一段信号电路称为模拟通道。对传感器输入的信号进行放大滤波就是信号调整模块,用输入放大器来放大和缓冲输入信号,后用抗混叠滤波器滤波。传感器输出的电信号太小,所以需要对其进行放大,以满足A/D转换器的满量程输入的要求。除此之外,一些传感器内阻很大,输出功率太

24、小。这样同时放大器还起到了的来缓冲输入信号作用,也就是阻抗变换器的功能。下图2是传感器的工作框图:图2 传感器的工作框图A/D转换器的功能就是把不好处理的模拟信号转化为数字信号,具体的转化流程是采样、量化、编码,并且把转化后的数字信息储存在缓存当中,等待中央处理器的读取。要将模拟信号的转换必须由A/D转换器完成,伴随着大规模乃至超大规模集成电路的发展,为了满足各类不同的检测和控制任务的要求,大量的各式A/D转换电路应运而生,有的结构不同,有的性能不同。积分型、传统并行型、逐次逼近型是层出不穷以及新发展起来的一型和流水线型等,所以在选取A/D转换器时我们就要根据应用场合和所需性能指标的要求来选取

25、A/D转换器。低功率、高速度、高分辨率是大家所追求的,也是是A/D转换器的发展方向,所以A/D转换器的这一发展方向肯定是适应现代数字电子技术的发展方向。2.2基于MATLAB的数据采集系统原理基于MATLAB的数据采集需要用到数据采集工具箱,使用它可以极大地简化和加快数据采集工作。它将实验测量、数据分析、和可视化的应用集合在一起会更加的容易,它提供了一整套的命令和函数,通过调用这些命令和函数,可以实现各种与计算机兼容的硬件设备的数据采集和通信。因为现在的MATLAB软件自身是集成有数据采集工具箱的,所以一边在实时采集数据,一边就可以对采集到的数据进行分析,或进行相应的处理,或者因为数据分析的需

26、要实时地更新测试条件。数据采集工具箱给硬件驱动程序和MATLAB环境之间提供了“对话”所需的3种组件,分别是M文件函数、数据采集引擎和硬件驱动接口。MATLAB程序通过这3种组件与数据采集硬件的互联和信息传递,它们之间的关系如图3所示。图3 MATLAB数据采集箱提供的三种组件硬件之间的关系 硬件驱动适配器在硬件驱动程序和数据采集引擎之间交换属性数值、数据和事件;数据采集引擎用来存储各个设备对象,以及每个设备对象的属性值;对采集到的数据进行存储并且使不同事件同步;M-文件用来创建设备对象、采集或输出数据、检查数据采集设备和数据采集的状态和配置属性值。只有使用工具箱提供的设备对象才能访问硬件端口

27、。设备对象给访问硬件设备带来了方便,数据采集的应用程序需要设备对象来控制。每个设备对象它都会对应着一个规定的硬件子系统,如下图4所示。MATLAB数据采集工具箱提供了3个设备对象,分别是模拟输入设备对象(AI)、模拟输出设备对象(AO)和数字输入/输出设备对象(DIO)。在每次采样之前,要创建合适的设备对象。图4 设备对象和硬件子系统3基于MATLAB和声卡的数据采集器的设计3.1方案选取当今在推进信息化建设的实践中,数据采集技术是不可缺少的重要环节,对设施的影响尤为深远。目前,比较常见的数据采集系统设计方案主要有以下几种:(1)使用RS232串行通信将采集模块采集到的数据传输到PC机RS23

28、2是PC机与通信工业中应用最广泛的一种串行接口,RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS232采取不平衡传输方式,即所谓单端通讯,同时又有通信距离短、速率低的缺点。(2)用AT89C51单片机(MCS51系列)与美国TI(Texas Instruments)公司的A/ D芯片TLC2543制作数据采集卡该采集系统具有较好的可移动性并降低成本, 但AT89C51的精确度不高。(3)应用USB总线的数据采集器。该方案有速度快、易扩展、能够采用总线供电、设备安装和配置容易和使用灵活等优点,但是设计和调试比较麻烦,成本相对较高。(4)基于ARM和GPRS的嵌入式多路数据采集

29、系统。该系统运行于32位微处理器和嵌入式Linux操作系统的架构上,与传统的解决方案相比,在可靠性、速度、数据处理能力、功能扩展等方面有了显著改进,并且有向其它场合下的行业应用扩展的前景。信号采集工程是工程中信号分析和处理的前提,基于MATLAB的数据采集器是为了实现MATLAB与外部环境的交互,达到直接对硬件端口进行读写操作,实现这个目的,要利用MATLAB的数据采集工具箱。数据采集工具箱是MATLAB计算环境中M文件函数、MEX文件和MEX -file 动态链接库的集合。硬件驱动接口也就是硬件驱动程序和数据采集工具箱它们之间的接口,主要目的是通过驱动程序在硬件设备和MATLAB之间传送信息

30、。数据采集工具箱是不会提供硬件驱动的,一般设备供应商提供是会提供硬件驱动的。那么在系统中安装相应的版本NIDAQ驱动即可,它可从硬件的驱动程序实现接收数据的采集,并送入MATLAB。功能包括实时模拟输入(AI,ADC,数据采集)、模拟输出(AO,DAC)、数字量输入输出(DI/DO)。支持流行的硬件,例如声卡、National instruments E系列和1200系列数据采集卡、Hewlett-Packard E1432A系列VXI数据采集卡等。表1是目前支持的供应商和接口卡的名称。表1 供应商和接口卡名称供应商Vendor接口卡名称Adaptor NameNational Instrum

31、entsnidaqComputer BoardscbiAgilent TechnologiesHpel432Windows sound cards声卡winsound数据采集硬件的不同操作都是一致的界面,不同的采集硬件只需简单地修改相应的程序即可。集成于MATLAB内的数据采集工具箱不仅支持标准的数据采集卡,而且支持通过声卡进行采集数据和输出数据。所以,以声卡作为数据采集卡就不需要再加A/D和D/A转换器了 ,一台个人计算机就可以作为一个数据采集系统。再进一步利用MATLAB内的数据采集工具箱,从而就可以组成一个系统进行实时采集和仿真控制。可以将MATLAB内的Simulink、Dials&a

32、mp;Gauges、DSP Blockset、 Fixed-Point Blockset等固有的模型用Real-Time Workshop快速地转化为C语言,从而进行对外界实时地测量、信号分析处理和监控。数据采集卡一般包括多路开关、放大及采样保持、A/D转换、计算机I/O接口等部分,性能比较完善,但价格比较昂贵,同时硬件安装及软件驱动需占用一定的系统资源。计算机上都装有声卡,声卡具有对信号滤波、放大及采样保持、A/D和D/A转换等功能,这些功能与数据采集卡相当。使用声卡进行直接A/D转换、以话筒的插孔作为信号源输入端,就可实现单、双通道对信号的采集。一般常用声卡会以双声道16位并且高保真的采集

33、语音信号,最高上限采样率可以达到44.1KHz,采样的频率与精度是比较高的。通常比12位市售D/A卡的精度高,声卡在信号的量化精度和采样率方面是绝对满足当前的科学实验和工程测量要求的,相对于一些低档的数据采集卡它的性能甚至更好。因此可用声卡配合相应软件构建信号采集系统。MATLAB中提供了数据采集工具箱和信号处理工具箱,完全可以满足控制声卡进行数据采集和分析数据的要求。前面四种方案虽然各有优点,但是,基于MATLAB和声卡的数据采集器与它们比起来更廉价和简单,我对其掌握也更充分。所以,我选择了基于MATLAB和声卡的数据采集器设计方案。 基于MATLAB的数据采集器的设计以声卡为核心,既能充分

34、利用MATLAB的信号处理功能,又能充分发挥声卡所具有的廉价和能对模拟信号的放大、滤波、采样、A/D和D/A转换。本方案的系统框图如图5:声音计算机声卡麦克风图5 系统框图3.2传感器的选择声音传感器是一种将声音信号转变为电信号的声电转换器件,或者说声音传感器是将机械能转化为电能的转换装置。常规的声音信号的频率范围一般在20Hz-20kHz,并要求传感器在此频率范围内对声音的响应。传声器就是声音传感器,我们通常称呼其为麦克风,它的作用与扬声器恰恰相反,是将声音信号转化成电信号。目前,传声器的种类很多,其外形、规格、型号等更是不胜枚举。但是按工作原理分为传声器可分为动圈式传声器、压电晶体式传声器

35、、带式传声器、和电容式传声器等等。驻极体式传声器在其振动面粘贴了聚酯膜,它能够拾取直达声,减少反射声,增加了声音的保真度。它有着电声性能好、结构简单、价格低,、灵敏度高、耐用等特点,因此其应用是较广泛的。驻极体式EM一9767型号的麦克风,它有着最高可达30dB的灵敏度, 可以响应20Hz一20kHz带宽的音频信号,频响特性也是比较平坦的,信噪比一般大于60dB,从以上几点来说是完全满足我们所设计的系统的要求。在设计该系统过程中,因为难以获得像这样高灵敏度的麦克风,所以选用的是市面上一般的麦克风,这样的麦克是没有明显的电气参数的,但是通过实践表明其特性是完全满足本系统要求的。使用时,传声器直接

36、插入PC机的麦克风插孔。周围环境所引起的空气震动传至传声器时,在线圈上就会产生感应电动势,即形成一个电信号。这个电信号经由线圈引出线输出,经信号调整电路放大、滤波后,再经过A/D转换成数字信号传入计算机进行信号处理。麦克风的衡量指标有输出阻抗、灵明度、频率响应、指向性。驻极体式EM一9767麦克风的主要电气特性如表2表2 驻极体式EM-9767麦克风主要电气特性参数指标指向性单向性灵敏度-46±3dB, -48±3dB, -50±3dB输出阻抗680(最大)频率范围100  16000Hz最大工作电压10.0V标准工作电压+

37、1.5VDC工作电流0.5mA3.3声卡在A/D转换中的应用3.3.1声卡在A/D转换中的原理声卡是电脑中用来处理声音的接口卡,有三个基本功能:音乐合成发音功能。混音器(Mixer)功能和数字声音效果处理器(DSP)功能。模拟声音信号的输入和输出功能。声卡可以把来自话筒、收录音机、激光唱机等设备的语音、音乐等声音变成数字信号交给电脑处理,并以文件形式存盘。计算机上都装有声卡,声卡不仅价格低廉,而且兼容性好、性能稳定,软件(特别是驱动程序)升级方便,具有对信号滤波、放大及采样保持、A/D和D/A转换等功能,而且声卡采用DMA(直接内存读取)方式传送数据,极大地降低了CPU占用率。一般声卡具有16

38、位的D/A转换精度,通常比12位市售D/A卡的精度高,对于许多工程测量和科学实验来说都是足够高的,而其价格却比后者便宜得多。声卡的硬件结构由以下几部分组成:声音控制/处理芯片,功放芯片,声音输入/输出端口等。声音控制/处理芯片是声卡的核心,集成了采样保持、A/D转换、D/A转换、音效处理等电路,声卡的优劣主要是由它决定的,它的基本功能是对声波进行采样和对声波回放的控制以及处理MIDI指令等,声音输入/输出端口是音频信号的输入和输出,它主要有外接端口和内接端口。外接端口中有“Line In”线性输入端口,“MIC In”麦克风输入端口,还有MIDI端口,可以连接游戏控制器和电子乐器。内接端口是声

39、卡内置的输入/输出端口,是CD音响接口。声卡对声音的A/D转化图如图6所示,本文中声卡对声音的输入采用“MICIn”麦克风输入端口。模拟的声音信号(CD、线路输入)信号前置处理A/D转换数据输入缓冲区数字信号处理图6 声卡对声音的A/D转化图声音信号由麦克风采集到经过声卡的前置处理再进行模数转换后变成数字信号,送入输入缓冲区,然后利用各种数字信号处理的技术对输入到缓冲区的数据进行处理,从而完成音效处理、声音消噪、声音合成等功能,最后可以把已经处理好的数据保存到可存储的存储设备中,这完成了声音信号的录制过程。3.3.2声卡的驱动软件声卡驱动软件也就是声卡的驱动程序,实现对通道数、采样频率、采样位

40、数等参数设置及对音量的大小、数据缓冲区等控制功能,它能够使得声卡各组成部分相互协调的工作,从而实现对声音的采集、存储和回放等功能。驱动软件的结构可分为两部分,分别是低层音频服务部分和高层音频服务部分。低层音频服务能够让代码程序直接与驱动程序传递信息,可以很好地控制声音播放和录制,播放和录制过程就可以得到很好的管理,它也可以控制各种各样的音频设备。高层音频服务同样也能实现声音的录制和播放的功能,但它不能直接控制底层数据。由于低层音频服务可直接与驱动程序通讯,实现对底层数据的直接控制,而且本系统是对信号波形输入设备的操作,作为工程上使用的信号采集系统,需要考虑信号的采集频率、采样长度、采样位数等。

41、数据采集时,调用底层音频函数来完成。首先对声卡定义为设备对象,使MATLAB 将声卡设备作为对象处理,用于建立模拟信号输入,创建一条专用的通道用于模拟信号数据的传输,然后对通道数、采样频率、采样位数(A/D转换位数)、采样长度等参数进行设置,最后选择触发方式。3.3.3声卡的参数设置声卡的技术参数主要有两个:采样位数和采样频率。1)采样位数采样位数也就是采样值或取样值,是声卡处理声音的解析度,采样值越大,解析度就越高,声音的录制和播放效果会越好。声卡位数和数据采集卡的位数是同一个概念,是指模拟信号转化为二进制数字信号的位数,它反映的是描述信号的准确程度。显而易见,位数是越高越好。目前,市面上绝

42、大数的声卡是16位,然而一般市场上的数据采集卡只有12位,所以从这个角度来说,声卡的准确度是非常高的。2)采样频率由于声卡只能处理语音信号,所以声卡的采样频率通常比较低的。目前,采样频率的最大值是44.1kHz,只有少数能达到48kHz。通常声卡的采样频率设为4个档位,分别是44.1kHz、22.05 kHz、11.025 kHz和8 kHz。22.05 kHz的频率仅仅能达到FM广播的音质,理论上的CD音质界限是44.1kHz,当然48 kHz的效果会更好。对于20kHz以内的音频信号,采样频率设为48kHz理论上是没问题的,但是余量似乎不大。由采样定理得到,采样频率应该至少是被采样信号的2

43、倍,所以声卡的采样频率决定了可以采样信号的范围。不允许用户在最高的采样频率一下任意设置采样频率,只能分为4挡,这个是使用声卡作为数据采集卡的一个缺点。这样虽然使得制造成本降低,但是使用起来不是很方便。用户一般不可能控制整周期采样,非整周期采样带来的问题只能通过信号处理来弥补。4软件设计4.1基于MATLAB和声卡的软件流程本系统的软件设计使用了面向对象的程序设计方法。图7给出整个程序的模块构成图。本软件的设计方法,力求简单明了,操作方便。软件功能模块采集数据测试频域分析时域分析保存波形显示读取播放图7 程序的模块组成图首先设置采集数据时需要的参数,再进行采集数据,对于采集到的数据可对其进行保存

44、、波形显示和频谱变换,下面可以调用已保存的数据作一些分析处理。 该设计要利用数据采集工具箱,在MATLAB环境下实现实时数据采集的步骤如图8所示。1.创建设备对象analoginput2.添加采集通道addchannel3.设定特性参数set4.启动数据采集和数据处理start5.清除设备对象delete;clear图8 数据采集命令流程首先需要利用命令函数analoginput来创建输入设备对象,并且再定义一个MATLAB变量来代替这个设备对象,以后只要是对该设备对象的操作就转化为对刚定义的这个变量操作。当上面的输入设备对象建立完成后,就需要根据实际情况给该输入设备设置数据采集通道。接着就需

45、要设置输入设备对象在采集过程中所需的参数,不同的采集卡它的采集特性参数会都是各不一样的。当上述的所有工作完成之后,就可以开始启动数据采集命令了,此时由数据采集引擎管理数据采集卡的状态,上面设定的参数数据采集引擎响应和监控数据采集卡都会自动地严格遵守,并且数据采集引擎会将采集到的数据输入给其管理的内存区,在MATLBA中通过对应的命令可以查看系统数据采集的状态和抽取数据到MATLAB的工作空间中,并在MATLAB工作空间中可对抽取到的数据处理分析。当采系统集到的数据满足预先设定的参数时,采集任务也就结束了。这时可以利用delete和clear两个简单的命令来清除建立的设备对象,如果不清除该设备对

46、象,数据采集引擎的会一直监管该设备,下次再创建相同设备对象时,系统发生错误。数据采集工具箱针对数据采集对象支持两种特性, 第一种特性是通道特性,它只适用于单个通道,第二种特性是公共特性,它可以定义数据采集卡所有采集通道的特性;具体到每个不同的数据采集卡的特性会有所不同,其中有一组是通用的基本特性设置适合于大多数的应用,这些基本特性包括触发方式和采样率。数据采集工具箱支持的触发方式有4种,它们分别是手动触发、立即触发、软件触发和硬件触发(Manual、Immediate、Software、Hardware)。 (1) 通过编程将MATLAB与声卡连接起来。声卡设备仅仅是MATLAB中的一个对象,

47、之后的所有的操作都不会直接作用于硬件,而是直接对已经建立的声卡设备对象的操作作用于外部的硬件设备。对于这个系统来说,采集数据用的是声卡,所以系统输入和输出的信号都是模拟信号。在MATLAB中将MATLAB与声卡连接起来是非常容易的,编程是只需利用相应的语句就成,MATLAB中的analoginput命令是专门用于建立模拟信号输入设备对象的,下面的语句是其语法。 ai= analoginput (advantech ) ; 或者 ai= analoginput (advantech , ID) ;Advantech也就是硬件设备的名称,MATLAB还支持很多的硬件设备,它们的名称分别是winso

48、und,hpe1432,mcc,keithley,cbi,nidaq和adaptor。其中的ID则是硬件设备的标识,声卡的ID标识可以省略,所以用声卡作为采集硬件设备,其语法就可以是: ai=analoginput (winsound ) ;在MATLAB的编程过程中使用上述语句就可以在众多的计算机硬件中迅速地找到声卡,同时也就创建了一个模拟信号的采集的对象。创建一个输入设备对象,所有的硬件信号通道不能被它一个设备对象所霸占。所以为了方便操控硬件设备,为了模拟信号的传输就势必要创建一条专属通道。通过MATLAB中的addchannel命令,就会很容易达成这一目的,下面的语句是其语法的一般格式。

49、 chan = addchannel (obj , hwch) ;obj是模拟输入或输出的对象,也就是上面建立的“ai”;hwch是已经指定好设备的标识数量。在本系统中,指定好的声卡设备只有1个标识,所以在创建数据传输通道的就可以这样写:chan = addchannel (AI , 1) ;(2) 接下来设置采样时间和采样频率以及采样的点数。设定采样时间、采样频率和采样点数是非常的容易,以下语句完成即可完成。 duration = 3; Fs = 22050 ; Blocksize = duration * Fs ;如果需要在设计图形用户界面上对它们进行设置,只需利用MATLAB中的set命

50、令对它们进行赋值即可,下面的语句就是其语法格式。 set (object ,property , value) ;对于本系统来说,object就是要操作的设备对象ai,property为采样频率SampleRate,最后的value即为取值。所以可以这样写: set (ai ,SampleRate , 8000) ;对采样点数进行设置时,object不变还是ai,同理property就要换成采样点数SamplesPerTrigger,而value在这就是duration * ActualRate。所以就可以这样写: set (ai,SamplesPer Trigger , duration *

51、 ActualRate) ;紧接着就必须要使用get命令将已设定好的参数传递给对应的变量,get (ob ,PropertyName ) ;是其语法格式。ob是object的简写即为目标对象的名称,显然PropertyName是数值来源的名称,这里的数值来源就是 SampleRate和SamplesPerTrigger,所以就可以这样写: ActualRate = get (ai ,SampleRate ) ; blocksize = get (ai,SamplesPer Trigger ) ;故这部分的全部代码语句如下: duration = 3 ; %设置3秒的采样时间 set (ai,S

52、ampleRate , 22050) ; %设定22.05kHz的采样频率 ActualRate = get (ai,SampleRate ) ; set (ai,SamplesPerTrigger , duration * ActualRate) ; blocksize = get (ai,SamplesPer Trigger ) ; %设置采样点数 Fs = ActualRate ;(3) 对于触发方式的设置,只有四种触发方式,分别是Immediate是自动触发; Hardware是硬件触发;Manual为手动触发;Software是软件触发。因为本系统要求能够随时地采集数据,所以该系统选

53、用手动触发方式,下面是设定触发方式的语句。 set (ai ,Trigger Type ,Manual ) ;(4)采集数据,上述的采集参数设置完成,就可以启动该设备开始数据采集,当采集完成后,设备会自动停止运行。语法格式如下:start (ai) ; trigger (ai) ; data = getdata (ai) ;声卡只有上述4种触发方式的3种,在本设计中设定的是Manual手动触发方式,所以就势必要用trigger(ai)命令人工触发,启动声卡开始数据采集;如果触发方式设为Immediate时,使用start命令就可以将立即触发,开始数据采集。(5) 清楚设备对象。在采集完成之后,

54、需要从内存以及MATLAB工作空间中清除建立了的设备对象。语法格式如下: stop (ai) ; delete (ai) ; stop命令可以终止声卡设备运行;delete命令是清除MATLAB工作空间中的声卡设备对象。4.2基于MATLAB和声卡采集的示波器的实现4.2.1GUI的创建(1)首先启动MATLAB7.0,点击菜单“FILE”中的“New”子菜单下的“GUI”选项,打开“GUIDE Quick Start”对话框。(2)在“GUIDE templates”列表框中选择“Blank GUI(Default)”选项,后单击“OK”按钮。当Matlab完成GUIDE初始化后,显示GUI

55、窗口,可以适当调整窗口的大小。(3)点击GUI窗口中的“文件”菜单中的“Save As”选项,在弹出对话框内设置一个保存的位置,保存为nidaq.fig文件,系统将自动保存并打开nidaq.m文件。4.2.2GUI的设计(1)设置GUI窗口(figure1)属性。双击窗口内任意位置,打开“Property Inspector”对话框,选择Name属性,设置标题为“音频信号采集”。(2)选择控件面板中控件,以一定的次序为GUI窗口添加控件,并按照下图8所示放置。图9 GUI窗口图(4)双击各控件对象,打开“Property Inspector”对话框,按下表3进行属性设置。表3 控件属性设置控件类型Tag属性String属性其他类型功能Axesaxes1默认绘图Push Buttonpushbutton1采集和显示默认采集命令Push ButtonPushbutton2保存默认保存命令Push ButtonPushbutton3频域分析默认频域分析Push ButtonPushbutton4关闭默认关闭对话框Push ButtonPushbutton5测试默认发出测试信号Push ButtonPushbutton6时域分析默认时域分析Push

温馨提示

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

评论

0/150

提交评论