欢迎来到天天文库
浏览记录
ID:61754044
大小:181.26 KB
页数:5页
时间:2021-03-19
《语音信号处理实验报告实验二.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、通信工程学院12级1班罗恒2012101032实验二基于MATLAB的语音信号频域特征分析一、实验要求要求根据已有语音信号,自己设计程序,给出其倒谱、语谱图的分析结果,并根据频域分析方法检测所分析语音信号的基音周期或共振峰。二、实验目的信号的傅立叶表示在信号的分析与处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅立叶分析方法能完善地解决许多信号分析和处理问题。另外,傅立叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项红物理现象。 由于语音信号是随着时间变化的,通常认为,
2、语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。输出频谱是声道系统频率响应与激励源频谱的乘积。声道系统的频率响应及激励源都是随时间变化的,因此一般标准的傅立叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。三、实验设备1.PC机; 2.MATLAB软件环境;四、实验内容1.上机前用Matlab语言完成程序编写工作。2.程序应具有加窗(分帧)、绘制曲线等功能。3.上机实验时先调试程序,通过后进行信号处理。4.对录入的语音数据进行处理,并显示运行
3、结果。5.依次给出其倒谱、语谱图的分析结果。6.根据频域分析方法检测所分析语音信号的基音周期或共振峰。五、实验原理及方法1、短时傅立叶变换由于语音信号是短时平稳的随机信号,某一语音信号帧的短时傅立叶变换的定义为:其中w(n-m)是实窗口函数序列,n表示某一语音信号帧。令n-m=k',则得到于是可以得到假定则可以得到同样,不同的窗口函数,将得到不同的傅立叶变换式的结果。由上式可见,短时傅立叶变换有两个变量:n和ω,所以它既是时序n的离散函数,又是角频率ω的连续函数。与离散傅立叶变换逼近傅立叶变换一样,如令ω=2πk/N,则得离散的短
4、时傅立叶吧如下:2、语谱图水平方向是时间轴,垂直方向是频率轴,图上的灰度条纹代表各个时刻的语音短时谱。语谱图反映了语音信号的动态频率特性,在语音分析中具有重要的实用价值。被成为可视语言。语谱图的时间分辨率和频率分辨率是由窗函数的特性决定的。时间分辨率高,可以看出时间波形的每个周期及共振峰随时间的变化,但频率分辨率低,不足以分辨由于激励所形成的细微结构,称为宽带语谱图;而窄带语谱图正好与之相反。宽带语谱图可以获得较高的时间分辨率,反映频谱的快速时变过程;窄带语谱图可以获得较高的频率分辨率,反映频谱的精细结构。两者相结合,可以提供带两
5、与语音特性相关的信息。语谱图上因其不同的灰度,形成不同的纹路,称之为“声纹”。声纹因人而异,因此可以在司法、安全等场合得到应用。3、复倒谱和倒谱复倒谱是x(n)的Z变换取对数后的逆Z变换,其表达式如下:倒谱c(n)定义为x(n)取Z变换后的幅度对数的逆Z变换,即在时域上,语音产生模型实际上是一个激励信号与声道冲激响应的卷积。对于浊音,激励信号可以由周期脉冲序列表示;对于清音,激励信号可以由随机噪声序列表示。声道系统相当于参数缓慢变化的零极点线性滤波器。这样经过同态处理后,语音信号的复倒谱,激励信号的复倒谱,声道系统的复倒谱之间满足
6、下面的关系:由于倒谱对应于复倒谱的偶部,因此倒谱与复倒谱具有同样的特点,很容易知道语音信号的倒谱,激励信号的倒谱以及声道系统的倒谱之间满足下面关系:浊音信号的倒谱中存在着峰值,它的出现位置等于该语音段的基音周期,而清音的倒谱中则不存在峰值。利用这个特点我们可以进行清浊音的判断,并且可以估计浊音的基音周期。4、基因周期估计浊音信号的倒谱中存在峰值,它的出现位置等于该语音段的基音周期,而清音的倒谱中则不存在峰值。利用倒谱的这个特点,我们可以进行语音的清浊音判决,并且可以估计浊音的基音周期。首先计算语音的倒谱,然后在可能出现的基因周期附
7、近寻找峰值。如果倒谱峰值超过了预先设置的门限,则输入语音判断为浊音,其峰值位置就是基因周期的估计值;反之,如果没有超出门限的峰值的话,则输入语音为清音。5、共振峰估计对倒谱进行滤波,取出低时间部分进行进行逆特征系统处理,可以得到一个平滑的对数谱函数,这个对数谱函数显示了输入语音段的共振峰结构,同时谱的峰值对应于共振峰频率。通过此对数谱进行峰值检测,就可以估计出前几个共振峰的频率和强度。对于浊音的声道特性,可以采用前三个共振峰来描述;清音不具备共振峰特点。六、程序及结果%倒谱求取基音周期clc;clear;[x,fs]=wavrea
8、d('C:UsersMLDesktop语音信号');aa=x(1:16000);%对a进行截短处理,取前2st1=1:length(aa);t=(1:length(aa))/fs;frameSize=256;%帧长startIndex=ro
此文档下载收益归作者所有