数据采集WordWord文件下载.docx
- 文档编号:21422562
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:12
- 大小:139.12KB
数据采集WordWord文件下载.docx
《数据采集WordWord文件下载.docx》由会员分享,可在线阅读,更多相关《数据采集WordWord文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
VirtualInstrumentStandardArchitecture,虚拟仪器软件体系结构。
它是控制GPIB、VXI、RS-232和其他类型仪器的接口库。
5.2数据采集结构
上图表示了数据采集的结构。
在数据采集之前,程序将对DAQ板卡初始化,板卡上和内存中的Buffer是数据采集存储的中间环节。
需要注意的两个问题是:
是否使用Buffer?
是否使用外触发启动、停止或同步一个操作。
5.2.1缓冲(Buffers)
这里的缓冲指的是PC内存的一个区域(不是DAQ卡上的FIFO缓冲),它用来临时存放数据。
例如,你需要采集每秒采集几千个数据,在一秒内显示或图形化所有数据是困难的。
但是将采集卡的数据先送到
Buffer,你就可以先将它们快速存储起来,稍后再重新找回它们显示或分析。
需要注意的是Buffer与DAQ操作的速度及容量有关。
如果你的卡有DMA性能,模拟输入操作就有一个通向计算机内存的高速硬件通道,这就意味着所采集的数据可以直接送到计算机的内存。
不使用Buffer意味着对所采集的每一个数据你都必须及时处理(图形化、分析等),因为这里没有一个场合可以保持你着手处理的数据之前的若干数据点。
下列情况需要使用BufferI/O:
●需要采集或产生许多样本,其速率超过了实际显示、存储到硬件,或实时分析的速度。
●需要连续采集或产生AC数据(>
10样本/秒),并且要同时分析或显示某些数据。
●采样周期必须准确、均匀地通过数据样本。
下列情况可以不使用BufferI/O:
●数据组短小,例如每秒只从两个通道之一采集一个数据点。
●需要缩减存储器的开支。
5.2.2触发(Triggering)
触发涉及初始化、终止或同步DAQ事件的任何方法。
触发器通常是一个数字或模拟信号,其状态可确定动作的发生。
软件触发最容易,你可以直接用软件,例如使用布尔面板控制去启动/停止数据采集。
硬件触发让板卡上的电路管理触发器,控制了DAQ事件的时间分配,有很高的精确度。
硬件触发可进一步分为外部触发和内部触发。
当某一模入通道发生一个指定的电压电平时,让卡输出一个数字脉冲,这是内部触发的例子。
采集卡等待一个外部仪器发出的数字脉冲到来后初始化采集卡,这是外部触发的例子。
许多仪器提供数字输出(常称为“triggerout”)用于触发特定的装置或仪器,在这里,就是DAQ卡。
下列情况使用软件触发:
●用户需要对所有DAQ操作有明确的控制,并且
●事件定时不需要非常准确。
下列情况使用硬件触发:
●DAQ事件定时需要非常准确。
●用户需要削减软件开支。
●DAQ事件需要与外部装置同步。
下面我们可以看到怎样使用DAQ的VI程序设置有Buffer及无Buffer的I/O操作,以及设置触发的类型。
5.3 模拟I/O(AnalogI/O)
5.3.1 基本概念
在研究DAQVI之前需要了解如下的几个定义。
我们以下图的AIAcquireWaveform.vi为例说明。
device——设备号。
在NIDAQ设置工具中设定。
该参数告诉LabVIEW你使用什么卡,它可以使DAQVI自身独立于卡的类型,也就是说,如果你稍后使用了另一种卡,并且赋予它同样的设备号,你的VI程序可正常工作而无须修改。
samples——表示一个A/D转换:
它是一个点、一个与测量发生时的实际模拟量对应的数据。
channel——指定数据样本的物理源。
例如,一个卡有16个模拟输入通道,你就可以同时采集16组数据点。
在LabVIEWVI中,一个通道或一组通道都用一个字符串来指定。
例如:
通道
通道串
通道5
5
通道0到4
0:
4
通道1,8,以及10到13
1,8,10:
13
scan——是在多通道采样时,由一个单独的通道得到的样本。
waveform——是由一个通道得到的一组样本,采集若干周期或一定时间。
通常,但不是必须,数据点之间的时间对给定的waveform是一个常数。
初学者经常对scan和waveform感到迷惑。
scan是相对于若干通道的一组样本(对每一个通道的一个瞬时得到一个样本),waveform是相对于时间的一组样本(由一个通道得到)。
highlimit和lowlimit——你期望的对信号的限制。
输入信号变化的缺省值是10V到-10V,可以设置DAQ系统的增益,例如,对大多数卡,如果你将其设为5到-5V,则增益为2。
如果你将其设为1到-1V,则增益为10。
所以如果你知道你的输入信号与缺省值不同,可以改写这些值。
可以用下面的公式确当所使用的增益:
增益=采集卡输入范围/(|HighLimit|-|Lowlimit|)
许多采集卡只支持某些预先确定的增益值。
如果你设置一个理论上的增益是得不到支持的,LabVIEW会自动将其调整到最近的预置值。
典型的采集卡所支持的增益值有0.5,1,2,5,10,20,50,100。
taskID——一个32位的整数(I32类型)。
某些DAQVI用来识别指定的加于其上的I/O操作。
许多DAQVI需要接受一个taskIDin并且返回一个taskIDout给下一个VI。
你不能通过taskID给每一个VI提供采集卡的信息,如采样率、电压限制等。
但一个初始化的VI可以把这些信息传给taskIDout,它可以信息告诉别的需要设置的VI。
后面将有例子说明。
5.3.2简单AnalogI/O
这是LabVIEW提供的一组标准的、简单易用的DAQVI。
◆AnalogInput
从左到右,4个VI的功能为:
●从指定通道获得一个样本。
●从由通道字符串规定的一组通道每通道获得一个样本。
这些样本返回到一个样本数组,顺序由通道号决定。
●按指定的采样率由一个通道得到一个波形(一组覆盖一个周期的样本),这些样本返回到一个wareform数组。
●从由通道字符串规定的每个通道获得一个波形。
这些样本返回到一个波形的2维数组,顺序由通道号和采样周期决定。
通道数据的每个点占1列,时间增量由行决定。
◆AnalogOutput
●在指定输出通道设置一个规定电压。
●在指定输出通道设置一组规定电压。
这些电压在输出通道一直保持恒定,直到其自身改变或装置复为位。
●在指定输出通道产生一个波形,波形的点(以电压为单位)是预先由波形数组提供的。
更新速率(Updaterate)规定了两个点之间的时间。
●与上类似,多波形,每通道一个,可同时发生。
每个波形存放在2维数组的1列。
练习5-1
目的:
采集一个直流电压信号
1.准备一个直流电源(例如0.5V)作为信号源连接到DAQ卡的0通道模入端。
2.构造前面板和框图如上面所示。
3.运行程序。
可得到Meter指示0.5V。
练习5-1结束
练习5-2
多通道数据采集
1.准备一个方波信号源和一个正弦波信号源。
分别连接到模入通道0和1。
2.设置前面板与框图如上。
3.在前面板上的graph上用快捷菜单选择TransposeArray。
因为AISampleChannel功能返回的2D数组是每列反映一个通道的电压,而在一般情况下graph图形是行对列,所以需要对数组做一次转置,以使Y轴表示电压值。
4.在框图上将起始时刻、实际采样周期和采样数据使用Bundle功能捆绑成一个数组,送给了graph。
注意捆绑的顺序是I32、SGL和数组,如果变为I32、数组和SGL,可能出错。
5.设置scan速率、通道号、每通道样本数如前面板所示。
6.运行该程序。
7.保存为AcquireMultipleChannels.vi。
8.该程序是无缓冲、软件触发的。
练习5-2 结束
多通道I/O的一个重要限制必须说明。
如果对它设置一个高scan速率,并且从每个通道实时观察数据(不是由数组观察),你或许会看到通道之间的相位延迟。
这是为什么?
大多数卡在一个时刻只能执行一个A/D变换。
这就是为什么它被称为扫描:
输入端口的数据被依次数字化,每时刻一个通道。
延迟,或通道间的延迟,发生在每个通道样本之间。
默认的情况是通道间的延迟足够小,但是它与卡关系密切。
对直流或低频信号,这个相位延迟一般不是问题。
通道间的延迟远小于扫描周期,看起来每个通道的采样是同时的。
例如,通道间的延迟是微秒级的,而采样速率是1scan/sec。
但是对高频信号,延迟就必须引起注意,如果你关心信号的同步,测量就可能出现问题。
5.3.3中级AnalogI/O
上面介绍的简单AnalogI/O的基本局限是执行DAQ任务的庸余。
例如,你每一次调用AISampleChannel,都必须为特定类型的测量设置硬件,告诉它采样率等。
显然,如果你经常要采集大量的样本,你未必需要在每一次重复时都去设置测量。
中级AnalogI/O有更好的功能与灵活性,可以更有效地开发你的应用。
它的特点包括控制内部采样率,使用外部触发,执行连续外部触发等。
下面我们将仔细描述它的各种VI,你应该注意其大量输入、输出端子中的部分内容。
有效地使用这些VI只需要关注你需要的端子。
在大多数情况下,你不需要为在help中解释的端子的选项烦恼。
AIConfig对指定的通道设置模入操作,包括硬件、计算机内buffer的分配。
常用的端子有:
●Device——采集卡的设备号。
●Channel——指定模入通道号的串数组。
●Intputlimit——指定输入信号的范围达到调节硬件增益的目的。
●Buffersize——单位是scan,控制用于采集数据的AIConfig占用计算机内存的大小。
●Interchanneldelay——对扫描间隔设置通道间的偏差。
AIStart启动带缓冲的模入操作。
它控制数据采集速率,采集点的数目,及使用任何硬件触发的选择。
它的两个重要输入是:
●Scanrate(scan/sec)——对每个通道采集的每秒扫描次数。
●Numberofscanstoacquire——对通道列表的扫描次数。
?
AIRead——从被AIConfig分配的缓冲读取数据。
它能够控制由缓冲读取的点数,读取数据在缓冲中的位置,以及是否返回二进制数或标度的电压数。
它的输出是一个2维数组,其中每一列数据对应于通道列表中的一个通道。
AISingleScan——返回一个扫描数据。
它的电压数据输出是由通道列表中的每个通道读出的电压数据。
使用这个VI仅与AIConfig有关联,不需要AIStart和AIRead。
AIClear——清除模入操作、计算机中分配的缓冲、释放所有DAQ卡的资源,例如计数器。
当你设置一个模入应用时,首先使用的VI总是AIConfig。
AIConfig会产生一个taskID和Errorcluster(出错信息簇)。
所有别的模入VI接受这个taskID以识别操作的设备和通道,并且在操作完成后输出一个taskID。
因为taskID是一个输入并向另一个模入VI输出,所以该参数形成了DAQVI之间的一个关联数据。
AOConfig对指定的通道设置模出操作,包括硬件、计算机内buffer的分配。
●Channel——指定模出通道号的串数组。
●Limitsettings——指定输出信号的范围。
●taskID——用于所有后来的模出VI以规定操作的设备和通道。
AOWrite以电压数据的方式写数据到模出数据缓冲区。
它是一个2维数组,其中每一列数据对应于通道列表中的一个通道。
AOStart启动带缓冲的模出操作。
Updaterate(scan/sec)是每秒发生的更新数的个数。
如果你将0写入Numberofbufferiteerations端子,则卡将连续输出给缓冲,直到运行AOClear功能。
AOWait在返回之前一直等待直到波形发生任务完成。
使用这个VI仅与AOConfig有关联,不需要AOStart和AORead。
AOClear——清除模出操作、计算机中分配的缓冲、释放所有DAQ卡的资源,例如计数器。
当你设置一个模出应用时,首先使用的VI总是AOConfig。
AOConfig会产生一个taskID和Errorcluster(出错信息簇)。
所有别的模出VI接受这个taskID以识别操作的设备和通道,并且在操作完成后输出一个taskID。
因为taskID是一个输出并向另一个模出VI输出,所以该参数形成了DAQVI之间的一个关联数据。
5.4采样注意事项
5.4.1 采样频率的选择
对输入信号的采样率是最重要的参数之一。
采样率决定了模数转换(A/D)的频率。
较高的采样率意味着在给定时间内采集更多的点,所以可以更好地还原原始信号。
而采样率过低则可能会导致信号畸变。
下图显示了一个信号分别用充分的采样率和过低的采样率进行采样的结果。
采样率过低的结果是还原信号的频率看上去与原始信号不同。
这种信号畸变叫做混频(alias)。
充分采样率时的信号
过低采样率的采样结果
根据奈奎斯特定理,为了防止发生混频,最低采样频率必须是信号频率的两倍。
对于某个给定的采样率,能够正确显示信号而不发生畸变的最大频率叫做奈奎斯特频率,它是采样频率的一半。
如果信号频率高于奈奎斯特频率,信号将在直流和奈奎斯特频率之间畸变。
混频偏差(aliasfrequency)是输入信号的频率和最靠近的采样率整数倍的差的绝对值。
下图显示了这种现象。
假设采样频率fs是100HZ,,再假设输入信号还含有频率为25Hz,70Hz,160Hz和510Hz的成分,采样的结果会怎样呢?
低于奈奎斯特频率(fs/2=50Hz)的信号可以被正确采样。
而频率高于奈奎斯特的信号采样时会发生畸变。
例如,F1(25Hz)显示正确,而在分别位于30Hz、40Hz和10Hz的F2、F3和F4都发生了频率畸变。
计算混频偏差时需要用到下面这个等式:
混频偏差=ABS(采样频率的最近整数倍-输入频率),其中ABS表示“绝对值”,例如:
混频偏差F2=|100–70|=30Hz
混频偏差F3=|2*100–160|=40Hz
混频偏差F4=|5*100–510|=10Hz
实际信号的频率组成
采样后信号的频率组成和混频偏差
采样率应当设成多少?
您可能会首先考虑用DAQ板支持的最大频率。
但是,长期使用很高的采样率可能会导致没有足够的内存或者硬盘存储数据。
下图显示了采用不同的采样频率的效果。
在例a中,对一个频率为f的正弦波形进行采样,每秒采样数与每秒周期数相等,也就是一个周期采样一次,还原的波形出现了畸变,成了一个直流信号。
如果把采样率增大到每个周期采样四次,如例b所示,波形的频率提高了,频率畸变比原始信号要小(3个周期)。
例b中的采样率是7/4f。
如果把采样率增加到2f,那么转换后的波形具有正确的频率(与周期数相同),并可以还原成原始波形,如例c所示。
对于时域下的处理,可能需要您提高采样率以接近于原始信号。
通过把采样率提高到足够大,例如
fs=10f,或者每周期采样10次,就可以正确地复原波形,如例d所示。
各种采样率的效果
5.4.2 使用抗混频滤波器
根据上面的讨论我们已经了解到,采样率必须大于被采样信号的频率的两倍。
换句话说,信号的最高稳定频率必须小于或者等于采样频率的一半。
但是在实际应用中,怎样才能保证这一点呢?
即使已经确定被测的信号有一个最大的频率值,杂散信号(例如来自于输电线路或者当地广播电台的干扰)可能会带来比奈奎斯特频率高的频率。
这些频率很可能会混杂在需要的频率范围中,导致错误的结果。
为了保证输入信号的频率全部在给定范围内,需要在采样器和ADC之间安装一个低通滤波器(可以通过低频信号但是削弱高频信号的滤波器)。
因为它通过对高频信号(高于奈奎斯特信号频率)进行削弱,减少了混频信号的干扰,所以这个滤波器被称为抗混频滤波器。
这个阶段数据仍然处于模拟状态,所以抗混频滤波器是一个模拟滤波器。
一个理想抗混频滤波器如下图所示:
抗混频滤波器
它通过了所有需要的输入频率(低于f1),并过滤了所有不需要的频率(高于f1)。
但是,这样的滤波器实际上并不可能实现。
实际应用中的抗混频滤波器如图b所示。
它们通过所有低于f1的频率,并过滤所有高于f2的频率。
f1和f2之间的区域被称为过渡带(
transitionband),其中输入信号逐步减弱。
尽管您只希望通过所有频率低于f1的信号,但是过渡带中的信号仍然可能会导致混频。
所以,在实际应用中,采样频率应当大于过渡带的最高频率的两倍。
因而采样频率就将比输入频率的两倍还要大。
这是采用频率大于输入频率最大值的两倍的原因之一。
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!
]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 采集 Word