正文描述:《《廖盼盼短时分析》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、设计报告课程名称语音信号处理任课教师姚红设计题目语音信号的短时分析班级10级电子信息工程一班姓名廖盼盼学号1005074021日期2013-11-4用Matlab编程实现语音信号的短时分析一、目的1.在理论学习的基础上,进一步地理解和掌握语音信号短时分析的意义,短时时域分析的基本方法。2.进一步理解和掌握语音信号短时平均能量函数及短时平均过零数的计算方法和重要意义。二、原理及方法一定时宽的语音信号,其能量的大小随时间有明显的变化。其中清音段(以清音为主要成份的语音段),其能量比浊音段小得多。短时过零数也可用于语音信号分析中,发浊音时,其语音能量约集中
2、于3kHz以下,而发清音时,多数能量出现在较高频率上,可认为浊音时具有较低的平均过零数,而清音时具有较高的平均过零数,因而,对一短时语音段计算其短时平均能量及短时平均过零数,就可以较好地区分其中的清音段和浊音段,从而可判别句中清、浊音转变时刻,声母韵母的分界以及无声与有声的分界。这在语音识别中有重要意义。三、实验步骤(1)用cooledit录了一段音,是我自己说的。采样率为8KHZ,量化精度为16比特线性码。(2)利用设计方案中给定的公式分别编程计算这段语音信号的短时能量、短时平均幅度、短时过零率,然后分别画出它们的曲线;(3)然后画出短时零能比曲线
3、。(4)根据上述结果判断找出其中的一帧浊音信号和一帧清音信号。判断依据是,浊音:短时能量大、短时平均幅度大、短时过零率低;清音:短时能量小、短时平均幅度小、短时过零率高。浊音,取13270--13510个点,清音,取12120--12360个点。分别计算他们的短时自相关函数和平均幅度差函数;(5)根据图形,分析浊音段语音的基音周期。四、实验结论与分析(1)从图中明显可以看出,浊音信号的具有明显的周期性,其自相关函数和平均幅度差函数也表现出周期性。清音信号稍微差一点,但不是很明显,主要是由于清音信号的位置找的不是很好。(2)浊音:短时能量大、短时平均幅
4、度大、短时过零率低;清音:短时能量小、短时平均幅度小、短时过零率高。(3)基音提取-消除共振峰的影响。从画出的图形中间可以看出,没有加滤波器的声音信号处理后共振峰的影响很大。但是加一个60~500Hz的带通滤波器,利用滤波后的信号进行基因估计,这样可除去大部分共振峰的影响,自相关函数和短时平均幅度差函数具有更尖锐地峰值,有利于判决地准确性。(4)画出的波形如下所示:图1为没有加窗nowindow.wav,,无滤波,图2为加窗后的语音信号为havewindow.wav,有滤波。图1没有滤波的第一列的图形从上到下分别表示:短时能量、短时平均幅度、短时过零
5、率和零能比曲线,第二列从上到下分别为浊音的短时自相关函数、短时平均幅度差函数和轻清音的短时自相关函数、短时平均幅度差函数。图1图2五、心得体会通过这一次的课程设计实验,我们加深了对语音信号理论知识的理解,通过自己查找资料,修改程序,最后得出了自己的基音频率。在设计中,同时也使我获得了很多新的知识,熟练对matlab的使用。还学会了cooledit的不少功能,对MATLAB的应用也更加熟练了。根据实际的分析需要改变其参数观察变化过程,有助于将语音信号处理中抽象的概念形象化,促进对理论的深刻理解。通过实验,我们将理论和实际结合的更好了,对于知识的理解也更
6、加的深刻!六、附录源程序:%没有加窗nowindow.wavN=240Y=WAVREAD('nowindow',[118000]);L=length(Y)%30秒,每秒8000个点,一共240000个点LL=length(Y)/N%一共1000帧figure(1)set(1,'Position',[10,35,350,650])%短时能量Em=zeros(1,(LL-1)*240);forii=1:(LL-1)*240,temp=Y(ii:ii+240);Em(ii)=sum(temp.*temp);endsubplot(4,1,1)jj=[1:(L
7、L-1)*240];plot(jj,Em,'b');grid%axis([12000,16000,0.15,0.4])%短时平均幅度Mn=sum(abs(Y))/NMn=zeros(1,(LL-1)*240);forii=1:(LL-1)*240,temp=Y(ii:ii+240);Mn(ii)=sum(abs(temp))/N;endfigure(1)subplot(4,1,2)jj=[1:(LL-1)*240];plot(jj,Mn,'b');grid%axis([12000,16000,0.02,0.04])%短时过零率Zn=zeros(1,(
8、LL-1)*240);forii=2:(LL-1)*240,temp1=sign(Y(ii:ii+240))
显示全部收起