摘要本文主要描述的是基于MATLAB的一般声音信号的频谱分析过程包括:用电脑声卡录音、从WAV文件输入、从标准信号发生器输入;信号波形分析,包括幅值、频率、周期、相位的估计,以及统计量峰值、均值、均方值和方差的计算;信号频谱分析,频率、周期的估计,图形显示幅值谱、相位谱、实频谱、虚频谱和功率谱的曲线。关键词:MATLAB,频谱分析,误差目录前言..................................................................................................................................................1一、设计原理...................................................................................................................................21.1系统整体设计原理............................................................................................................21.2频谱分析原理....................................................................................................................31.3频谱图...............................................................................................................................41.4模块划分...........................................................................................................................4二、详细设计步骤...........................................................................................................................52.1语音信号的采集................................................................................................................52.2采样分帧............................................................................................................................62.3短时能量和短时平均幅度...............................................................................................62.4短时过零率........................................................................................................................82.5短时自相关函数................................................................................................................92.6语音信号的滤波..............................................................................................................11三、设计结果及分析.....................................................................................................................123.1语音信号的录入与打开..................................................................................................123.2时域信号的FFT分析与加噪后的波形比较..................................................................123.3滤波并比较滤波前后语音信号的波形..........................................................................143.4频率响应分析.................................................................................................................15总结................................................................................................................................................17参考文献.........................................................................................................................................18致谢................................................................................................................................................19附录................................................................................................................................................201前言随着软硬件技术的发展,仪器的智能化与虚拟化已成为未来实验室及研究机构的发展方向。虚拟仪器技术的优势在于可由用户定义自己的专用仪器系统,且功能灵活,很容易构建,所以应用面极为广泛。基于计算机软硬件平台的虚拟仪器可代替传统的测量仪器,如示波器、逻辑分析仪、信号发生器、频谱分析等。从发展史看,电子测量仪器经历了由模拟仪器、智能仪器到虚拟仪器,由于计算机性能的飞速发展,已把传统仪器远远抛到后面,并给虚拟仪器生产厂家不断带来连锅端的技术更新速率。目前已经有许多较成熟的频谱分析软件,如SpectraLAB、RSAVu、dBFA等。MATLAB是一个数据分析和处理功能十分强大的工程实用软件,他的数据采集工具箱为实现数据的输入和输出提供了十分方便的函数和命令。本文将给出基于声卡与MATLAB的声音信号频谱分析的设计原理与实现方法。2一、设计原理1.1系统整体设计原理1.语音信号的采集使用电脑的声卡设备采集一段语音信号,并将其保存在电脑中。2.语音信号的处理语音信号的处理主要包括信号的提取、信号的调整、信号的变换和滤波等。Ⅰ.语音信号的时域分析语音信号是一种非平稳的时变信号,它携带着各种信息。在语音编码、语音合成和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。Ⅱ.语音信号的频域分析信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。由于语音信号是随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。输出频谱是声道系统频率响应与激励源频谱的乘积。声道系统的频率响应及激励源都是随时间变化的。Ⅲ.语音信号加噪声在MATLAB中产生高斯白噪声非常方便,我们可以直接应用两个函数:一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。也可直接用randn函数产生高斯分布序列。Ⅳ.数字滤波器设计与滤波3图1系统整体流程图其中tin表示第n个过零点,yi为第i个采样点的值,Fs为采样频率。1.2频谱分析原理时域分析只能反映信号的幅值随时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频谱图的生成。而生成的主要方法主要用到DFT和FFT。对于给定的时域信号y,可以通过Fourier变换得到频域信息Y。Y可按下式计算ttfyjtfyfYNNiii])2sin()2cos([)(10101(1)式中,N为样本容量,Δt=1/Fs为采样间隔。采样信号的频谱是一个连续的频谱,不可能计算出所有的点的值,故采用离散Fourier变换(DFT),即1...,2,1,0,)(10/2NkteyfkYNNkjii(2)式中,Δf=Fs/N。但上式的计算效率很低,因为有大量的指数(等价于三角函数)信号采集信息采样信号分析信号滤波信号变换效果显示4运算,故实际中多采用快速Fourier变换(FFT)。其原理即是将重复的三角函数算计的中间结果保存起来,以减少重复三角函数计算带来的时间浪费。由于三角函数计算的重复量相当大,故FFT能极大地提高运算效率。1.3频谱图为了直观地表示信号的频率特性,工程上常常将Fourier变换的结果用图形的方式表示,即频谱图。以频率f为横坐标,|Y(f)|为纵坐标,可以得到幅值谱;以频率f为横坐标,argY(f)为纵坐标,可以得到相位谱;以频率f为横坐标,ReY(f)为纵坐标,可以得到实频谱;以频率f为横坐标,ImY(f)为纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过Fs/2的信号才能被正确采集,即Fourier变换的结果中频率大于Fs/2的部分是不正确的部分。即横坐标f∈[0,Fs/2]1.4模块划分模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户需求。在模块划分时应遵循如下规则:改进软件结构提高模块独立性;模块规模应该适中;深度、宽度、扇出和扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接口的复杂程度;设计单入口单出口的模块;模块功能应该可以预测。本着上述的启发式规则,对软件进行如图2所示的模块划分。图2频谱分析的模块划5二、详细设计步骤2.1语音信