第 30 卷第 4 期 应 用 科 技 Vol. 30 , №. 4
2003 年 4 月 Applied Science and Technology Apr. ,2003
文章编号 :1009 - 671X(2003) 04 - 0023 - 02
基于 Matlab 的数据采集系统设计
陈德娟
(上海 708 研究所 307 室 , 上海 200011)
摘 要 :详细介绍了基于 Matlab 的数据采集系统的设计原理和过程. 利用 Matlab 所提供的数据采集工具箱
能很方便地设计出所需的数据采集系统 ,并介绍了一个实现采集声卡数据的程序. ①
关 键 词 :Matlab ; 数据采集
中图分类号 :TP274. 2 文献标识码 :A
Designing of data acquisition system based on Matlab
CHEN De
juan
(Office 307 , Shanghai 708 Research Institute , Shanghai 200011 ,China)
Abstract :Detailed principles and process of the designing of data acquisition system based on Matlab were intro
duced in this paper. Using the Data Acquisition Toolbox provided in Matlab , a data acquisition system with special
purposes can be easily achieved. And an example of collecting data from sound card was presented.
Key words :Matlab ;data acquisition
0 引 言
数据采集系统 1 就是将温度 、压力 、流量 、位
移等模拟量采集 、转换成数字量 ,并进行存储 、处
理 、显示或打印的系统. 在当今社会各个领域 ,包
括科研和实验研究 ,数据采集系统有着不可代替
的作用 ,数据采集和处理进行得越及时 ,工作效率
就越高 ,取得的经济效益就越大.
数据采集系统性能的好坏主要取决于它的精
度和速度 ,在保证精度的条件下 ,还要尽可能地提
高采样速度 ,以满足实时采集 、实时处理和实时控
制的要求.
Matlab 提供的数据采集工具箱 2 汇集了 Mat
lab 集成的 M - 文件和 MEX - 文件动态连接库 ,可
以实时显示通过计算机数据采集硬件采集的数
据. 利用该数据采集工具箱可以方便地建立数据
采集系统.
1 数据采集系统
图 1 给出了基于 Matlab 的数据采集系统的简
图 ,主要部件数据采集工具箱提供了硬件驱动程
序和 Matlab 环境之间“对话”所需的硬件驱动程序
适配器 、数据采集引擎和 M - 文件函数.
图 1 基于 Matlab 的数据采集系统简图
硬件驱动程序适配器在硬件驱动程序和数据
采集引擎之间交换属性数值 、数据和事件 ;数据采
集引擎用来存储各个设备对象 ,以及每个设备对
象的属性值 ;对采集到的数据进行存储并且使不
同事件同步 ;M - 文件用来创建设备对象 、采集或
输出数据 、配置属性值和检测数据采集状态和数
据采集设备.
① 收稿日期 :2002 - 06 - 27
作者简介 :陈德娟 (1974 - ) ,女 ,助理工程师 ,主要研究方向 :船舶动力装置.
3
·42·
应 用 科 技 第 30 卷
2 设备对象
要访问硬件设备 ,就要使用工具箱提供的设
备对象. 设备对象提供了访问硬件设备功能的途
径 ,使用设备对象可以控制数据采集应用程序. 每
一个设备对象对应着一个特定的硬件子系统 ,见
图 2.
log10 (fftdata) ;
start ( ai ) ;
data = getdata ( ai) ;
fftdata = abs(fft (data) ) ;
mag = 20
mag = mag(1 :end/ 2) ;
5) 清除内存中的设备对象.
delete ( ai ) ;
clear ai ;
图 3 是在采样过程中打开麦克风 ,但是没有
对麦克风讲话的结果 (对不同品牌 、质量的声卡 ,
结果可能有所不同) ,图 4 是在采样的过程中对麦
克风讲话的结果. 可以看出 ,讲话与否 (传感器感
受端的变化) 改变了所采集到的数据的结果.
图 2 设备对象和硬件子系统
Matlab 数据采集工具箱提供的设备对象有模
拟输入设备对象 (AI) 、模拟输出设备对象 (AO) 和
数字输入/ 输出设备对象 (DIO) . 在进行采样之
前 ,要创建合适的设备对象 ,
1) 创建模拟输入设备对象 (AI) .
analoginput ( ’adaptor’, ID)
2) 创建模拟输出设备对象 (AO) .
analogoutput ( ’adaptor’, ID)
3) 创建数字输入/ 输出设备对象 (DIO) .
digitalio ( ’adaptor’, ID)
其中 ,adaptor 是 Matlab 所支持的硬件驱动程
序适配器 , ID 是所创建的设备对象的标示符数
值.
3 应用实例
声卡是 Matlab 数据采集工具箱所支持的一种
硬件 ,用声卡完成一个简单的数据采集过程 ,麦克
风就成了数据采集系统中的传感器.
1) 创建设备对象 ,这里创建的是一个声卡 AI
设备对象 ,硬件设备标示符为 2.
ai = analoginput ( ’winsound’,2 ) ;
2) 给设备对象添加通道 ,这里添加 1 个通道.
addchannel ( ai ,1 ) ;
3) 设定设备属性值 ,控制数据采集.
freq = 8 000 ; \ 采样频率 8 000 Hz
set (AI , ’SampleRate’, freq)
duration = 2 ; \ 采样时间 2 s
set (AI , ’SamplesPerTrigger’, duration
freq) ;
4) 数据采集及结果处理. 在这里首先将所采
集到的数据进行快速傅立叶变换 ,然后转化成分
贝 ,并显示结果的实数部分.
图 3 采样过程中没有对麦克风讲话
图 4 采样过程中对麦克风讲话
4 总束语
Matlab 提供的数据采集工具箱具有简单易用
的特点. 使用它用户可以非常方便地创建自己的
数据采集系统 ,并对数据进行处理.
参 考 文 献
1 马明建 ,周长城. 数据采集与处理技术 M . 西安 :
西安交通大学出版社 ,1989.
2 VINAY K I , JOHN G P. Digital signal processing using
matlab M . Newyork :PWS Publishing Company ,1996.