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