STFT的综合分析--滤波器组求和(FBS)和叠相相加(OLA)

STFT 固定频率时的两种解释

第一种解释

STFT的公式可以表示为:
X ( n , w ) = ∑ n = − ∞ n = ∞ x ( m ) w ( n − m ) e − j w m X(n,w)=\sum_{n=-\infty}^{n=\infty}x(m)w(n-m)e^{-jwm} X(n,w)=n=n=x(m)w(nm)ejwm
上一篇博客介绍了STFT的可以解释为滤波操作,将 w w w 固定于某个值 w 0 w_0 w0
X ( n , w 0 ) = ∑ m = − ∞ m = ∞ [ x ( m ) e − j w 0 m ] w ( n − m ) = [ x ( n ) e − j w n ] ∗ w ( n ) = X ( w + w 0 ) W ( w ) X(n,w_{0})=\sum_{m=-\infty}^{m=\infty}[x(m)e^{-jw_{0}m}]w(n-m) \\=[x(n)e^{-jwn}]*w(n) \\=X(w+w_{0}) W(w) X(n,w0)=m=m=[x(m)ejw0m]w(nm)=[x(n)ejwn]w(n)=X(w+w0)W(w)
STFT的综合分析--滤波器组求和(FBS)和叠相相加(OLA)_第1张图片

第二种解释

m ′ = n − m m'=n-m m=nm,代入上式中,
X ( n , w 0 ) = ∑ m = − ∞ m = ∞ [ x ( m ) e − j w 0 m ] w ( n − m ) = ∑ m ′ = − ∞ m ′ = ∞ [ x ( n − m ′ ) e − j w 0 ( n − m ′ ) ] w ( m ′ ) = ∑ m ′ = − ∞ m ′ = ∞ [ x ( n − m ′ ) e j w 0 m ′ w ( m ′ ) ] e − j w 0 n = [ [ e j w 0 m w ( m ) ] ∗ x ( m ) ] e − j w 0 n X(n,w_{0})=\sum_{m=-\infty}^{m=\infty}[x(m)e^{-jw_{0}m}]w(n-m) \\=\sum_{m'=-\infty}^{m'=\infty}[x(n-m')e^{-jw_{0}(n-m')}]w(m') \\=\sum_{m'=-\infty}^{m'=\infty}[x(n-m')e^{jw_{0}m'}w(m')] e^{-jw_{0}n} \\=[[e^{jw_{0}m}w(m)]*x(m)]e^{-jw_{0}n} X(n,w0)=m=m=[x(m)ejw0m]w(nm)=m=m=[x(nm)ejw0(nm)]w(m)=m=m=[x(nm)ejw0mw(m)]ejw0n=[[ejw0mw(m)]x(m)]ejw0n
可以用下面的图片解释(对应STFT的FBS综合方法)
STFT的综合分析--滤波器组求和(FBS)和叠相相加(OLA)_第2张图片

STFT的两种综合方法

filter bank summation (FBS)

当固定频率设为 w k w_{k} wk ,根据上面的推导, X ( n , w k ) = ∑ m = − ∞ m = ∞ e − j w k n [ x ( n − m ) e j w k m w ( m ) ] X(n,w_{k})=\sum_{m=-\infty}^{m=\infty}e^{-jw_{k}n}[x(n-m)e^{jw_{k}m}w(m)] X(n,wk)=m=m=ejwkn[x(nm)ejwkmw(m)]
h k ( n ) = w k ( n ) e j w k n h_k(n)=w_k(n)e^{jw_kn} hk(n)=wk(n)ejwkn,则

X ( n , w k ) = e − j w k n ∑ m = − ∞ m = ∞ x ( n − m ) h k ( m ) = e − j w k n y k ( m ) X(n,w_{k})=e^{-jw_{k}n}\sum_{m=-\infty}^{m=\infty}x(n-m)h_k(m) \\=e^{-jw_kn}y_k(m) X(n,wk)=ejwknm=m=x(nm)hk(m)=ejwknyk(m)
其中 y k ( n ) = ∑ m = − ∞ m = ∞ x ( n − m ) h k ( n ) y_k(n)=\sum_{m=-\infty}^{m=\infty}x(n-m)h_k(n) yk(n)=m=m=x(nm)hk(n) ,表示在频率 w k w_k wk 处具有冲击响应为 h k ( n ) h_k(n) hk(n)的系统输出,变换上式,
y k ( n ) = X ( n , w k ) e j w k n y_k(n)=X(n,w_{k})e^{jw_{k}n} yk(n)=X(n,wk)ejwkn
y ( n ) = ∑ k = 0 k = N − 1 y k ( n ) = ∑ k = 0 k = N − 1 X ( n , w k ) e j w k n y(n)=\sum_{k=0}^{k=N-1}y_k(n) \\=\sum_{k=0}^{k=N-1}X(n,w_{k})e^{jw_{k}n} y(n)=k=0k=N1yk(n)=k=0k=N1X(n,wk)ejwkn
上式给出了从STFT的输出 X ( n , w k ) X(n,w_k) X(n,wk)恢复到时域的方法,但需要证明y(n)在什么情况下才和x(n)相等???

证明:
由于, y k ( n ) = ∑ m = − ∞ m = ∞ x ( n − m ) h k ( n ) y_k(n)=\sum_{m=-\infty}^{m=\infty}x(n-m)h_k(n) yk(n)=m=m=x(nm)hk(n)
y ( n ) = ∑ k = 0 k = N − 1 y k ( n ) y(n)=\sum_{k=0}^{k=N-1}y_k(n) y(n)=k=0k=N1yk(n)
同时做傅里叶变换得,
Y ( W ) = X ( W ) H ( W ) = X ( W ) ∑ k = 0 k = N − 1 H k ( w k ) Y(W)=X(W)H(W) \\=X(W)\sum_{k=0}^{k=N-1}H_k(w_k) Y(W)=X(W)H(W)=X(W)k=0k=N1Hk(wk)
要想使得等式成立,则窗函数需要满足 ∑ k = 0 k = N − 1 H k ( w k ) = C \sum_{k=0}^{k=N-1}H_k(w_k)=C k=0k=N1Hk(wk)=C
H k H_k Hk h k h_k hk的傅里叶变换, h k h_k hk和窗函数w(m)有关,因此只要每一帧STFT用的窗函数一样,且窗长 L < = N L<=N L<=N,则等式成立。
STFT的综合分析--滤波器组求和(FBS)和叠相相加(OLA)_第3张图片

overlap-add (OLA) method

OLA方法在语言信号处理中经常使用,在每一个时间段对 X ( n , w ) X(n,w) X(n,w) 做ifft变换,并对重叠段进行相加,可以表示为:
y ( n ) = ∑ r = − ∞ r = ∞ [ 1 / N ∑ k = 0 k = N − 1 X ( r R , w k ) e j w k n ] y(n)= \sum_{r=-\infty}^{r=\infty}[1/N\sum_{k=0}^{k=N-1}X(rR,w_{k})e^{jw_{k}n}] y(n)=r=r=[1/Nk=0k=N1X(rR,wk)ejwkn]

对不同的 r r r值进行ifft,可以得到:
y r ( n ) = x ( n ) w ( r R − n ) y_{r}(n) = x(n)w(rR-n) yr(n)=x(n)w(rRn)
对不同的 r r r相加,
y ( n ) = ∑ r = − ∞ ∞ y r ( n ) = x ( n ) ∑ r = − ∞ r = ∞ w ( r R − n ) y(n)=\sum_{r=-\infty}^{\infty}y_{r}(n)=x(n)\sum_{r=-\infty}^{r=\infty}w(rR-n) y(n)=r=yr(n)=x(n)r=r=w(rRn)
所以只有 ∑ r = − ∞ r = ∞ w ( r R − n ) = C \sum_{r=-\infty}^{r=\infty}w(rR-n)=C r=r=w(rRn)=C时,就可以恢复原始信号。

两种方法对比总结

总结就用下图表示。
STFT的综合分析--滤波器组求和(FBS)和叠相相加(OLA)_第4张图片

参考文献

[1] Loizou P C. Speech Enhancement: Theory and Practice[M]. 2007.
[2] This lecture is based on chapter 7 of [Quatieri, 2002]

你可能感兴趣的:(音频信号处理,信号处理基础)