zoukankan      html  css  js  c++  java
  • hanmming窗和hamming窗的作用

    什么是汉明窗?加Hanmming窗的作用?

     

    1.什么是汉明窗?

    答:我是做语音识别的,我就从语音的角度跟你说一下吧。

     

    语音信号一般在10ms到30ms之间,我们可以把它看成是平稳的。为了处理语音信号,我们要对语音信号进行加窗,也就是一次仅处理窗中的数据。因为实际的语音信号是很长的,我们不能也不必对非常长的数据进行一次性处理。明智的解决办法就是每次取一段数据,进行分析,然后再取下一段数据,再进行分析。

     

    怎么仅取一段数据呢?一种方式就是构造一个函数。这个函数在某一区间有非零值,而在其余区间皆为0.汉明窗就是这样的一种函数。它主要部分的形状像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                                        %添加网格线
    复制代码

     

  • 相关阅读:
    解决:git使用git push 命令跳出remote: Permission to A denied to B的问题
    IDEA显示Run Dashboard窗口
    Nginx设置上传文件大小限制
    JavaScript- The Good Parts function Curry
    用java面向对象的思想实现的汉诺塔问题
    第一章、架设服务器前的准备工作 基本架设服务器流程
    第一章、架设服务器前的准备工作
    A Plain English Guide to JavaScript Prototypes
    JavaScript- The Good Parts Chapter 4
    JavaScript- The Good Parts Chapter 3 Objects
  • 原文地址:https://www.cnblogs.com/siucaan/p/9623219.html
Copyright © 2011-2022 走看看