太原理工大学语音信号处理课程实验报告专业班级学号姓名指导教师太原理工大学现代科技学院实验报告实验名称用修正的短时自相关检测语音的基因周期同组人专业班级学号姓名成绩一、实验目的1.熟悉前一个实验程序以及中心削波的意义。2.用Matlab实现用修正的短时自相关检测语音的基音周期。3.分析修正的短时自相关在基音周期检测中的应用。4.能够对程序进行重新编制。二、实验原理如果x(n)是一个周期为P的信号,则其自相关函数也是周期为P的信号,且在信号周期的整数倍处,自相关函数取最大值。语音的浊音信号具有准周期性,其自相关函数在基音周期的整数倍处取最大值。计算两相邻最大峰值间的距离,就可以估计出基音周期。观察浊音信号的自相关函数图,其中真正反映基音周期的只有少数几个峰,而其余大多数峰都是由于声道的共振特性引起的。因此为了突出反映基音周期的信息,同时压缩其他无关信息,减小运算量,有必要对语音信号进行适当预处理后再进行自相关计算以获得基音周期。第一种方法是先对语音信号进行低通滤波,再进行自相关计算,因为语音信号包括十分丰富的谐波分量,基音频率的范围分布宰0~500Hz左右,即使女高音升c调最高也不会超过1Kz,所以采用1Kz的低通滤波器先对语音信号进行滤波,保留基音频率,再用2Kz采样频率进行采样;最后用2~20ms的滞后时间计算短时自相关,帧长取10~20ms,即可估计出基音周期。且中心削波函数如式(3-1)一般削波电平XL取本帧语音幅度的60%~70%。将削波后的序列f(x)用短时自相关函数估计基音周期,在基音周期位置的峰值更加尖锐,可以有效减少倍频或半频错误。三、实验要求1.实验前自己用CoolEdit音频编辑软件录制浊音部分,并把它保存为.txt文件。2.分别取长度N=160和N’=N+K的矩形窗函数作用于语音信号上,首先对其进行中心削波,比较削波前和削波后语音信号波形,并使得削波后的信号进行乘积并求和,计算延太原理工大学现代科技学院实验报告迟为0K160时的相关值,并且用得到的相关值来检测语音信号的基音周期,用MATLAB画出图形。3.写出实验报告,分析实验结果。四、实验步骤1、用CoolEdit读入浊音语音,设置采样率为8kHz,16位,单声道。2、将读入的语音wav文件保存为txt文件。3、编程实现中心削波前后的语音波形。五、实验程序fid=fopen('qingyin.txt','rt');[a,count]=fscanf(fid,'%f',[1,inf]);L=length(a);m=max(a);fori=1:La(i)=a(i)/m;endm=max(a);n=min(a);ht=(m+n)/2;fori=1:La(i)=a(i)-ht;endfigure(1);subplot(2,1,1);plot(a,'k');axis([0,350,-1,1]);title('中心削波前语音波形');xlabel('样点数');ylabel('幅度值');coeff=0.7;太原理工大学现代科技学院实验报告th0=max(a)*coeff;fork=1:Lifa(k)=th0a(k)=a(k)-th0;elseifa(k)=(-th0)a(k)=a(k)+th0;elsea(k)=0;endendm=max(a);fori=1:La(i)=a(i)/m;Endsubplot(2,1,2);plot(a,'k');axis([0,350,-1,1]);title('中心削波后语音波形');xlabel('样点数');ylabel('幅度值');fclose(fid);fid=fopen('zhuoyin.txt','rt');[b,count]=fscanf(fid,'%f',[1,inf]);fclose(fid);N=160;A=[];fork=1:160sum=0;form=1:N太原理工大学现代科技学院实验报告sum=sum+b(m)*b(m+k-1);endA(k)=sum;endfork=1:160B(k)=A(k)/A(1);endfigure(2);subplot(2,1,1);plot(B,'k');title('中心削波修正自相关');xlabel('延时k');ylabel('幅度值');axis([0,160,-1,2]);N=160;A=[];fork=1:160sum=0;form=1:Nsum=sum+a(m)*a(m+k-1);endA(k)=sum;endfork=1:160C(k)=A(k)/A(1);endsubplot(2,1,2);plot(C,'k')title('中心削波修正自相关');太原理工大学现代科技学院实验报告xlabel('延时k');ylabel('幅度值');axis([0,160,-1,2]);六、实验结果浊音的修正短时自相关如下图清音的修正短时自相关如下图太原理工大学现代科技学院实验报告七、思考题1、在相同的实验环境下,用Matlab程序实现程序短时自相关检测语音的基音周期的图形,并与修正的短时自相关进行比较。答:修正自相关使得在基音周期位置的峰值更加尖锐,使得由于声道共振特性引起的峰值有效减少,从而减少倍频或半频错误。2、用Matlab程序实现语音信号的三电平削波,再对它进行修正的短时自相关。并与中心削波进行对比。分析它们在语音信号处理中的应用。答:为了克服短时自相关函数计算量大的问题,在中心削波法的基础上,可以采用三电平削波法,这种信号的短时自相关函数的计算实际上是不需要乘法运算的,这就大大节省了计算时间。八、实验心得在修正的短时自相观检测语音的基音周期实验中,进一步了解了语音修正短时自相关以及中心削波的意义,分析了解修正的短时自相关在基音周期检测中的应用。让我们学到了很多东西,动手能力增强。在做实验的过程中最重要的是程序的正确编写,尤其是MATLAB必须不能有丝毫偏差,实验全程都必须细心认真,我们学习、生活中也必须这样做所不能缺少的。通过这次实验也让我认识到了合作交流的重要性,当遇到问题时要学会与老师和同学们交流,找到最好最有效的方法。