语音识别之——mfcc什么是汉明窗,为什么加汉明窗

  • Post author:
  • Post category:其他



为什么要加汉明窗?什么叫加窗?



在信号处理中,可以说加窗处理是一个必经的过程,因为我们的计算机只能处理有限长度的信号,因此原始信号X(t)要以T(采样时间)截断,即有限化,成为XT(t)后再进一步处理,这个过程序就是加窗处理,但什么时候用什么窗呢?这时我们就要对所需用到的函数窗做一定的了解。在平时,我们用得最多的是矩形窗,这个也很容易理解,好像我们屋子里的窗口一样,透过窗口我们可以看到外面的世界,但在如果我们理窗口远一些的话,我们的看到的范围将减少,越远就越小。实际的信号处理过程中,我们用的矩形窗,但矩形窗在边缘处将信号突然截断,窗外时域信息全部消失,导致在频域增加了频率分量的现象,即频谱泄漏。避免泄漏的最佳方法是满足整周期采样条件,但实际中是不可能做到的。对于非整周期采样的情况,必须考虑如何减少加窗时造成的泄漏误差,主要的措施是使用合理的加窗函数,使信号截断的锐角钝化,从而使频谱的扩散减到最少。


首先介绍一下为什么要用函数窗:函数窗的主要用于对截断处的不连续变化进行平滑,减少泄漏。此外,加窗处理还有很多其它的原因,如减少噪声干扰、限定

测试

的持续时间、从频率接近的信号中分离出幅值不同的信号……


常见的几种窗的基本指标:



一个窗是否合适:窗谱主瓣宽度就尽可能的窄,且能量集中在主瓣内,以获得较陡的过渡带;窗谱旁瓣与主瓣相比应尽可能的小,旁瓣能量衰减要快,以利于增加阻带衰耗。


汉明窗就是信号窗口的一种,在matlab中执行命令,画出plot(hamming(100))的图如下:





它主要部分的形状像sin(x)在0到pi区间的形状,而其余部分都是0.这样的函数乘上其他任何一个函数f,f只有一部分有非零值。



为什么汉明窗这样取呢?因为之后我们会对汉明窗中的数据进行FFT,它假设一个窗内的信号是代表一个周期的信号。(也就是说窗的左端和右端应该大致能连在一起)而通常一小段音频数据没有明显的周期性,加上汉明窗后,数据形状就有点周期的感觉了。



因为加上汉明窗,只有中间的数据体现出来了,两边的数据信息丢失了,所以等会移窗的时候,只会移1/3或1/2窗,这样被前一帧或二帧丢失的数据又重新得到了体现。



简单的说汉明窗就是个函数,它的形状像窗,所以类似的函数都叫做窗函数。希望你能明白。



2.加Hanmming窗的作用


现在在看G.723.1,对语音编码刚入门,


发现在对信号进行LPC分析前,对信号乘以一个Hamming 窗,


乘法是:信号直接乘以一个HammingWindowTable中的值,这个加窗有什么作用?


如果是限制带宽的话, 在时域应对信号应做卷积的, 不明白,请赐教



因为要处理的是无限长序列中的一段,所以必须对这段序列加窗采集出来。



典型的窗口大小是25ms,帧移是10ms。汉明窗函数为


W(n,α ) = (1 -α ) – α cos(2*PI*n/(N-1)),0≦n≦N-1


一般情况下,α取0.46 。


谁能解释一下这个函数吗?我实在是不理解,谢谢.



由于直接对信号(加矩形窗)截断会产生频率泄露,为了改善频率泄露的情况,加非矩形窗,一般都是加汉明窗,因为汉明窗的幅频特性是旁瓣衰减较大,主瓣峰值与第一个旁瓣峰值衰减可达40db。



举例:


a=wavread(‘jiasiqi.wav’);   %将音频信号jiasiqi.wav读入

subplot(2,1,1),                  %分配画布,一幅图上共两个图,这是第一个

plot(a);title(‘original signal’);  %画出原始信号,即前面这个音频信号的原始波形

grid                                    %添加网格线

N=256;                               %设置短时傅里叶变换的长度,同时也是汉明窗的长度

h=hamming(N);                   %设置汉明窗

for m=1:N                       %用汉明窗截取信号,长度为N,主要是为了减少截断引起的栅栏效应等

b(m)=a(m)*h(m)

end

y=20*log(abs(fft(b)))           %做傅里叶变换,取其模值,即幅频特性,然后用分贝(dB)表示

subplot(2,1,2)                     %分配画布,第二副图

plot(y);title(‘短时谱’);            %画出短时谱

grid                                        %添加网格线





版权声明:本文为gxiaoyaya原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。