跳转至

短时傅里叶变换

短时傅里叶变换#

人类听觉系统与频谱分析紧密相关,对语音信号进行频谱分析,是认识和处理语音信号的重要方法。声音从频率上可以分为纯音和复合音,纯音只包含一种频率的声音(基音),而没有倍音。复合音是除了基音之外,还包含多种倍音的声音。大部分语音都是复合音,涉及多个频率段,可以通过傅里叶变换进行频谱分析。

每个频率的信号可以用正弦波表示,采用正弦函数建模。基于欧拉公式,可以将正弦函数对应到统一的指数形式:

\[e^{jwn}=\mathop{cos}(wn)+j\mathop{sin}(wn)\]

正弦函数具有正交性,即任意两个不同频率的正弦波乘积,在两者的公共周期内积分等于零。正交性用复指数运算表示如下:

\[\int_{-\infty}^{+\infty}e^{j\alpha t}e^{-j\beta t}dt=0,\quad if\ \alpha\neq \beta\]

基于正弦函数的正交性,通过相关处理可以从语音信号分离出对应不同频率的正弦信号。对于离散采样的语音信号,可以采用离散傅里叶变换(DFT)。DFT的第 \(k\) 个点计算如下:

\[X[k]=\sum_{n=0}^{N-1} x[n]e^{-\frac{j2\pi kn}{K}},\quad k=0,1,...,K-1\]

其中, \(x[n]\) 是时域波形第 \(n\) 个采样点值, \(X[k]\) 是第 \(k\) 个傅里叶频谱值, \(N\) 是采样点序列的点数, \(K\) 是频谱系数的点数,且 \(K\geq N\) 。利用DFT获得的频谱值通常是复数形式,这是因为上式中,

\[e^{-\frac{j2\pi kn}{K}}=\mathop{cos}(\frac{2\pi kn}{K})-j\mathop{sin}(\frac{2\pi kn}{K})\]

\[X[k]=X_{real}[k]-jX_{imag}[k]\]

其中,

\[X_{real}[k]=\sum_{n=0}^{N-1}x[n]\mathop{cos}(\frac{2\pi kn}{K})\]
\[X_{imag}[k]=\sum_{n=0}^{N-1}x[n]\mathop{sin}(\frac{2\pi kn}{K})\]

\(N\) 个采样点序列组成的时域信号经过DFT之后,对应 \(K\) 个频率点。经DFT变换得到信号的频谱表示,其频谱幅值和相位随着频率变化而变化。

在语音信号处理中主要关注信号的频谱幅值,也称为振幅频谱/振幅谱:

\[X_{magnitude}[k]=\sqrt{X_{real}[k]^2+X_{imag}[k]^2}\]

能量频谱/能量谱是振幅频谱的平方:

\[X_{power}[k]=X_{real}[k]^2+X_{imag}[k]^2\]

各种声源发出的声音大多由许多不同强度、不同频率的声音组成复合音,在复合音中,不同频率成分与能量分布的关系称为声音的频谱,利用频谱图表示各频率成分与能量分布之间的关系,频谱图横轴是频率(Hz),纵轴是幅度(dB)。

通过对频域信号进行逆傅里叶变换(IDFT),可以恢复时域信号:

\[x[n]=\frac{1}{K}\sum_{k=0}^{K-1}X[k]e^{\frac{j2\pi kn}{N}},\quad n=0,1,...,N-1\]

离散傅里叶变换(DFT)的计算复杂度为 \(O(N^2)\) ,可以采用快速傅里叶变换(FFT),简化计算复杂度,在 \(O(N\mathop{log}_2 N)\) 的时间内计算出DFT。在实际应用中,对语音信号进行分帧加窗处理,将其分割成一帧帧的离散序列,可视为短时傅里叶变换(STFT):

\[X[k,l]=\sum_{n=0}^{N-1} x_l[n]e^{-\frac{j2\pi nk}{K}}=\sum_{n=0}^{N-1} w[n]x[n+lL]e^{-\frac{j2\pi nk}{K}}\]

其中, \(K\) 是DFT后的频率点个数, \(k\) 是频率索引, \(0\leq k< K\)\(X[k,l]\) 建立起索引为 \(lL\) 的时域信号,与索引为 \(k\) 的频域信号之间的关系。


最后更新: 2022-04-25

评论

回到页面顶部