matlab参考答案2011至诚,【图片】【给电科的学弟学妹留着】给大家发个实用的东西。有关MATLAB【福州大学至诚学院吧】_百度贴吧...

news/2024/7/5 4:45:00 标签: matlab参考答案2011至诚

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

题目:数据采集与处理的GUI设计

要求:资料

参考:信号的采集、数字信号处理及滤波实例及《MATLAB7.X程序设计》P204页6.6节:图形用户界面设计工具。

要求:(1)能实时采集和显示声音信号或音乐信号。

(2)根据信号的特点,选用合适的滤波器滤波,滤波器设计完后,用filter函数用这些数字滤波器对含噪语音信号分别进行滤波处理。

(3)还原音乐信号,并画出其时域图与频域图,并与原始信号比较,且回放音乐信号。

(4)界面上至少应有信号采集和滤波按钮,信号频谱显示按钮,信号采样频率选择按钮和信号停止采集按钮四个按钮。

(5)具体流程可参考如下:先启动MATLAB程序,出现设计好的图形用户界面,按下相应的按键就进入相应按键的回调函数设定,设定完采集参数后启动声卡进行采集并显示采集到的波形或者频谱图,同时在进行语音信号采集的时候每隔0.1秒进入定时器回调函数一次,刷新下采集到的坐标轴的波形或者频谱图来实现动态的显示,在采集时候只要按下停止按键就会停止采集与显示。

MATLAB数据采集工具箱

前言

MATLAB 被广泛的使用在工程学和科学的领域, 从数据采集和分析到应用程序开发。MATLAB 环境集合了数学计算, 图形化输出, 和强有力的计算机程序语言。内建的接口让使用者可以从仪器、档案、和外部数据库和程序中读取数据。另外, MATLAB 应用程序还可以整合使用其它著名的计算机语言所开发出来的函式库如C 、C++ 、FORTRAN, 和Java。

本文主要将会介绍MATLAB数据采集工具箱的内部结构, 和外部的使用接口, 熟悉数据采集工具箱的使用方法将会了解如何使用同一组指令去操作各种不同硬件的数据采集卡以进行模拟输入(AI), 模拟输出(AO), 数字输出入(DIO)的各种操作. 对于MATLAB的使用者而言将是一项有力的工具。

何谓MATLAB数据采集工具箱(Data Acquisition Toolbox)

数据采集工具箱是一组M-File 函式集和MEX-File 等动态链接链接库所组成的, 专门使用在数据采集方面的一组函式库. 它提供了以下主要的功能

1. 以相同的指令操作 模拟输入(AI), 模拟输出(AO), 数字输出入(DIO)和同步模拟输出入转换各式功能, 不会因不同硬件而产生不同的指令.

2. 一个及时数据采集环境, 被测量的数据不需经由转换可直接进入MATLAB 直接进行分析.

3. 支持主要的数据采集卡的厂商, 如:凌华, Agilent, ComputerBoards 和 National Instruments.

4. 支持事件驱动(Event-driven)的数据采集.

MATLAB数据采集工具箱的内部结构

数据采集工具箱包括三个模块分别为: M-File 函式集, 数据采集引擎(Data Acquisition Engine), 和硬件转接驱动程序(Hardware Driver Adaptors)。如下图所示, 这些模块允许使用者在MATLAB 内和使用者的数据采集硬件之间交换数据。

图一: 数据采集工具箱的三大模块和数据流动的关系

属性和事件是内部沟通的方式, 数据是主要传送的标的, 分述如下:

属性(Property values)

使用者能经由属性的改变而改变使用者的数据采集行为, 经由数据采集工具箱属性的改变将会影响到硬件驱动程序的行为, 使硬件的工作符合使用者的实际需要。

资料(Data)

使用者能从感应器获取数据并存放它在MATLAB内, 或从MATLAB 输出数据到作动器。 此外使用者能在数字(1和0)和数字的输出入(DIO)之间进行数据转换。

事件(Events)

事件发生在当某个特定的情况符合之后, 通常在使用者设定属性后使用者可以指定一个或更多的回呼函数(Callback function)去处理不同的事件。使用者能使用事件的一些方式包括预先决定相当数量的数据被采集之后立刻进行分析, 或当硬件驱动程序有错误发生时显示一个错误讯息到MATLAB的工作区。

开始进行数据采集

或许最有效学习数据采集工具箱的方式为, 连接使用者的硬设备然后开始使用数据采集工具箱实际的进行数据采集的工作. 实际进行如何输入或输出数据。这个部分提供使用者一个简单的例子说明怎么从实际的硬件上采集数据(AI), 又如何从MATLAB中产生数据并输出到实际的硬件(AO), 另一种常见的数据采集是使用数字I/O(DIO)。

以上均为典型的数据采集范例并且会对个范例作说明。使用者应该记住这些步骤并修改成为自己的数据采集应用。

注意模拟输入和模拟输出范例使用一张凌华 DAQ2010的数据采集卡, 如果使用者使用一种另外支持的硬件装置, 使用者应该修改硬件转接驱动程序的名称(Hardware Driver Adaptor Name.)和设备识别码(Hardware Device Identifier)。

如果使用者想要所有函数的相关说明, 可以参考MATLAB的函数说明。

如果使用者想要其它的属性相关说明, 可以参考MATLAB的基本属性说明。

如果使用者已经安装好凌华 DAQ2010的数据采集卡, 安装好硬件驱动程序. 就可在光盘中或是到凌华科技网站http://www.凌华tech.com 中 寻找D2K-MTLB的DAQ2000系列的硬件转接驱动程序, 安装D2K-MTLB后就算完成了准备动作.

模拟输入(AI)范例

这个范例将会使用数据采集工具箱对真实的数据采集卡进行设定, 操作, 采集数据, 并以图表显示出来.,只要稍为修改设定属性值, 即可使用在真实的应用中.

1.宣告一个装置对象 – 宣告一个可以代表DAQ2010的模拟输入对象(ai)

ai = analoginput('凌华',1);

2.增加输入信道(Add channels) – 增加一个硬件信道到ai

chan = addchannel(ai, 0);

3.设定属性值 – 设定取样频率和触发来源和条件

set(ai,'SampleRate',2000)

set(ai,'TriggerType', 'Immediate')

set(ai,'TriggerChannel', chan) %不一定要执行此指令因为会需要Trigger讯号

set(ai,'TriggerConditionValue', 2.0) %不一定要执行此指令因为会需要Trigger讯号

4.开始采集数据 – 当数据采集结束时, ai会自动停止数据采集并传回数据.此时亦可使用图表将数据显示.

. start(ai)

data = getdata(ai);

plot(data)

5.清除宣告的对象变量 – 当使用者不再需要使用ai 装置对象变量时, 使用者必需清除并释放ai 所占用的内存.

delete(chan)

clear chan

delete(ai)

clear ai

图二: 数据采集模拟输入(AI)范例的执行结果

模拟输出(AO)范例

这个范例将会使用数据采集工具箱对真实的数据采集卡进行设定, 操作, 输出数据, 并以图表显示准备要输出的波形.,只要稍为修改设定属性值, 即可使用在真实的应用中.

1.宣告一个装置对象 – 宣告一个可以代表DAQ2010的模拟输出对象(ao)

ao = analogoutput ('凌华',1);

2.增加输出通道(Add channels) – 增加一个或二个硬件信道到ao

chan = addchannel(ao, 0); %或 addchannel(ao,0:1);

3.设定属性值 – 设定更新频率

set(ao,'SampleRate',2000)

4.开始输出资料 – 首先先在MATLAB内产生所要输出的波形, 然后可以把波形数据写入ao, 一次可以写入一个通道或是写入二个通道.

data = 10*sin(linspace(0,2*pi*10,8000)');

plot(data)

putdata(ao, data) %或 putdata(ao,[data data])

5.清除宣告的对象变量 – 当使用者不再需要使用ao 装置对象变量时, 使用者必需清除并释放ao 所占用的内存.

stop(ao)

delete(chan)

clear chan

delete(ao)

clear ao

图三: 数据模拟输出(AO)范例的输出波形

数字输出入(DIO)范例

这个范例将会使用数据采集工具箱对真实的数据采集卡进行数字的输出, 同时读回那些值.

1.宣告一个装置对象 – 宣告一个可以代表DAQ2010的数字输出入对象(dio)

dio = digitalio ('凌华',1);

2.增加数字讯号线(Add lines) – 增加八个数字讯号线到dio, 同时将数字讯号线设定为”输出”

addline(dio,0:7,'out');

3.读和写数值 – 产生一个数值的数组, 并将它送到dio装置对象, 注意读和写数字讯号线通常不必再对其输出入的方向重新设定.

pval = [1 1 1 1 0 1 0 1];

putvalue(dio,pval)

gval = getvalue(dio);

plot(gval)

5.清除宣告的对象变量 – 当使用者不再需要使用dio 装置对象变量时, 使用者必需清除并释放dio 所占用的内存.

delete(dio)

clear dio

结论

在此简单的介绍MATLAB数据采集工具箱的内部结构和使用方法,使用此种方式在MATLAB内控制数据采集卡是最直接的方式,同时可以完全和MATLAB整合并进行实时的数据存取和实时的分析,使用资料采集工具箱再加上一片可以在工具箱内使用的数据采集卡是所有需要作数据采集的工程师必备的工具。

利用声卡进行数据采集实例:

AI=analoginput('winsound'); %创建声卡设备对象

chan=addchannel(AI,1); %添加声卡通道

duration=0.1; %设置采样时间

set(AI,'SampleRate',8000); %设置采样频率

ActualRate=get(AI,'SampleRate'); %获取设备的实际采样频率

set(AI,'SamplesPerTrigger',duration*ActualRate); %设置每次触发的采样次数和触发方式为手动

set(AI,'TriggerType','Manual');

blocksize=get(AI,'SamplesPerTrigger'); %获取触发采样次数

Fs=ActualRate;

start(AI); %启动并触发设备

trigger(AI);

data=getdata(AI); %获取数据

[f,mag] =daqdocfft(data,Fs,blocksize); %调用daqdocfft 对采样数据进行FFT 变化

plot (f,mag); grid on; %绘制频谱图

xlabel ('频率(Hz)'); ylabel ('幅度(分贝)');

title ('音频信号的频率成分');

delete(AI); clear AI %清除设备


http://www.niftyadmin.cn/n/1274815.html

相关文章

python table_python读取table文件

有个table文件, 有时候需要处理header , 可以用linecache 模块#!/usr/bin/env python # -*- coding: ascii -*- import linecache import fileinput import sys from collections import defaultdict inputFile sys.argv[1] headerLine linecache.getl…

uni-app教程支付php,uniapp 小程序支付前端加php后台

//将xml字符串转换为数组protected static function xmlToArray($xml){$array_data json_decode(json_encode(simplexml_load_string($xml, ‘SimpleXMLElement’, LIBXML_NOCDATA)), true);return $array_data;}/** 对要发送到微信统一下单接口的数据举行署名*/protected fun…

python线性回归_机器学习python实战----线性回归

一、纲要 线性回归的正规方程解法 局部加权线性回归 二、内容详述 1、线性回归的正规方程解法 线性回归是对连续型的数据进行预测。这里讨论的是线性回归的例子,对于非线性回归先不做讨论。这部分内容我们用的是正规方程的解法,理论内容在之前已经解释过…

Myeclipse下的Tomcat映射问题

Myeclipse下的Tomcat映射问题 这个问题真的很头疼啊。 环境是: Myeclipse2015 tomcat 8(使用Myeclipse默认导入的配置) 问题呢: 在Myeclipse下创建一个web project,如果是不创建默认web.xml,就可以进入index页面。 如果默认创建了…

centos7上php的启动不了,LINUX入门:CentOS 7卡在开机界面进不去登录界面

《LINUX入门:CentOS 7卡在开机界面进不去登录界面》要点:本文介绍了LINUX入门:CentOS 7卡在开机界面进不去登录界面,希望对您有用。如果有疑问,可以联系我们。CentOS7 系统默认的Python版本是2.7.5,在安装Anaconda pyt…

创建表,创建数据库, 删除表 ,删除数据库

创建表,创建数据库, 删除表 ,删除数据库 创建数据库Create database text2 创建数据库text2 2. 删除数据库 Drop database text2 删除数据库text2 创建表Create table class 创建一个表叫class 这是个主表 ( Code…

python3怎么安装mysql_Python3中mysql的安装

1、准备:请参考大神文章 链接:https://www.cnblogs.com/zhangkanghui/p/9613844.html 2、安装mysql-connectorpip install mysql-connector 安装成功如下:3、下载mysqlclient 去此网站下载对应版本的mysqlclient,博主为Python3.7版…

java蒙特卡罗求主元素,【算法题】6.求主元素

题目已知⼀个整数序列A (a0,a1,a2,...an-1),其中(0< ai <n),(0< i<n). 若存在ap1 ap2 ...apm x,且m>n/2(0<pk题目大意&#xff1a;主元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。输入&#xff1a;[1,2,5,9,5,9,5,5,5]输出&#xff1a;5解析&#xff…