基于labview和声卡的数据采集系统设计内容摘要:

信号转换为模拟信号输出。 而声卡的基本工作流程则可以表现为以下几个步 骤:首先,通过麦克风或线路输入 (Line In)获取的音频信号通过 A/D 转换器转换成数字信号,送到计算机进行存储、滤波等处理。 再次,经过计算机处理的数字信号又通过总线以 PCM(脉冲编码调制 )方式送到 D/A 转换器,变成模拟的音频信号,进而通过功率放大器或线路输出 (Line Out)送到音箱等设备转换为声波。 而这次的数据采集系统就是用到了声卡工作的第一个步骤。 而在使用声卡前,又必须对使用的声卡的参数进行了解。 目前一般的声卡最高采样频率可达 96KHz;采样位数可达 16位甚至 32位。 声道数为 2,即立体声双声道,可 同时采集两路信号,需要时还可选用多路输入的高档声卡或配置多块声卡;每路输入信号的最高频率可达 KHz,输出 16 位的数字音频信号,而 16位数字系统的信噪比可达 96dB。 基 于声卡的虚拟仪器系统设计与实现 程序设计是不是需要有点流程图。 功能分析及说明。 还有,写论文最好不要用口头叙述事情的语言,最好采用论文的严格科学语言。 、系统设计所调用到的自定义子 VI及功能设计 VI 图 1 声音配置子 VI用户前面板 使用声卡进行数据采集前,必须对所要采集的数据提前对声卡进行相应的参数设置。 在图 1中,我们可以明确的看出声音配置子 VI 将要实现的功能。 在子该程序的前面板上,我们要从 6 个方面对参数进行设置,分别为:设备 ID(设备 ID是声音操作时使用的输入或输出设备。 通常,在大多数情况下都应选择默认值 0。 可选值的范围为 0到 n– 1,其中 n是计算机上输入或输出设备的个数。 )、采样模式(采样模式指定 VI每次采集一个样本(有限采样)或连续采样(连续采样)。 在有限采样模式下,写入每通道采样数指定的采样数之前,只调用 读取声音输入。 在连续采集模式下,可根据需要反复调用“读取声音输入”。 )、每通道采样数(即指定缓冲区中每通道的采样数量)、采样率 (S/s)(设置声音操作的采样率。 通常为 44100 S/s、 22050 S/s、 11025 S/s。 默认值为 22050 S/s。 )通道数(指定通道 的个数。 该输入可接受的通道数与声卡支持的通道数一致。 对于多数声卡, 1为单声道, 2为立体声。 )每采样比特数(指定每个采样的质量,以比特为单位。 分辨率通常是 16比特和 8比特。 默认值为 16。 ) 图 2 声卡配置子 VI图形代码框图 LabVIEW的框图就像我们平时使用的程序代码。 在图 2 中我们把前面板中的 6个需要设置的参数和一个设置完毕的停止按键一起放在了一个 While循环当中。 并在 While循环当中设置了一个定时系统且被设置为每 While循环采集一次。 所有采集到的 6个参数将会通过绑定簇变成一个参数。 最后传递给全局变量从而传递给其它的函数。 图 3 声音配置子 VI的图标 图标是 LabVIEW 特有的传递信息的标志。 LabVIEW的每一个图表代表着一个程序,它可以调用其他的 VI,也可以被其它的 VI所调用(这是这个程序就变成了一个子 VI)。 类似于 C语言中的函数定义或是库函数,可以在不同的场合灵活的对其进行调用。 数据采集系统子 VI 图 4 数据采集系统子 VI用户前面板 数据采集在整个系统的设计中有着举足轻重的作用。 数据采集的开端就在这里。 在用户前面板上,我们设置了两个按钮,一个是 停止按钮,用于停止对信号的输入;还有一个是保存按钮,用于对所采集到的数据进行保存。 最后还有一个波形图,它是用来显示输入的波形的,可以让操作者更加直观的观察到采集来的信号。 图 数据采集系统子 VI 图形代码框图 1 看似简单的用户前面板,其实并不简单。 幸好,强大的 LabVIEW软件平台为我们实现内置好了丰富的内置函数,方便我们的调用和使用。 在对图进行功能分析前,我们可以查看附件中的内容,先来了解一下在整个系统的设计中 中,我们所涉及到的一些强大的 LabVIEW 函数。 虽然使用到了大量的调用函数, 但这些都是 LabVIEW 自带的内置函数。 使用它们可以更好的缩短程序的开发周期,提高效率。 图 让我们可以很清晰看出数据采集的所有的工作流程。 在这张图中通过全局变量,程序把之前输入的声卡参数作为新的参考值提供给了配置声音输入 VI,并通过启动声音输入采集 VI、读取声音输入 VI、停止声音输入采集 VI 和 声音输入清零 VI 将采集到的信息显示在波形图上,并供操作人员观察。 同时,利用文件对话框 VI、写入并打开声音文件 VI、关闭声音文件 VI和写入声音文件 VI 对采集到的声音数据进行保存处理。 以备今后使用。 图 数据采集系统子 VI 图形代码框图 2 数据采集所需要的的数据并不是无限。 为此,我在程序中使用了 LabVIEW 的一个结构来解决这个问题。 Case 结构很好的解决了这个问题。 当没有按下保存按钮前( Case 的分支显示为“假”),采集到的数据将会不断地被保存在内存当中,直到按下保存按钮( Ca。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。