基于声卡的数据采集实验报告

更新时间:2023-11-26 03:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中国石油大学(北京)

实 验 报 告

实验名称: 基于声卡的数据采集 班级:过程10-4班 学号:2010063124 姓名: 任团结

基于声卡的数据采集实验报告

一、实验目的

1、掌握Labview软件的基本使用方法;

2、掌握利用Labview功能模板进行虚拟仪器设计; 3、了解声卡的工作原理

4、学习用Labview进行数据采集的基本过程。

5、利用Labview8.2软件设计并实现一台虚拟数字录音机,完成音频数据采集、显示、保存、处理、回放的功能。通过练习使用Labview设计数字录音机。 二、实验仪器和设备

1. 计算机1台、MIC 1只、耳机1只 2.编程环境 WindowsXP操作系统 3. Labview实验软件 1套 三、实验原理

1、 声卡的工作特点

本设计采取的方法是在LabVIEW虚拟仪器环境中利用Windows自带声卡采集语音信号。从数据采集的角度来看,PC声卡本身就成为一个优秀的数据采集系统,它同时具有A/D和D/A转换功能,不仅价格低廉,而且兼容性好、性能稳定、灵活通用,软件特别是驱动程序升级方便。如果测量对象的频率在音频范围(20 Hz-20 kHz)内,而且对采样频率等指标又没有太高要求,就可以考虑使用声卡。而语音音频范围一般在5kHz以内,满足声卡采集的要求。在采集语音信号前,要检查声卡的设置,保证已配置的输入功能(录音功能)不处于静音状态。主机通过总线将数字化的声音信号送到数模转换器(D / A),将数字信号变成模拟的音频信号同时,又可以通过模数转换器(A/D)将麦克风或CD的输入信号转换成数字信号,送到计算机进行各种处理。衡量声卡的技术指标包括复音数量、采样频率、采样位数(即量化精度)、声道数、信噪比(SNR)和总谐波失真(THD)等。复音数量代表声卡能够同时发出多少种声音,复音数越大,音色就越好,播放声音时可以听到的声部越多、越细腻;采样频率是每秒采集声音样本的数量,采样频率越高,记录的声音波形越准确,保真度就越高,但采样数据量相应变大,要求的存储空间也越多。采样位数是指将声音从模拟信号转化为数字信号的二进制位数(bit) ,位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高,例如16位声卡把音频信写的大小分为216 =65536个量化等级来实施上述转换。常用声卡可对音频信号实现双声道16位、高保真的数据采集,最高采样率可达44.1k H z,具有较高的采样频率与精度。对于许多科学实验和工程测量:来说,声卡对信号的量化精度和采样率都是足够高的,甚至优于一些低档的数据采集卡性能。

2、 LabVIEW采集语音信号

LabVIEW中提供了一系列使用Windows底层函数编写的与声卡有关的函数.由于使用Windows底层函数直接与声卡驱动程序打交道,因而封装层次低,速

度快,而且可以访问、采集缓冲区中任意位置的数抓,具有很大的灵活性,能够满足实时不间断采集的需要。在LabVIEW中,利用Windows声卡对语音信写进行采样,SI Config 设置声卡中与数据采集相关的硬件参数,将device设置为0,采样位数为单声道16位,采样频率11025Hz,缓冲区长度为默认值8192字节 ;SI Start通知声卡开始采集外部数据;SI Read将数据缓冲区中的内容读取到用户程序的数组中,一次可读取缓冲区长度的一半((4096字节);SI Stop通知声卡停止采集外部数据;SI Clear完成最终的清理工作,释放请求的一系列系统资源,Sound wave显示语音波形、While Loop有两个语句,第一个语句“Wait for Record Button”是在程序运行后通知开始录入语音数据,第二个语句主要是为了能够连续的读入语音数据,在此语句中,“Case structure” 在True情况下执行停止录音( False为默认值),移位寄存器是为了读出数据的连续性,循环利用120ms延时以降低循环的频度,减少CPU负担。 四、实验步骤

(一)、实现声卡声音信号的采集并保存

利用【声音】函数选板的【输入】和【文件】子选板可以编程实现对声音信号的采集并保存。 操作步骤:

1、进入LabVIEW 8.20的启动界面后,执行【文件】/【新建VI】菜单命令,

创建一个新的VI。

2、切换到前面板设计窗口下,放置一个“波形图”控件,用于显示采集到

的声音,并设置波形图控件的标签为“声音信号波形”,再放置一个“确定按钮”和一个“停止按钮”,并分别更名为“声音采集”和“停止采集”,用于启动和停止声音采集。

3、切换到程序框图设计窗口下,在设计区放置一个“打开声音文件”函数

节点,并将其下拉选项的值设为“写入”。

4、在设计区放置一个“配置声音输入”节点、一个“读取声音输入”节点、

一个“写入声音文件”节点、一个“声音输入清零”节点,一个“关闭声音文件”节点,两个“While循环”方框节点和一个“条件结构”节点,并按错误!未找到引用源。连线。

5、切换到前面板设计窗口下,调整各个控件的位置。

6、设置“路径”输入框为“e:\\soundtest.wav”。单击工具栏上程序运行按钮,

点击【声音采集】按钮,对着麦克风放一段音乐,即可将声音数据写入到指定的文件“e:\\soundtest.wav”中去。

7、在波形图控件中可以查看声音信号的波形,如图表一所示。

单击【停止采集】按钮,结束程序运行,可在E盘根目录下看到声音文件“soundtest.wav”。

图表 1声卡声音信息采集及保存实验原理图

图表 2声卡声音信息采集及保存程序运行图

(二)实现对保存的声音信号进行读取、播放并进行频谱分析

利用【声音】函数选板的【输出】和【文件】子选板,加上【信号分析】选板的“频谱测量”节点可以实现对保存的声音信号进行读取、播放并进行频谱分析。 操作步骤:

1、进入LabVIEW 8.20的启动界面后,执行【文件】/【新建VI】菜单命令,

创建一个新的VI。

2、切换到前面板设计窗口下,放置一个“确定按钮”,并更名为“分析播放”。 3、切换到程序框图设计窗口下,在设计区放置一个“打开声音文件”函数节点,并将其下拉选项的值设为“读取”。

4、在设计区放置一个“读取声音文件”节点、一个“关闭声音文件”节点、

一个“播放波形”节点、一个“While循环”节点、一个“条件结构”节点和两个“频谱测量”节点,并配置两个“频谱测量”节点使其分别测量“幅度(峰值)”和“功率谱”。

5、按错误!未找到引用源。连线。

6、切换到前面板设计窗口下,调整各个控件的位置。

7、设置“路径”输入框为“e:\\soundtest.wav”。单击工具栏上程序运行按钮,

点击【分析播放】按钮, 系统会读取声音文件“e:\\soundtest.wav”,可以

听到来自电脑扬声器的声音。

8、在波形图控件中可以查看声音信号的频谱波形和功率谱波形,如图表3

所示。

图表 3声音信号读取、播放、频谱分析实验原理图

图表 4声音信号读取、播放、频谱分析程序运行图

(三)、实现对保存的声音信息进行滤波处理后再播放和进行频谱分析

要实现对保存的声音信息进行滤波处理后再播放和进行频谱分析,只要在(二)的基础上添加【信号分析】选板的“滤波器”节点就可以完成,另外为了加强系统的功能,本录音机实现了既可以对原信号进行频谱分析,也可以对处理后的信号进行频谱分析。

操作步骤:

1、 打开步骤(二)的VI文件,切换到前面板设计窗口下,添加一个“垂

直摇杆开关”,并更名为“播放前是否滤波”。

2、

切换到程序框图设计窗口下,在设计区放置一个“滤波器”节点,并设置其滤波器类型为“带通”,再放置一个“条件结构”节点,并按照图表3连线。

切换到前面板设计窗口下,调整各个控件的位置。

设置“路径”输入框为“e:\\soundtest.wav”。单击工具栏上程序运行按

3、 4、

本文来源:https://www.bwwdw.com/article/z0nt.html

Top