一、设计任务与要求
本次设计的目标是在查找和阅读大量文献的基础上,学习和研究声音信号分析,声卡和LabVIEW的基本理论及其在实际应用中的主要解决方法,达到符合实际应用的工程要求。这个声音信号采集分析处理器可以提供更便于操作,通用性更强的实时信号分析系统,并且以计算机本身的声卡代替专用的数据采集卡进行数据采集,不仅价格低廉,开发简单,无需添加任何ADC和DAC硬件,即可将一台计算机变成一台集声音信号的实时采样分析,信号发生,信号存储等多功能于一体的分析系统,而且系统灵活性更强,可根据被测对象进行功能扩展,实现用户自定义功能的分析系统,提升分析效率。在LabVIEW平台上完成信号发生、信号分析和人机交互界面设计,实现了声音信号的滤波、频谱分析、功率谱、幅度普和相位谱分析等多种功能。
二、设计总体框图
图 1 设计总框图
三、声卡特性及其参数(一)声卡的作用
从数据采集的角度来看,声卡是一种音频范围内的数据采集卡,是计算机与外部的模拟量环境联系的重要途径。声卡的主要功能包括录制与播放、编辑和处理、MIDI接口三个部分。
(二)声卡的工作原理
声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经过DSP音效芯片的处理,将该数字信号转换为模拟信号输出。输入时,麦克风或线路输入(Line In)获取的音频信号通过A/D转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以PCM(脉冲编码调制)方式送到D/A转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(Line Out)送到音箱等设备转换为声波。
(三)声卡的硬件结构
图2是一个声卡的硬件结构示意图。一般声卡有4~5个对外接口。
图 2 声卡的硬件结构
声卡一般有Line In 和MicIn 两个信号输入,其中Line In为双通道输入,MicIn仅作为单通道输入。后者可以接入较弱信号,幅值大约为0.02~0.2V。声音传感器(采用通用的麦克风)信号可通过这个插孔连接到声卡。若由MicIn 输入,由于有前置放大器,容易引入噪声且会导致信号过负荷,故推荐使用Line In ,其噪声干扰小且动态特性良好,可接入幅值约不超过1.5V的信号。
另外,输出接口有2个,分别是WaveOut和SPK Out。WaveOut(或Line Out)给出的信号没有经过放大,需要外接功率放大器,例如可以接到有源音箱;SPKOut给出的信号是通过功率放大的信号,可以直接接到喇叭上。这些接口可以用来作为双通道信号发生器的输出。
(四)采样位数
采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实。我们首先要知道:电脑中的声音文件是用数字0和1来表示的。所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。
声卡的位是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。8位代表2的8次方——256,16位则代表2的16次方——64。比较一下,一段相同的音乐信息,16位声卡能把它分为64个精度单位进行处理,而8位声卡只能处理256个精度单位,造成了较大的信号损失,最终的采样效果自然是无法相提并论的。位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高。
(五)采样频率
每秒钟采集声音样本的数量。采集频率越高,记录的声音波形就越准确,保真度就越高。但采样数据量相应变大,要求的存储空间也越多。目前,声卡的最高采样频率是44.1KHz,有些能达96KHz。一般将采样频率设为4挡,分别是44.1KHz、22.05KHz、11.025KHz、8KHz。
(六)缓冲区
与一般数据采集卡不同,声卡面临的D/A和A/D任务通常是连续的。为了在一个简洁的结构下较好地完成某个任务,声卡缓冲区的设计有其独到之处。为了节省CPU资源,计算机的CPU采用了缓冲区的工作方式。在这种工作方式下,声卡的A/D、D/A都是对某一缓冲区进行操作。一般声卡使用的缓冲区长度的默认值是8192字节,也可以设置成8192字节或其整数倍大小的缓冲区,这样可以较好地保证声卡与CPU的协调工作。声卡一般只对20Hz~20KHz的音频信号有较好的响应,这个频率响应范围已经满足了音频信号测量的要求。
四、系统程序设计
(一)labview中有关声卡介绍
利用声卡作为声音信号的DAQ卡,可以方便快捷地创建一个采集声音信号的VI。与声音信号相关的函数节点位于程序框图下【函数】选板下【编程】函数选板的【图形与声音】函数子选板的【声音】函数选板的各子选板,如图3、4、5所示。
图 3 声音输入子面板
图 4 声音输出子面板
图 5 声音文件子面板
下面主要介绍【声音】/【输入】控件选板中相关控件的作用。
配置声音输入:配置声音输入设备(声卡)参数,用于获取数据并且将数据传送至缓冲区。
启动声音输入采集:开始从设备上采集数据,只有停止声音输入采集已经被调用时,才需要使用该VI。
声音输入清零:停止声音采集,清除缓冲区,返回到任务的默认状态,并且释放与任务有关的资源。
配置声音输出:用于配置声音输出设备的参数,使用“写入声音输出”VI将声音写入设备。
写入声音输出:将数据写入声音输出设备,如要连续写入,必须使用配置声音输出VI配置设备,必须手动选择所需多态实例。
声音输出清零:将任务返回到默认的未配置状态,并清空与任务相关的资源,任务变为无效。
(二)声音信号的采集
要实现对声音信号的采集,首先需要用麦克的声音采集功能实现声音信号到电信号的转换,之后通过LabVIEW的配置声音输入子VI和写入声音文件子VI来完成声音信号的采集。 声音信号的采集程序框图如图6所示。 声音信号采集前面板设计如图7所示。
图 6 声音信号的采集程序框图
图 7 声音信号采集前面板设计
(三)声音信号的分析
频谱分析是通过傅里叶变换把时域信号变换到频域,对采集声音文件的即时频谱分析,需要运用LabVIEW中的频谱测量控件,通过使用频谱测量控件对其进行FFT分析,这样时域信号就被转换为频域信号。采集声音信号的频谱分析如图8所示。
图 8 采集声音信号的频谱分析
使用LabVIEW中的FFT Power Spectrum.vi完成功率谱分析,使用FFT Spectrum(Mag-Phase).vi得到频域信号的幅值普和相位谱。同时,为了防止采集信号发生泄露,对所采集信号进行加窗处理。采集声音文件加窗后的功率谱和频谱分析如图9所示。
图 9 采集声音文件加窗后的功率谱和频谱分析
信号进行加窗处理后的信号分析前面板如图10所示。
图 10 信号分析前面板
(四)报表生成
生成报表的框图如图11所示。生成结果如图12所示。
图 11 生成报表
图 12 生成报表结果
(五)运行结果
将程序调节为单通道采集、44.1kHz采样频率、连续采样,开始运行程序。可以看到夹杂各种干扰的原始信号、滤波后的平滑信号、频谱分析信号,以及功率谱和加窗后的频谱分析。运行结果如图13、14所示。
图 13 运行结果1
图 14 运行结果2
全部资料51hei下载地址:
声音信号采集处理器.zip
(84.66 KB, 下载次数: 231)
|