
一、用matlab实现数据采集的方法
我们在这里介绍两种共同学习参考。
① 直接利用MATLAB数据采集箱中提供的的函数命令进行采集,即wavrecord 。wavrecord是利用Windows 音频输入设备记录声音, 其调用格式为:
y=wavrecord(n ,fs ,ch ,dtype) ;
式中n 为采样的点数,决定了录音长度;
fs为采样频率,默认值为11025Hz,还可根据要求自己选择合适的采样率;
ch为声道数,默认值为1,表示单声道,如果指定为2,则采样为双声道立体声数据;
dtype为采样数据的存储格式,用字符串指定,可以是‘double’、‘single’、‘int16’、‘int8’,指定存储格式的同时也就规定了每个采样值量化的精度,int8 对应8 位精度采样,其它都是16 位采样精度。
在我们的实验中参数这样选择:
n=1024
fs=44100
ch=1
dtype=’double’
2采用对声卡产生一个模拟输入对象的方式进行采集。数据采集过程可以分为四步:
1) 初始化。Matlab将声卡等设备都作对象处理,其后的一切操作都不与硬件直相关,而是通过对该对象的操作来作用于硬件设备,所以首先要对声卡产生一个模拟输入对象:
ai = analoginput (’winsound’) ;
ai ——Matlab 中的变量,它是一个模拟输入设备对象句柄,所有的数据采集过程都是通过对该句柄的操作来实现;
analoginput ( ) ——模拟输入设备对象建立函数,通过该函数将A/ D 转换硬件映射为Matlab workspace 中的一个模拟输入设备对象句柄;
winsound——声卡设备驱动程序,Matlab 软件内含该驱动程序。
2) 配置。给ai对象添加通道,设置采样频率。
addchannel (ai ,1);%添加通道
fs = 44100; %采样频率设置为44.1KHz
ai.SampleRate = fs ;%设置采样频率
3) 采样。启动设备对象,开始采集数据。
t = 2s ; %设定采样时间
start (ai); %启动设备对象
data = get (ai ,t *fs) ; %获得采样数据
4) 终止。停止对象并删除对象。
stop (ai) ;
delete (ai) ;
这样便完成了一次完整的数据采集过程,采样频率和采样时间都是由用户输入的,十分方便。
二、Matlab的基本使用
① 文本文件的建立
用matlab语句编写的文件称为M文件,扩展名为“.M”。一个matlab文件包含一系列的matlab语句,m文件可相互调用,也可以自己调用自己。
要建立m文本文件并将程序输入,可在matlab界面中键入File→New→M-file,这时会出现一个文本窗口,可将你的源程序输入并存盘。
② matlab文件的编译及执行
Matlab文件的编译执行只能在它的“命令窗口”中进行。因此我们也称这个窗口为“工作空间”。Matlab文件就是在这个工作空间里执行。
直接Matlab程序,只要在命令窗口键入文件名就可以了。
Matlab编程比较容易掌握,大家在编程时可参考Matlab的图形系统、统计信号处理及信号处理工具箱函数等。
参 考 书
① 楼顺天编著:《基于MATLAB的系统分析与设计》 西安电子科技大学出版社出版
2楼顺天编著:《MATLAB5.X程序设计语言》西安电子科技大学出版社出版
3《C语言程序设计》
4《随机信号分析》
