表1 供应商和接口卡名称
供应商Vendor National Instruments Computer Boards Agilent Technologies Windows sound cards声卡 数据采集硬件的不同操作都是一致的界面,不同的采集硬件只需简单地修改相应的程序即可。集成于MATLAB内的数据采集工具箱不仅支持标准的数据采集卡,而且支持通过声卡进行采集数据和输出数据。所以,以声卡作为数据采集卡就不需要再加A/D和D/A转换器了 ,一台个人计算机就可以作为一个数据采集系统。再进一步利用MATLAB内的数据采集工具箱,从而就可以组成一个系统进行实时采集和仿真控制。可以将MATLAB内的Simulink、Dials&Gauges、DSP Blockset、 Fixed-Point Blockset等固有的模型用Real-Time Workshop快速地转化为C语言,从而进行对外界实时地测量、信号分析处理和监控。
数据采集卡一般包括多路开关、放大及采样保持、A/D转换、计算机I/O接口等部分,性能比较完善,但价格比较昂贵,同时硬件安装及软件驱动需占用一定的系统资源。计算机上都装有声卡,声卡具有对信号滤波、放大及采样保持、A/D和D/A转换等功能,这些功能与数据采集卡相当。使用声卡进行直接A/D转换、以话筒的插孔作为信号源输入端,就可实现单、双通道对信号的采集。一般常用声卡会以双声道16位并且高保真的采集语音信号,最高上限采样率可以达到44.1KHz,采样的频率与精度是比较高的。通常比12位市售D/A卡的精度高,声卡在信号的量化精度和采样率方面是绝对满足当前的科学实验和工程测量要求的,相对于一些低档的数据采集卡它的性能甚至更好。因此可用声卡配合相应软件构建信号采集系统。MATLAB中提供了数据采集工具箱和信号处理工具箱,完全可以满足控制声卡进行数据采集和分析数据的要求。
前面四种方案虽然各有优点,但是,基于MATLAB和声卡的数据采集器与它们比起来更廉价和简单,我对其掌握也更充分。所以,我选择了基于MATLAB和声卡的数据采集器设计方案。
基于MATLAB的数据采集器的设计以声卡为核心,既能充分利用MATLAB的信号处理功能,又能充分发挥声卡所具有的廉价和能对模拟信号的放大、滤波、采样、A/D和D/A转换。本方案的系统框图如图5:
9
接口卡名称Adaptor Name nidaq cbi Hpel432 winsound 声音 麦克风 声卡 图5 系统框图
计算机 3.2传感器的选择
声音传感器是一种将声音信号转变为电信号的声电转换器件,或者说声音传感器是将机械能转化为电能的转换装置。常规的声音信号的频率范围一般在20Hz-20kHz,并要求传感器在此频率范围内对声音的响应。
传声器就是声音传感器,我们通常称呼其为麦克风,它的作用与扬声器恰恰相反,是将声音信号转化成电信号。目前,传声器的种类很多,其外形、规格、型号等更是不胜枚举。但是按工作原理分为传声器可分为动圈式传声器、压电晶体式传声器、带式传声器、和电容式传声器等等。驻极体式传声器在其振动面粘贴了聚酯膜,它能够拾取直达声,减少反射声,增加了声音的保真度。它有着电声性能好、结构简单、价格低,、灵敏度高、耐用等特点,因此其应用是较广泛的。驻极体式EM一9767型号的麦克风,它有着最高可达30dB的灵敏度, 可以响应20Hz一20kHz带宽的音频信号,频响特性也是比较平坦的,信噪比一般大于60dB,从以上几点来说是完全满足我们所设计的系统的要求。
在设计该系统过程中,因为难以获得像这样高灵敏度的麦克风,所以选用的是市面上一般的麦克风,这样的麦克是没有明显的电气参数的,但是通过实践表明其特性是完全满足本系统要求的。使用时,传声器直接插入PC机的麦克风插孔。周围环境所引起的空气震动传至传声器时,在线圈上就会产生感应电动势,即形成一个电信号。这个电信号经由线圈引出线输出,经信号调整电路放大、滤波后,再经过A/D转换成数字信号传入计算机进行信号处理。麦克风的衡量指标有输出阻抗、灵明度、频率响应、指向性。驻极体式EM一9767麦克风的主要电气特性如表2 表2 驻极体式EM-9767麦克风主要电气特性
参数 指向性 灵敏度 指标 单向性 -46±3dB, -48±3dB, -50±3dB 10
输出阻抗 频率范围 最大工作电压 标准工作电压 工作电流
680Ω(最大) 100 ~ 16000Hz 10.0V +1.5VDC 0.5mA 3.3声卡在A/D转换中的应用
3.3.1声卡在A/D转换中的原理
声卡是电脑中用来处理声音的接口卡,有三个基本功能:①音乐合成发音功能。②混音器(Mixer)功能和数字声音效果处理器(DSP)功能。③模拟声音信号的输入和输出功能。声卡可以把来自话筒、收录音机、激光唱机等设备的语音、音乐等声音变成数字信号交给电脑处理,并以文件形式存盘。计算机上都装有声卡,声卡不仅价格低廉,而且兼容性好、性能稳定,软件(特别是驱动程序)升级方便,具有对信号滤波、放大及采样保持、A/D和D/A转换等功能,而且声卡采用DMA(直接内存读取)方式传送数据,极大地降低了CPU占用率。一般声卡具有16位的D/A转换精度,通常比12位市售D/A卡的精度高,对于许多工程测量和科学实验来说都是足够高的,而其价格却比后者便宜得多。
声卡的硬件结构由以下几部分组成:声音控制/处理芯片,功放芯片,声音输入/输出端口等。声音控制/处理芯片是声卡的核心,集成了采样保持、A/D转换、D/A转换、音效处理等电路,声卡的优劣主要是由它决定的,它的基本功能是对声波进行采样和对声波回放的控制以及处理MIDI指令等,声音输入/输出端口是音频信号的输入和输出,它主要有外接端口和内接端口。外接端口中有“Line In”线性输入端口,“MIC In”麦克风输入端口,还有MIDI端口,可以连接游戏控制器和电子乐器。内接端口是声卡内置的输入/输出端口,是CD音响接口。声卡对声音的A/D转化图如图6所示,本文中声卡对声音的输入采用“MICIn”麦克风输入端口。
11
模拟的声音信号(CD、线路输入) 信号前置处理A/D转换 数据输入缓冲区 数字信号处理
图6 声卡对声音的A/D转化图
声音信号由麦克风采集到经过声卡的前置处理再进行模数转换后变成数字信号,送入输入缓冲区,然后利用各种数字信号处理的技术对输入到缓冲区的数据进行处理,从而完成音效处理、声音消噪、声音合成等功能,最后可以把已经处理好的数据保存到可存储的存储设备中,这完成了声音信号的录制过程。 3.3.2声卡的驱动软件
声卡驱动软件也就是声卡的驱动程序,实现对通道数、采样频率、采样位数等参数设置及对音量的大小、数据缓冲区等控制功能,它能够使得声卡各组成部分相互协调的工作,从而实现对声音的采集、存储和回放等功能。驱动软件的结构可分为两部分,分别是低层音频服务部分和高层音频服务部分。
低层音频服务能够让代码程序直接与驱动程序传递信息,可以很好地控制声音播放和录制,播放和录制过程就可以得到很好的管理,它也可以控制各种各样的音频设备。高层音频服务同样也能实现声音的录制和播放的功能,但它不能直接控制底层数据。
由于低层音频服务可直接与驱动程序通讯,实现对底层数据的直接控制,而且本系统是对信号波形输入设备的操作,作为工程上使用的信号采集系统,需要考虑信号的采集频率、采样长度、采样位数等。数据采集时,调用底层音频函数来完成。首先对声卡定义为设备对象,使MATLAB 将声卡设备作为对象处理,用于建立模拟信号输入,创建一条专用的通道用于模拟信号数据的传输,然后对通道数、采样频率、采样位数(A/D转换位数)、采样长度等参数进行设置,最后选择触发方式。 3.3.3声卡的参数设置
声卡的技术参数主要有两个:采样位数和采样频率。 1)采样位数
采样位数也就是采样值或取样值,是声卡处理声音的解析度,采样值越大,解析度就越高,声音的录制和播放效果会越好。声卡位数和数据采集卡的位数是同一个概念,是指模拟信号转化为二进制数字信号的位数,它反映的是描述信号的准确程度。
12
显而易见,位数是越高越好。目前,市面上绝大数的声卡是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倍,所以声卡的采样频率决定了可以采样信号的范围。不允许用户在最高的采样频率一下任意设置采样频率,只能分为4挡,这个是使用声卡作为数据采集卡的一个缺点。这样虽然使得制造成本降低,但是使用起来不是很方便。用户一般不可能控制整周期采样,非整周期采样带来的问题只能通过信号处理来弥补。
13