窗函数与STFT

1. 窗函数

窗函数在信号处理和频谱分析中起着重要作用。其主要作用是减少信号在频域变换(如傅里叶变换)时的频谱泄漏现象。频谱泄漏是由于信号截断导致的频谱扩展,它会影响频谱分析的准确性。窗函数通过在时间域内对信号进行加权处理,平滑截断边缘,从而降低频谱泄漏。
常见窗函数:

  1. 矩形窗(Rectangular Window)
    w ( n ) = 1 w(n) = 1 w(n)=1
    优点:简单易用;计算效率高;主瓣宽度窄,频率分辨率高。
    缺点:旁瓣高度大,频谱泄漏严重;对频域的影响较大。
  2. 汉宁窗(Hann Window)
    w ( n ) = 0.5 ( 1 − cos ⁡ ( 2 π n N − 1 ) ) w(n) = 0.5 \left( 1 - \cos\left( \frac{2\pi n}{N-1} \right) \right) w(n)=0.5(1cos(N12πn))
    优点:旁瓣衰减较快,频谱泄漏较少;平衡了频率分辨率和旁瓣衰减。
    缺点:主瓣比矩形窗宽,频率分辨率略低。
  3. 海明窗(Hamming Window)
    w ( n ) = 0.54 − 0.46 cos ⁡ ( 2 π n N − 1 ) w(n) = 0.54 - 0.46 \cos\left( \frac{2\pi n}{N-1} \right) w(n)=0.540.46cos(N12πn)
    优点:旁瓣衰减比汉宁窗更快,频谱泄漏更少;适合一般信号处理。
    缺点:主瓣比汉宁窗宽,频率分辨率进一步降低。
  4. 布莱克曼窗(Blackman Window)
    w ( n ) = 0.42 − 0.5 cos ⁡ ( 2 π n N − 1 ) + 0.08 cos ⁡ ( 4 π n N − 1 ) w(n) = 0.42 - 0.5 \cos\left( \frac{2\pi n}{N-1} \right) + 0.08 \cos\left( \frac{4\pi n}{N-1} \right) w(n)=0.420.5cos(N12πn)+0.08cos(N14πn)
    优点:旁瓣衰减非常快,频谱泄漏最少;适用于需要极低旁瓣的应用。
    缺点:主瓣非常宽,频率分辨率最低;计算量较大。
  5. 高斯窗(Gaussian Window)
    w ( n ) = exp ⁡ ( − 0.5 ( n − N − 1 2 σ N − 1 2 ) 2 ) w(n) = \exp\left( -0.5 \left( \frac{n - \frac{N-1}{2}}{\sigma \frac{N-1}{2}} \right)^2 \right) w(n)=exp 0.5(σ2N1n2N1)2
    优点:时间和频率域都有良好的特性;适合需要同时关注时间和频率特性的应用。
    缺点:参数选择复杂;根据参数不同,频率分辨率和旁瓣衰减可能不平衡。
  6. 凯撒窗(Kaiser Window)
    w ( n ) = I 0 ( π β 1 − ( 2 n N − 1 − 1 ) 2 ) I 0 ( π β ) w(n) = \frac{I_0 \left( \pi \beta \sqrt{1 - \left( \frac{2n}{N-1} - 1 \right)^2} \right)}{I_0(\pi \beta)} w(n)=I0(πβ)I0(πβ1(N12n1)2 )
    优点:通过参数β可以灵活调节主瓣宽度和旁瓣衰减;适应性强。
    缺点:计算复杂度高;参数选择需要经验。
  7. 平顶窗(Flat-top Window)
    w ( n ) = 1 − 1.93 cos ⁡ ( 2 π n N − 1 ) + 1.29 cos ⁡ ( 4 π n N − 1 ) − 0.388 cos ⁡ ( 6 π n N − 1 ) + 0.028 cos ⁡ ( 8 π n N − 1 ) w(n) = 1 - 1.93 \cos\left( \frac{2\pi n}{N-1} \right) + 1.29 \cos\left( \frac{4\pi n}{N-1} \right) - 0.388 \cos\left( \frac{6\pi n}{N-1} \right) + 0.028 \cos\left( \frac{8\pi n}{N-1} \right) w(n)=11.93cos(N12πn)+1.29cos(N14πn)0.388cos(N16πn)+0.028cos(N18πn)
    优点:在信号的幅度估计中有较高的准确性;频谱泄漏较少。
    缺点:主瓣非常宽,频率分辨率低;计算量较大。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2. 时间分辨率和频率分辨率的权衡

频率分辨率的提高(窗口长度增加):
解释: 较长的窗口长度意味着我们在计算傅里叶变换时使用了更多的时间点。这提供了更多的信息来解析频率成分,使得频率分辨率更高。
原因: 傅里叶变换中,频率分辨率取决于信号的长度。窗口越长,频域中的频率点间距越小,能更精确地分辨出相近的频率成分。
缺点: 由于长窗口包含更多的时间点,这些点被平均在一个较长的时间段内。因此,信号在窗口内的快速变化会被平均掉,导致时间分辨率降低。也就是说,我们无法准确地知道这些频率成分在这个长时间窗口内的具体时刻。

(在这种情况下,窗口函数 w ( τ − t ) w(\tau - t) w(τt) 对信号 x ( τ ) x(\tau) x(τ)的作用可以看作是对信号在 [ t − T / 2 , t + T / 2 ] [t - T/2, t + T/2] [tT/2,t+T/2] 这段时间内的加权平均。这意味着在计算傅里叶变换时,信号 x ( τ ) x(\tau) x(τ)的所有值被“平均”到一个时间点 t t t,从而丧失了细微的时间变化信息。
更一般地,对于任意窗口函数 w ( τ − t ) w(\tau - t) w(τt),其对信号的作用可以表示为:
X ( t , f ) = ∫ − ∞ ∞ x ( τ ) w ( τ − t ) e − j 2 π f τ d τ X(t, f) = \int_{-\infty}^{\infty} x(\tau) w(\tau - t) e^{-j2\pi f \tau} d\tau X(t,f)=x(τ)w(τt)ej2πfτdτ
这实际上是信号 x ( τ ) x(\tau) x(τ) 和窗口函数 w ( τ − t ) w(\tau - t) w(τt) 的卷积运算。这种卷积运算在本质上是一种加权平均运算,使得信号在窗口内的细节被平滑掉,导致时间分辨率降低)

时间分辨率的提高(窗口长度减少):
解释: 较短的窗口长度意味着我们在计算傅里叶变换时使用的时间点较少,可以更精确地观察信号在时间域中的变化。
原因: 短窗口可以捕捉到信号在小时间段内的快速变化。因此,我们可以更准确地确定这些变化发生的具体时间。
缺点: 较短的窗口长度提供的信息较少,频域中的频率点间距较大,导致频率分辨率降低。即,我们无法精确区分频谱中相近的频率成分。

矩形窗主瓣宽度: Δ ω = 4 π N 矩形窗主瓣宽度:\Delta\omega = \frac{4\pi}{N} 矩形窗主瓣宽度:Δω=N4π
在这里插入图片描述
在这里插入图片描述
RBW:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

NBW:
在这里插入图片描述
在这里插入图片描述
Welch:待补充。。。

3. 短时傅里叶变换STFT

连续域STFT:
X ( t , f ) = ∫ − ∞ ∞ x ( τ ) w ( τ − t ) e − j 2 π f τ d τ X(t, f) = \int_{-\infty}^{\infty} x(\tau) w(\tau - t) e^{-j2\pi f \tau} d\tau X(t,f)=x(τ)w(τt)ej2πfτdτ
假设我们使用一个长度为 T T T 的矩形窗口函数 w ( τ − t ) w(\tau - t) w(τt),其定义为:
w ( τ − t ) = 1     if  ∣ τ − t ∣ ≤ T 2 = 0     otherwise \begin{aligned} w(\tau - t) &= 1 \ \ \ \ \text{if } |\tau - t| \leq \frac{T}{2} \\ &= 0 \ \ \ \ \text{otherwise} \end{aligned} w(τt)=1    if τt2T=0    otherwise
这种表示方式表明了窗口函数 w ( τ − t ) w(\tau - t) w(τt) 对信号 x ( τ ) x(\tau) x(τ)的作用可以看作是对信号在 [ t − T / 2 , t + T / 2 ] [t - T/2, t + T/2] [tT/2,t+T/2] 这段时间内的加权平均。

离散域STFT:
X [ m , k ] = ∑ n = − ∞ ∞ x [ n ] w [ n − m ] e − j 2 π k n / N X[m, k] = \sum_{n=-\infty}^{\infty} x[n] w[n - m] e^{-j2\pi k n / N} X[m,k]=n=x[n]w[nm]ej2πkn/N
DFT:
X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n / N X[k] = \sum_{n=0}^{N-1} x[n] e^{-j2\pi k n / N} X[k]=n=0N1x[n]ej2πkn/N

4. STFT在语音识别中的应用

待补充…

  • 35
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值