语音信号的预加重和加窗处理

原文转载于:http://blog.csdn.net/ziyuzhao123/article/details/12004603    非常感谢。

一、语音信号的预加重

语音信号的预加重,目的是为了对语音的高频部分进行加重,去除口唇辐射的影响,增加语音的高频分辨率。一般通过传递函数为一阶FIR高通数字滤波器来实现预加重,其中a为预加重系数,0.9

预加重实验:

[cpp] view plain copy
  1. %预加重class="wp_keywordlink" style="margin: 0px; padding: 0px; border: 0px; font-size: 13.3333330154419px; background: transparent;">"http://www.xuebuyuan.com/" title="程序" target="_blank" style="text-decoration: none; color: rgb(1, 150, 227);">程序 2013/9/25  
  2. clear all;  
  3. [x,sr]=wavread('test2.wav');  %sr为采样频率  
  4. ee=x(1500:1755);  
  5. r=fft(ee,1024);  
  6. r1=abs(r);  
  7. pinlv=(0:1:255)*8000/512;  
  8. yuanlai=20*log10(r1);  
  9. signal(1:256)=yuanlai(1:256);  
  10. [h1,f1]=freqz([1,-0.98],[1],256,4000);  
  11. pha=angle(h1);  
  12. H1=abs(h1);  
  13. r2(1:256)=r(1:256);  
  14. u=r2.*h1';  
  15. u2=abs(u);  
  16. u3=20*log10(u2);  
  17. un=filter([1,-0.98],[1],ee);  
  18.   
  19. figure(1);subplot(2,1,1);  
  20. plot(f1,H1);title('高通滤波器的幅频特性');  
  21. xlabel('频率/Hz');ylabel('幅度');  
  22. subplot(2,1,2);plot(pha);title('高通滤波器的相频特性');  
  23. xlabel('频率/Hz');ylabel('角度/rad');  
  24. figure(2);subplot(2,1,1);plot(ee);title('原始语音信号');  
  25. %axis([0 256 -3*10^4 2*10^4]);  
  26. xlabel('样点数');ylabel('幅度');  
  27. subplot(2,1,2);plot(un);title('经高通滤波后的语音信号');  
  28. %axis([0 256 -1*10^4 1*10^4]);  
  29. xlabel('样点数');ylabel('幅度');  
  30. figure(3);subplot(2,1,1);plot(pinlv,signal);title('原始语音信号频谱');  
  31. xlabel('频率/Hz');ylabel('幅度/dB');  
  32. subplot(2,1,2);plot(pinlv,u3);title('经高通滤波后的语音信号频谱');  
  33. xlabel('频率/Hz');ylabel('幅度/dB');  

实验结果:

语音信号的预加重和加窗处理_第1张图片 

 语音信号的预加重和加窗处理_第2张图片

语音信号的预加重和加窗处理_第3张图片

可以看出,预加重后的频谱在高频部分的幅度得到了提升。

二、语音信号的加窗处理   

     进行预加重数字滤波处理后,下面就是进行加窗分帧处理,语音信号具有短时平稳性(10--30ms内可以认为语音信号近似不变),这样就可以把语音信号分为一些短段来来进行处理,这就是分帧,语音信号的分帧是采用可移动的有限长度的窗口进行加权的方法来实现的。一般每秒的帧数约为33~100帧,视情况而定。一般的分帧方法为交叠分段的方法,前一帧和后一帧的交叠部分称为帧移,帧移与帧长的比值一般为0~0.5。

另外,加窗之后是为了进行傅里叶展开,所以加窗的目的大致如下:

  1. 使全局更加连续,避免出现吉布斯效应。
  2. 加窗之后,原本没有周期性的语音信号呈现出周期函数的部分特征。

汉明窗函数如下:

汉明窗的时域和频域波形,窗长N=61

[plain] view plain copy
  1. x=linspace(20,80,61);  
  2. h=hamming(61);  
  3. figure(1);  
  4. subplot(1,2,1);  
  5. plot(x,h,'k');title('汉明窗时域波形');  
  6. xlabel('样点数');ylabel('幅度');  
  7. w1=linspace(0,61,61);  
  8. w1(1:61)=hamming(61);  
  9. w2=fft(w1,1024);  
  10. w3=w2/w2(1);  
  11. w4=20*log10(abs(w3));  
  12. w=2*[0:1023]/1024;  
  13. subplot(1,2,2);  
  14. plot(w,w4,'k');  
  15. axis([0,1,-100,0]);  
  16. title('汉明窗幅度特性');  
  17. xlabel('归一化频率');ylabel('幅度/dB');  

结果:

语音信号的预加重和加窗处理_第4张图片

汉明窗的主瓣宽度较宽,是矩形窗的一倍,但是汉明窗的旁瓣衰减较大,具有更平滑的低通特性,能够在较高的程度上反应短时信号的频率特性。

矩形窗的主瓣宽度小于汉明窗,具有较高的频谱分辨率,但是矩形窗的旁瓣峰值较大,因此其频谱泄露比较严重。

你可能感兴趣的:(Speech,enhancement)