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

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

一、语音信号的预加重

语音信号的预加重,目的是为了对语音的高频部分进行加重,去除口唇辐射的影响,增加语音的高频分辨率。一般通过传递函数为一阶FIR高通数字滤波器来实现预加重,其中a为预加重系数,0.9<a<1.0。设n时刻的语音采样值为x(n),经过预加重处理后的结果为y(n))=x(n)-ax(n-1),这里取a=0.98。

预加重实验:

[cpp] view plain copy
  1. %预加重<span class="wp_keywordlink" style="margin: 0px; padding: 0px; border: 0px; font-size: 13.3333330154419px; background: transparent;"><a target=_blank href="http://www.xuebuyuan.com/" title="程序" target="_blank" style="text-decoration: none; color: rgb(1, 150, 227);">程序</a></span> 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');  

实验结果:

 

 

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

二、语音信号的加窗处理   

     进行预加重数字滤波处理后,下面就是进行加窗分帧处理,语音信号具有短时平稳性(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');  

结果:

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

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

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值