窗函数

作者: dingtom | 来源:发表于2020-03-04 10:42 被阅读0次

    我们录音时看到的往往是时域上的信号,根据不同的语音分析要求,有时候我们需要分析频域上的信号特征,这时候我们就要用到之前所提到的FFT(Fast Fourier Transform)。在进行FFT分析的时候,我们是有一定的“宽度”来截取其中的部分信号进行FFT分析,然后再以一定的步长,向后面移动,再次进行FFT分析

    所谓的“窗函数”。它是一种加权函数,方便你用来截取你所需要的信号。窗”就是你用来截取并“观察”或分析某一信号所用来框定的工具。降低截断引起的泄漏,所有窗函数都是通过降低起始和结束处的信号幅度,来减小截断边沿处信号突变产生的额外频谱。

    在语音信号处理中,我们最常见、也最常用的,也就这样几个窗函数:矩形窗(rectangular window)、汉宁窗(Hanning window)、汉明窗(Hamming window)。如果你的研究内容侧重于对频率的分析,那么汉宁窗则是你不错的选择。如果你比较的是两种频率很像,但是在能量或幅度上不同的信号,那么Blackman窗会是你的常客。不同的窗之间,对频率和能量的敏感度有很大的不同,所以,加什么样的窗,和你的研究有着密切的关系。

    直接FFT前提是,你的语音信号是一个标准的周期信号,在你截取其中一部分后它还是个标准的周期信号,那没所谓加不加窗了。选择不加窗,也就相当于是加了一个矩形窗。看一下我们前面提到的图

    语音丰富多变,哪有那么好的时候就正好是一个完美的周期信号,在一帧帧变换分析的时候又是一个周期信号呢。如果我们FFT按照周期信号的整数倍去截断,你再拼回来,它还是一个岁月静好的周期信号,仿佛从没有变过一样。但是,一旦你截取了一个非周期信号,再拼回去的时候,势必要导致它的信号发生了巨大的变化。这时候你再进行分析的时候,就会出现:嗯?怎么这里能量突然有一个可怕的骤升?奇怪,这里的信号怎么戛然而止?后面的咋又突然出现了?这对你的研究的打击无疑是巨大的。我们又知道,在进行FFT分析的时候,它是按照一定的步长进行分析的,如果从第一个开始就出现了这样的巨大的骤升骤降,那么后面的信号也不可避免地出现了这样的情况,整个频带也就都不可避免地出现了这种误差,这种现象我们就称作泄漏。

    怎么去避免这种泄漏?或者说,我怎么去避免信号的戛然而止和突然出现?至少,在不损耗原始语音信号的前提下,让它有个平稳的过渡呢?这时候,我们就需要把窗函数给请出来了。通过不同的加窗,我们可以让信号有一个较为平稳的过渡,说白了,也就是让主体部分保持稳定,两端我全部慢慢减少,窗外的信号都给我归零。

    借由加窗这一步骤,我们也可以实现降噪的功能。有人可能会问,我看着这个加窗后,信号会不会有所损耗啊?我计算RMS amplitude(root mean square amplitude)的话,会不会出现问题?首先,我们要知道,这是在一帧帧上进行的处理,如果说你计算这一帧信号的话,不用计算也知道,它会对能量有所影响。但是,如果我们对整个频带的能量进行计算呢?前人在设计窗函数的时候,肯定也考虑进了这一点。当你进行整体频带的能量计算时,它的总能量值,或者说,有效值,总体上是没有发生变化的,所以不用担心窗函数会对你的语音分析有太多的影响。

    不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数产生泄漏的大小不一样,频率分辨能力也不一样。为了不影响截短序列的相位响应,通常需要窗函数保持线性相位。

    矩形窗

    优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致加窗过程中带进了高频干扰和频谱泄漏。

    矩形窗
    w(n)=R_{N}(n)=\left\{\begin{array}{l}1,0 \leq n \leq N-1 \\ 0, \text { others }\end{array}\right.
    频域
    W_{R}\left(e^{j \omega}\right)=\frac{\sin (\omega N / 2)}{\sin (\omega / 2)} e^{-j\left(\frac{N-1}{2}\right) \omega}

    汉宁窗

    又称升余弦窗,汉宁窗使主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗。但汉宁窗使主瓣加宽,相当于分析带宽加宽,频率分辨力下降。汉宁窗函数的最大旁瓣值衰减-31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍。

    汉宁窗
    W(\omega)=0.5 W_{R}(\omega)+0.25\left[W_{R}\left(\omega-\frac{2 \pi}{N-1}\right)+W_{R}\left(\omega+\frac{2 \pi}{N-1}\right)\right]
    频域
    W(\omega)=0.5 W_{R}(\omega)+0.25\left[W_{R}\left(\omega-\frac{2 \pi}{N-1}\right)+W_{R}\left(\omega+\frac{2 \pi}{N-1}\right)\right]

    汉明窗

    又称升余弦窗,汉宁窗使主瓣加宽并降低,旁瓣则显著减小,从减小泄漏观点出发,汉宁窗优于矩形窗。但汉宁窗使主瓣加宽,相当于分析带宽加宽,频率分辨力下降。汉宁窗函数的最大旁瓣值衰减-31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍。

    汉明窗
    \quad w(k)=\mathbf{0 . 5 4 - 0 . 4 6} \cos \left(\frac{2 \pi k}{N-1}\right), k=1,2, \ldots, N
    频域
    W(\omega)=0.54 W_{R}(\omega)+0.23\left[W_{R}\left(\omega-\frac{2 \pi}{N-1}\right)+W_{R}\left(\omega+\frac{2 \pi}{N-1}\right)\right]

    相关文章

      网友评论

          本文标题:窗函数

          本文链接:https://www.haomeiwen.com/subject/hwgvkhtx.html