语音信号大作业.docVIP

  • 10
  • 0
  • 约1.86千字
  • 约 6页
  • 2018-02-06 发布于河南
  • 举报
语音信号大作业

设 计 报 告 课程名称 语音信号处理 任课教师 周泽华 设计题目 语音信号的短时分析 班级 08电子信息工程一班 姓名 吕涛 学号 0805070080 日期 2011-10-16 用Matlab编程实现语音信号的短时分析 一、二、原理及方法 a=wavread(abc.wav); subplot(6,1,1),plot(a); N=32; for i=2:6 h=linspace(1,1,2.^(i-2)*N);%形成一个矩形窗,长度为2.^(i-2)*N En=conv(h,a.*a);% 求短时能量函数En subplot(6,1,i),plot(En); if(i==2) legend(N=32); elseif(i==3) legend(N=64); elseif(i==4) legend(N=128); elseif(i==5) legend(N=256); elseif(i==6) legend(N=512); end end (2)加汉明窗 a=wavread(abc.wav); subplot(6,1,1),plot(a); N=32; for i=2:6 h=hanning(2.^(i-2)*N);%形成一个汉明窗,长度为2.^(i-2)*N En=conv(h,a.*a);% 求短时能量函数En subplot(6,1,i),plot(En); if(i==2) legend(N=32); elseif(i==3) legend(N=64); elseif(i==4) legend(N=128); elseif(i==5) legend(N=256); elseif(i==6) legend(N=512); end end 2) 短时平均过零率 a=wavread(abc.wav); n=length(a); N=320; subplot(3,1,1),plot(a); h=linspace(1,1,N); En=conv(h,a.*a); %求卷积得其短时能量函数En subplot(3,1,2),plot(En); for i=1:n-1 if a(i)=0 b(i)= 1; else b(i) = -1; end if a(i+1)=0 b(i+1)=1; else b(i+1)= -1; end w(i)=abs(b(i+1)-b(i)); %求出每相邻两点符号的差值的绝对值 end k=1; j=0; while (k+N-1)n Zm(k)=0; for i=0:N-1; Zm(k)=Zm(k)+w(k+i); end j=j+1; k=k+N/2; %每次移动半个窗 end for w=1:j Q(w)=Zm(160*(w-1)+1)/(2*N); %短时平均过零率 end subplot(3,1,3),plot(Q),grid; 3) 自相关函数 n=240 y=wavread(abc.wav); x=y(13271:13510); x=x.*rectwin(240); R=zeros(1,240); for k=1:240 for n=1:240-k R(k)=R(k)+x(n)*x(n+k); end end j=1:240; plot(j,R); grid; 四、实验曲线 上图为abc.wav语音在矩形窗条件下求得的短时能量和短时平均过零率。分析可知:清音的短时能量较低,过零率高,浊音的短时能量较高,过零率低。清音的过零率为0.5左右,浊音的过零率为0.1左右,两但者分布之间有相互交叠的区域,所以单纯依赖于平均过零率来准确判断清浊音是不可能的,在实际应用中往往是采用语音的多个特征参数进行综合判决。 五、不同矩形窗长条件下的浊音的短时自相关函数

文档评论(0)

1亿VIP精品文档

相关文档