(4)采用事件驱动模式进行数据采集。数据采集工具箱由3部分组成:M文件格式的函数、数据采集引擎和硬件驱动,如图3-1所示。这些组成部分使得MATLAB与数据采集硬件之间的信息传递成为可能。
图3-1 数据采集引擎与硬件驱动
目前市面上的数据采集卡一般都包含了完整的数据采集电路和与计算机的接口电路,如NI公司的E系列数据采集卡、研华的数据采集卡等, 其价格是与性能成正比的,可以说比较昂贵。在采样频率要求不高的情况下,可以利用计算机的声卡作为数据采集的输入和输出。而如今声卡技术已经成熟,成本越来越低。一般的声卡都可以实现双通道、16 位、高保真的数据采集,采样率甚至可以达到48KHz。对于许多科学试验和工程测量来说,其样本量化精度和采样率是足够高的,甚至优于目前常用数据采集卡的性能。将其用于数据采集,性价比相当高。
声卡是一个非常优秀的音频信号采集系统,其数字信号处理器包括模数转换器(ADC) 和数模转换器(DAC) ,ADC 用于采集音频信号,DAC用于重现这些数字声音,转换率达到44.1KHz。声卡已成为多媒体计算机的一个标准配置,利用声卡进行采样与输出,就不需要购买专门的采集卡可以降低虚拟仪器的开发成本,且在音频范围内可以完全满足实验要求。
3.3 MATLAB在数据采集中的应用数据采集工具箱集成于MATLAB中,所以在进行数据采集的同时,可以对采集的数据进行实时分析,或者存储后再进行处理,或者针对数据分析的需要对测试条件的设立进行不断的更新。应用数据采集工具箱提供的命令和函数可以控制任何类型的数据采集。例如,在硬件设备运行时,可以获取事件信息,评估采集状态,定义触发器和回访状态,预览数据以及进行实时分析,可以设置和显示所有的硬件特性以满足用户的技术指标。
4系统设计方案声音信号的采集与分析处理在工程应用中是经常需要解决的问题,如何实时采集声音信号并对其分析处理,从而找出声音信号的特征在科学研究中是一项非常有意义的工作。
声卡是多媒体计算机系统中最基本、最常用的硬件之一,其技术发展已经成熟,它具有AD/DA转换功能,现已被广泛应用于声音信号采集和虚拟仪器系统的设计。MATLAB则是一种功能强大、计算效率高、交互性好的数学计算和可视化计算机高级语言,它将数值分析、信号采集与处理和图形显示有机地融为一体,形成了一个极其方便、用户界面友好的操作环境。本文所设计的声音信号采集与分析系统就是充分利用了声卡的AD/DA转换功能和MATLAB强大的数据处理功能,同时,该系统还是建立在MATLAB软件的图形界面实现的,因而使系统具有良好的交互性。
基于计算机声卡的数据采集系统有以下特点:
(1)价格低廉。在数据采集时,所要采用的是模数转换芯片,对于某些应用场合,可以利用计算机上所附带的声卡实现数据采集任务。
(2)灵活性强。用户不仅可以进行实时监视和控制操作,还可以把数据保存到硬盘,供以后分析使用。在CPU足够快的条件下,还可以实时处理数据,动态显示波形的频谱、功率谱。另外在一台计算机上,可以插若干块声卡,组成多通道数据采集系统。
(3)频率范围较窄,不能测直流。由于受声卡的硬件限制,要得到较好的波形,输入信号的频率最好在100Hz~15kHz范围内。
总之,运用廉价的声卡,构成一个较高的采样精度,中等采样频率,且具有很大灵活性的数据采集系统,对于一些应用领域是一种很好的选择。
4.1 系统结构设计MATLAB提供了一个数据采集工具箱(Data Acquisition Toolbox),在该数据采集工具箱中,有一整套的命令和函数,可用来直接控制与PC机兼容的数据采集设备进行数据采集,因此,利用MATLAB的这一工具箱便可进行声音信号的采集。然后在MATLAB中直接调用频谱分析函数、功率谱分析函数或数值分析函数等,就可以将采集到的声音信号分别进行频谱、功率谱分析等多种谱分析。因此,在MATLAB中可以很容易地实现信号采集与分析处理工作。
图4-1系统实现的总体框图
从系统框图上看,整个系统结构简单,而且数据的后续分析方便,不需要再进行数据转移,而直接在MATLAB软件中完成分析处理工作。在该系统中,从硬件上来讲,只需必要的信号预处理电路和一台普通的多媒体计算机(或笔记本电脑)即可;从软件上来讲,则只需使用本文中所编制的程序,便可从声卡获取数据并保存为文件,然后再可根据实际需要进行数据分析处理。
4.2 系统功能设计本系统由数据采集和数据分析两大部分组成,数据采集部分是实现信号采集功能,根据用户选择的采样频率和预设的采样样本数从声卡获得用户需要的数据。数据分析部分主要实现以下功能:(1)从信号采集部分获取数据,或者从数据文件读取数据;(2)实现将采集到的声音信号数据进行频谱分析,画出频谱图以图形方式很直观地反映出信号特征;(3)保存数据,包括保存所有数据和部分数据的功能,同时保存对应的频谱数据;(4)显示声音信号数据的时域图和频谱图;(5)其他功能。根据不同的需要,还可以进行修改,以选择合适的实验方案。
4.3 系统设计实现声音信号采集功能的实现是由MATLAB控制计算机声卡将传感器得到的模拟信号转换为数字信号并存储在计算机中;而信号分析功能是将采集得到的数据进行时、频域分析和各项数值分析等。整个系统设计主要包括系统的硬件配置、编制程序实现数据采集、编制程序实现数据分析及系统的界面设计四部分。
4.3.1 声音信号采集的硬件配置将声卡插入计算机的PCI插槽,安装好相应的驱动程序后,将声音传感器设备与声卡的模拟输入端连接起来,这就构建了声音采集的硬件设备,需要注意的是对声音传感器的选择,应选择音频专用电缆或屏蔽电缆以减小噪声信号的引入,最好能选择单向性声音传感器。在MATLAB的信号采集工具箱中有专门为声卡生成一个操作对象的函数,初始化该操作对象即能建立MATLAB与声卡的通信,并为已创建的声卡设备对象增加数据采集通道和触发方式。若缺省设置则系统采用一个数据通道、手动触发方式启动工作。进行数据采集时,根据所配置的声卡的工作特性和信号分析的设计要求,可设置相应的参数来控制声卡在数据采集时的行为,如采样频率、采样时间、预计模拟信号的输入/输出范围、采样的出发方式,采样点数据的存储等。另外需要注意的一点是采样频率是由声卡的物理特性决定的,实际应用中可以根据情况选择一个声卡支持的采样频率.MATLAB支持电平触发、事件触发和手动触发三种方式来启动数据采集工作。声音信号采集硬件配置的具体实现过程:
sound=analoginput(‘winsound’);% ‘winsound’为声卡的驱动程序
channel=addchannel(sound,1);% 添加通道为单声道
set(sound, ‘SampleRate’,44100);% 设置采样频率为44100Hz
set(sound, ‘SamplesPerTrigger’,22050);% 设置采样时间为0.5s
set(sound, ‘TriggerType’, ‘manual’);% 设置触发方式为手工触发
...% 其它的相关设置