基于 LabVIEW 的声卡信号采集分析系统设计
0704115 班 02 号
摘要:要在 LABVIEW 环境中进行对声卡编程,就是运用常用周期信号及测试领域
特殊信号的双通道模拟输出。由于专用数据采集卡成本比较昂贵、而且和计算机兼容性
比 较 差 等 缺 点 , 这 个 论 文 就 是 应 用 性 能 良 好 、 价 格 低 廉 的 计 算 机 声 卡 设 计 一 套 基 于
LabVIEW 的信号采集分析系统。该系统具有双通道、高保真、22K 甚至 44KHz 的采样率,
实现了音频信号的实时采集、实时存储、回放、信号分析(时域分析和频域分析)等多
种功能。实验结果表明:该设计方案具有设计简便、成本低、通用性高、扩展性好、界
面大方简洁等优点,可广泛应用于工程测量和科学实验室等环境。
关键词:声卡;数据采集;虚拟仪器;LabVIEW ;
引言
数据采集是信号分析与处理的一个重要环节,在许多工业控制与生产状态监控中,
都需要对各种物理量进行数据采集与分析。但是,专用数据采集卡的价格一般比较昂贵,
而我们 PC 机的声卡就是一个很好的双通道数据采集卡。实际测量中,在满足测量要求的
前提下,可以充分利用计算机自身资源,完成数据采集任务,从而节省成本。
虚拟仪器是基于计算机的软硬件测试平台。虚拟仪器技术的优势在于可由用户定义
自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。目前应用最广、发
展最快、功能最强的图形化软件集成开发环境是美国国家仪器公司的创新软件产品[1]。
它是将仪器装入计算机中, 以通用的计算机硬件及操作系统为依托, 可以实现各种仪器
的功能。
LabVIEW 是一种图形化编程语言,广泛应用于工业界、学术界和研究实验室,主要应
用于仪器控制、数据采集、数据分析、数据显示等领域,适用于多种不同的操作系统平台。
与传统 C、C++等编程语言不同,LabView 采用强大的图形化语言编程,面向测试工程师而
非专业程序员,编程方便,人机交互界面直观友好,具有强大的数据可视化分析和仪器控
制能力等特点[2]。
1 声卡信号采集系统总体设计方案
声卡采集系统原理框图如下图 1 所示。它主要由声源、信号调理模块、计算机声卡
以及安装于计算机机上的 LabVIEW 软件等几部分组成。
图 1 声卡采集系统原理框图
工作过程为:输入时,测试信号首先经过信号调理电路,利用 PC 机声卡的麦克风输
入(mic in)或线路输入(line in)作为信号的输入端口,将获取到的模拟音频信号经
过左右两个通道和 A/D 转换后送入计算机,通过 LabVIEW 编写的采集程序进行各种处理
和保存;输出时,经过采集系统处理的数据通过总线将数字化的信号以 PCM 方式送到 D/A
转换器,编程模拟的音频信号由线路输出(line out)端口通过耳机或音响转换为音波
播放出来。
信号调理电路:在信号进入声卡之前必须经过信号调理,主要包括信号的放大、滤
波、隔离和线性化处理,以使其能够被声卡正确的识别。声卡的麦克风(mic in)输入
端具有高增益放大器,会使得信号产生较大失真,所以选择线路(line in)输入信号时,
其输入电压应为-1~+1V。
声卡:计算机的声卡作为数据采集卡,其 A/D 转换功能已经成熟,而且计算机无需
添 加 额 外 配 件 便 能 完 成 所 有 音 频 信 号 的 采 集 功 能 , 具 有 价 格 低 廉 、 采 样 精 度 高 , 与
LabView 结合编程简单等优点,因此,利用声卡可以构成一个较高采样精度、中等采样
频率、灵活性好的信号采集系统。
声卡主要技术指标有采样位数、采样频率、频率范围和频率响应、基准电压等。
(1)采样位数:采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析
度就越高,录制和回放的声音就越真实。如今市面上所有的主流产品都是 16 位的声卡,
而一般的数据采集卡大多也才有 12 位,因此,声卡相较于常用的数据采集卡毫不逊色
[3]。
(2)采样频率:采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频
率越高声音的还原就越真实越自然。在当今的主流民用声卡上,采样频率一般共分为 8
KHz 、11.025KHz、22.05KHz 和 44.1KHz 四个等级,少数可以达到 48 KHz 。对于 20Hz~
20KHz 范围内的音频信号,如果采用 48 KHz 采样频率,虽然理论上是可行的,但是效果
已经不是最好。因而使用声卡的局限性就是不允许用户在最高采样率下随意设定采样频
率。对于高于 48KHz 的采样频率人耳已无法辨别出来了,因此没有实用价值。
(3)频率范围和频率响应:前者是指音响系统能够回放的最低有效回放频率与最高
有效回放频率之间的范围;后者是指将一个以恒电压输出的音频信号与系统相连接时,
音箱产生的声压随频率的变化而发生增大或衰减、相位随频率而发生变化的现象。以声
卡作为虚拟测试仪器的硬件设备必须对其频率特性有所了解。本系统所用计算机主板集
成声卡是 Reaktek 的 ALC880 Codec,根据其性能指标,设置采样率为 44.1KHz,采样位
数为双通道,采样比特数为 16 位,以保证采样时的干扰较小、波形稳定[4]。
(4)基准电压:声卡没有基准电压,因此无论是 A/D 还是 D/A 转换器,都需要用户
参照基准电压进行标定[5]。
2 声卡信号采集系统设计实现
LabVIEW 软件是一种基于图形语言编程的可视化软件开发平台,与 VC,VB 等其他可
视化编程语言相比,其函数库丰富、编程简单直观、调试方便,而且界面开发简单,界
面风格与传统仪器相似。LabVIEW 是一个外观和操作能模仿实际的仪器的程序开发环境,
类似于 C、BASIC 等编程语言。但 LabVIEW 的特点在于,它使用图形化编程语言 G 在流程
图中创建源程序,而非使用基于文本的语言来产生源程序代码。LabVIEW 还整合了诸如
满足 GPIB、VXI、USB、RS-232 和 RS-485 以及数据采集卡等硬件通讯的全部功能。内置
了便于 TCP/IP、Active X 等软件标准的库函数。虽然 LabVIEW 是一个通用编程系统,但
是它也包含了数据采集和仪器控制等特别设计的函数库和开发工具。由于 LabVIEW 所使
用的术语、图标和概念都是技术人员、科学家、工程师所熟悉的,故而即使用户没有多
少编程经验,同样也能利用 LabVIEW 来开发自己的应用程序[6]。
以 LabVIEW 为基础的本声卡信号采集系统主要完成了信号采集、存储、回放和频域
分析等功能。本设计对于信号采集如此多的功能采用了分模块显示设置,这样使得主程
序前面板简单明了,且功能齐全,方便了用户的操作。
2.1 虚拟示波器的设计
虚拟示波器的前面板是应该根据实际中的仪器面板以及该仪器所要实现的各种功能
进行设计的程序交互式图形化用户界面。根据计算机声卡的实际特性,将声卡设置为双
通道、44.1kHz 采样频率、16 位采样比特数、连续采样等,如图 2 所示。本设计根据实
际显示需要,设计的显示前面板如图 3 所示,该虚拟示波器界面实时显示了所采集歌声
的实时信号。同时,实时显示界面的示波器属性设置为 X、Y 轴均设置为“自动调整标尺”,
从而保证无论信号幅值如何改变,总可以在纵坐标上是清晰显示,这样不仅方便用户操
作,而且观察方便。
图 2 声卡参数设置
图 3 实际采集音频信号实时显示
图 4 虚拟示波器后面板程序
虚拟示波器主要是对声卡采集音频信号的时域实时显示,其后面板程序主要使用
while 循环结构实现数据实时显示和数据实时存储,实际后面板如图 4 所示。
2.2 虚拟数据分析仪设计
数据分析仪主要包括数据回放、信号参量、幅度相位谱和功率谱的测量等。数据回
放主要是将已存储的信号重新读取然后进行分析;数据信号参量测量主要从时域上对信
号的周期平均值、周期均方值、峰峰值、均值等测量;幅度相位谱和功率谱主要是从频
域上对回放信号的幅度、相位以及功率进行测量。
对手动保存的历史采样信号文件,通过历史数据回放功能,可以逐块地由软件象采
集真实数据一样,重新由软件显示、处理;由此可以重现试验过程、检验各种功能、验
证用户的各种设置;在软件模块中,用户可以进一步对 LabVIEW 采集的数据进行进一步
分析、处理;历史数据回放功能能让用户在试验前就调试程序、在试验后反复用试验数
据验证,即用实际数据仿真试验,减少试验成本、重现关键试验。历史波形回放程序框
图如图 5 所示。
图 5 波形回放后面板程序
时域分析是一种直接在时间域中对系统进行分析的方法,具有直观、准确的优点,
可以提供数据采集系统时间响应的全部信息。
图 6 虚拟数据分析仪框图程序
频域分析是通过傅里叶变换将时域信号变换到频域,其主要是了解信号的频谱成分
以及各种成分的强度。本设计主要实现了对采集信号的幅度谱、相位谱和功率谱分析等
功能。实际程序如图 6 所示。其中,对信号加窗时,使用矩形窗将信号突然截断,在频
域上造成很宽的、原信号中不存在的附加频率成分,即有限化带来的泄露问题。为了防
止采集信号发生泄露,对所采集信号进行加窗处理,系统选择了汉宁窗。虚拟分析仪的
界面如图 7 所示,该图显示为实际采集音频信号的 FFT 变换频谱。
图 7 虚拟频谱分析仪界面
3 结束语
利用计算机声卡代替昂贵的数据采集卡采集数据,以图形化编程语言的虚拟仪器软
件 LabVIEW 为开发工具,充分利用计算机强大的信息处理能力和 LabVIEW 模块化编程技
术,实现了常见音频信号的实时采集、显示、存储,回放以及分析等功能。其有效的利
用了计算机资源,节约了数据采集成本,易于构建和升级,并且界面友好,操作简单,
成本较低,易于实现,不仅可以应用于科研试验,而且可以应用于检测车辆等方面,具
有比较广阔的应用前景。
参考文献
[1] National Instruments. LabVIEW User Manual [M]. Texas: National
Instruments, 2003.
[2] 陈锡辉.LabVIEW 8.20 程序设计从入门到精通[M].北京:清华大学出版社,2007
[3] 王珍宁,吴先球,张诚,陈俊芳.基于声卡的远程数据采集[J].微计算机信息(测
试自动化),2007,23(4):141~142.
[4] 周爱军,马海瑞.基于声卡的 LabView 数据采集与分析系统设计[J].微计算机
信息,2005,21(9):108~110.
[5] 徐继宁,程志强.基于声卡的虚拟信号发生器设计与实现[J].工业控制与计算
机,2007,20(2):72~73.
[6] 周林,殷侠等.数据采集与分析技术[M].西安电子科技大学出版社,2005