基于MATLAB的数据采集系统的设计(5)

2019-08-30 19:31

4软件设计

4.1基于MATLAB和声卡的软件流程

本系统的软件设计使用了面向对象的程序设计方法。图7给出整个程序的模块构成图。本软件的设计方法,力求简单明了,操作方便。

软件功能模块 采 测集 试 数 据 波时形保 域存 显分 示 析

读 取 播 放 图7 程序的模块组成图

首先设置采集数据时需要的参数,再进行采集数据,对于采集到的数据可对其进行保存、波形显示和频谱变换,下面可以调用已保存的数据作一些分析处理。

该设计要利用数据采集工具箱,在MATLAB环境下实现实时数据采集的步骤如图8所示。

频域 分析 14

1.创建设备对象analoginput 2.添加采集通道addchannel 3.设定特性参数set 4.启动数据采集和数据处理start 5.清除设备对象delete;clear 图8 数据采集命令流程

首先需要利用命令函数analoginput来创建输入设备对象,并且再定义一个MATLAB变量来代替这个设备对象,以后只要是对该设备对象的操作就转化为对刚定义的这个变量操作。当上面的输入设备对象建立完成后,就需要根据实际情况给该输入设备设置数据采集通道。接着就需要设置输入设备对象在采集过程中所需的参数,不同的采集卡它的采集特性参数会都是各不一样的。当上述的所有工作完成之后,就可以开始启动数据采集命令了,此时由数据采集引擎管理数据采集卡的状态,上面设定的参数数据采集引擎响应和监控数据采集卡都会自动地严格遵守,并且数据采集引擎会将采集到的数据输入给其管理的内存区,在MATLBA中通过对应的命令可以查看系统数据采集的状态和抽取数据到MATLAB的工作空间中,并在MATLAB工作空间中可对抽取到的数据处理分析。当采系统集到的数据满足预先设定的参数时,采集任务也就结束了。这时可以利用delete和clear两个简单的命令来清除建立的设备对象,如果不清除该设备对象,数据采集引擎的会一直监管该设备,下次再创建相同设备对象时,系统发生错误。

数据采集工具箱针对数据采集对象支持两种特性, 第一种特性是通道特性,它只适用于单个通道,第二种特性是公共特性,它可以定义数据采集卡所有采集通道的特性;具体到每个不同的数据采集卡的特性会有所不同,其中有一组是通用的基本特性

15

设置适合于大多数的应用,这些基本特性包括触发方式和采样率。数据采集工具箱支持的触发方式有4种,它们分别是手动触发、立即触发、软件触发和硬件触发(‘Manual’、‘Immediate’、‘Software’、‘Hardware’)。

(1) 通过编程将MATLAB与声卡连接起来。声卡设备仅仅是MATLAB中的一个对象,之后的所有的操作都不会直接作用于硬件,而是直接对已经建立的声卡设备对象的操作作用于外部的硬件设备。对于这个系统来说,采集数据用的是声卡,所以系统输入和输出的信号都是模拟信号。在MATLAB中将MATLAB与声卡连接起来是非常容易的,编程是只需利用相应的语句就成,MATLAB中的analoginput命令是专门用于建立模拟信号输入设备对象的,下面的语句是其语法。

ai= analoginput (‘advantech’ ) ;

或者 ai= analoginput (‘advantech’ , ID) ;

Advantech也就是硬件设备的名称,MATLAB还支持很多的硬件设备,它们的名称分别是winsound,hpe1432,mcc,keithley,cbi,nidaq和adaptor。其中的ID则是硬件设备的标识,声卡的ID标识可以省略,所以用声卡作为采集硬件设备,其语法就可以是: ai=analoginput (‘winsound’ ) ;

在MATLAB的编程过程中使用上述语句就可以在众多的计算机硬件中迅速地找到声卡,同时也就创建了一个模拟信号的采集的对象。创建一个输入设备对象,所有的硬件信号通道不能被它一个设备对象所霸占。所以为了方便操控硬件设备,为了模拟信号的传输就势必要创建一条专属通道。通过MATLAB中的addchannel命令,就会很容易达成这一目的,下面的语句是其语法的一般格式。

chan = addchannel (obj , hwch) ;

obj是模拟输入或输出的对象,也就是上面建立的“ai”;hwch是已经指定好设备的标识数量。在本系统中,指定好的声卡设备只有1个标识,所以在创建数据传输通道的就可以这样写:chan = addchannel (AI , 1) ;

(2) 接下来设置采样时间和采样频率以及采样的点数。设定采样时间、采样频率和采样点数是非常的容易,以下语句完成即可完成。

duration = 3; Fs = 22050 ;

Blocksize = duration * Fs ;

如果需要在设计图形用户界面上对它们进行设置,只需利用MATLAB中的set命令对它们进行赋值即可,下面的语句就是其语法格式。

set (object ,‘property’ , value) ;

对于本系统来说,object就是要操作的设备对象ai,property为采样频率SampleRate,最后的value即为取值。所以可以这样写:

16

set (ai ,‘SampleRate’ , 8000) ;

对采样点数进行设置时,object不变还是ai,同理property就要换成采样点数SamplesPerTrigger,而value在这就是duration * ActualRate。所以就可以这样写:

set (ai,‘SamplesPer Trigger’ , duration * ActualRate) ;

紧接着就必须要使用get命令将已设定好的参数传递给对应的变量,get (ob ,‘PropertyName’ ) ;是其语法格式。

ob是object的简写即为目标对象的名称,显然PropertyName是数值来源的名称,这里的数值来源就是 SampleRate和SamplesPerTrigger,所以就可以这样写:

ActualRate = get (ai ,‘SampleRate’ ) ; blocksize = get (ai,‘SamplesPer Trigger’ ) ; 故这部分的全部代码语句如下:

duration = 3 ; %设置3秒的采样时间

set (ai,‘SampleRate’ , 22050) ; %设定22.05kHz的采样频率 ActualRate = get (ai,‘SampleRate’ ) ;

set (ai,‘SamplesPerTrigger’ , duration * ActualRate) ;

blocksize = get (ai,‘SamplesPer Trigger’ ) ; %设置采样点数 Fs = ActualRate ;

(3) 对于触发方式的设置,只有四种触发方式,分别是Immediate是自动触发; Hardware是硬件触发;Manual为手动触发;Software是软件触发。因为本系统要求能够随时地采集数据,所以该系统选用手动触发方式,下面是设定触发方式的语句。

set (ai ,‘Trigger Type’ ,‘Manual’ ) ;

(4)采集数据,上述的采集参数设置完成,就可以启动该设备开始数据采集,当采集完成后,设备会自动停止运行。语法格式如下:

start (ai) ;

trigger (ai) ; data = getdata (ai) ;

声卡只有上述4种触发方式的3种,在本设计中设定的是Manual手动触发方式,所以就势必要用trigger(ai)命令人工触发,启动声卡开始数据采集;如果触发方式设为Immediate时,使用start命令就可以将立即触发,开始数据采集。

(5) 清楚设备对象。在采集完成之后,需要从内存以及MATLAB工作空间中清除建立了的设备对象。语法格式如下:

stop (ai) ; delete (ai) ;

stop命令可以终止声卡设备运行;delete命令是清除MATLAB工作空间中

17

的声卡设备对象。

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窗口,可以适当调整窗口的大小。

(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进行属性设

18


基于MATLAB的数据采集系统的设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青州市城市总体规划公示文件

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: