基于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
因篇幅问题不能全部显示,请点此查看更多更全内容