STFT的综合分析--滤波器组求和(FBS)和叠相相加(OLA)
STFT的公式可以表示为:X(n,w)=∑n=−∞n=∞x(m)w(n−m)e−jwmX(n,w)=\sum_{n=-\infty}^{n=\infty}x(m)w(n-m)e^{-jwm}X(n,w)=n=−∞∑n=∞x(m)w(n−m)e−jwm上一篇博客介绍了STFT的可以解释为滤波操作,将www 固定于某个值,X(n,wk)=∑m=−∞m=∞[x(m)e−jwkm]w(n−m)=[...
STFT 固定频率时的两种解释
第一种解释
STFT的公式可以表示为:
X(n,w)=∑n=−∞n=∞x(m)w(n−m)e−jwmX(n,w)=\sum_{n=-\infty}^{n=\infty}x(m)w(n-m)e^{-jwm}X(n,w)=n=−∞∑n=∞x(m)w(n−m)e−jwm
上一篇博客介绍了STFT的可以解释为滤波操作,将www 固定于某个值w0w_0w0,
X(n,w0)=∑m=−∞m=∞[x(m)e−jw0m]w(n−m)=[x(n)e−jwn]∗w(n)=X(w+w0)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)e−jw0m]w(n−m)=[x(n)e−jwn]∗w(n)=X(w+w0)W(w)
第二种解释
将m′=n−mm'=n-mm′=n−m,代入上式中,
X(n,w0)=∑m=−∞m=∞[x(m)e−jw0m]w(n−m)=∑m′=−∞m′=∞[x(n−m′)e−jw0(n−m′)]w(m′)=∑m′=−∞m′=∞[x(n−m′)ejw0m′w(m′)]e−jw0n=[[ejw0mw(m)]∗x(m)]e−jw0nX(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)e−jw0m]w(n−m)=m′=−∞∑m′=∞[x(n−m′)e−jw0(n−m′)]w(m′)=m′=−∞∑m′=∞[x(n−m′)ejw0m′w(m′)]e−jw0n=[[ejw0mw(m)]∗x(m)]e−jw0n
可以用下面的图片解释(对应STFT的FBS综合方法)
STFT的两种综合方法
filter bank summation (FBS)
当固定频率设为wkw_{k}wk ,根据上面的推导,X(n,wk)=∑m=−∞m=∞e−jwkn[x(n−m)ejwkmw(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=∞e−jwkn[x(n−m)ejwkmw(m)]
令hk(n)=wk(n)ejwknh_k(n)=w_k(n)e^{jw_kn}hk(n)=wk(n)ejwkn,则
X(n,wk)=e−jwkn∑m=−∞m=∞x(n−m)hk(m)=e−jwknyk(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)=e−jwknm=−∞∑m=∞x(n−m)hk(m)=e−jwknyk(m)
其中yk(n)=∑m=−∞m=∞x(n−m)hk(n)y_k(n)=\sum_{m=-\infty}^{m=\infty}x(n-m)h_k(n)yk(n)=∑m=−∞m=∞x(n−m)hk(n) ,表示在频率wkw_kwk 处具有冲击响应为hk(n)h_k(n)hk(n)的系统输出,变换上式,
yk(n)=X(n,wk)ejwkny_k(n)=X(n,w_{k})e^{jw_{k}n}yk(n)=X(n,wk)ejwkn
令y(n)=∑k=0k=N−1yk(n)=∑k=0k=N−1X(n,wk)ejwkny(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=0∑k=N−1yk(n)=k=0∑k=N−1X(n,wk)ejwkn
上式给出了从STFT的输出X(n,wk)X(n,w_k)X(n,wk)恢复到时域的方法,但需要证明y(n)在什么情况下才和x(n)相等???
证明:
由于,yk(n)=∑m=−∞m=∞x(n−m)hk(n)y_k(n)=\sum_{m=-\infty}^{m=\infty}x(n-m)h_k(n)yk(n)=m=−∞∑m=∞x(n−m)hk(n)
y(n)=∑k=0k=N−1yk(n)y(n)=\sum_{k=0}^{k=N-1}y_k(n)y(n)=k=0∑k=N−1yk(n)
同时做傅里叶变换得,
Y(W)=X(W)H(W)=X(W)∑k=0k=N−1Hk(wk)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=0∑k=N−1Hk(wk)
要想使得等式成立,则窗函数需要满足∑k=0k=N−1Hk(wk)=C\sum_{k=0}^{k=N-1}H_k(w_k)=C∑k=0k=N−1Hk(wk)=C
而HkH_kHk是hkh_khk的傅里叶变换,hkh_khk和窗函数w(m)有关,因此只要每一帧STFT用的窗函数一样,且窗长L<=NL<=NL<=N,则等式成立。
overlap-add (OLA) method
OLA方法在语言信号处理中经常使用,在每一个时间段对X(n,w)X(n,w)X(n,w) 做ifft变换,并对重叠段进行相加,可以表示为:
y(n)=∑r=−∞r=∞[1/N∑k=0k=N−1X(rR,wk)ejwkn]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=0∑k=N−1X(rR,wk)ejwkn]
对不同的rrr值进行ifft,可以得到:
yr(n)=x(n)w(rR−n)y_{r}(n) = x(n)w(rR-n)yr(n)=x(n)w(rR−n)
对不同的rrr相加,
y(n)=∑r=−∞∞yr(n)=x(n)∑r=−∞r=∞w(rR−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(rR−n)
所以只有∑r=−∞r=∞w(rR−n)=C\sum_{r=-\infty}^{r=\infty}w(rR-n)=C∑r=−∞r=∞w(rR−n)=C时,就可以恢复原始信号。
两种方法对比总结
总结就用下图表示。
参考文献
[1] Loizou P C. Speech Enhancement: Theory and Practice[M]. 2007.
[2] This lecture is based on chapter 7 of [Quatieri, 2002]
更多推荐

所有评论(0)