TFCT, MDCT, 感知音频编码

在前一章,我们定义了块傅里叶基,这使得能够设计图像压缩算法。所使用的方法基于块基(block-based basis),但这种方法并不适用于音频。事实上,量化会在块的边界上出现不愉快的不连续性。在本章中,将看到两种能够避免此问题的表示方法。

时频表示与巴利安-洛(Balian-Low)定理


时间-频率族

一个时间频率族通常由一个窗口函数\(g(t) \in L_2\)定义,其向量由以下形式给出:

\[ g_{m n}(t)=e^{i 2 \pi m b t} g(t-a n) \]

其中,\(g(t)\)表示平移之后的窗口函数,表示在时间上的平移。\(e^{i 2 \pi m b t}\)是一个复指数函数,表示频率平移,即调制。

\(a = 1,b = 1,g = 1_{[0,1]}\)时,函数转变为\(g_{m n}(t)=e^{i 2 \pi m t} 1_{[t- n,t-n+1]}\),也就是在前一章我们定义过的块傅里叶基。

这样的基由于\(g\) 的不连续性,并不具有信号分解的有趣特性。这些不连续性与\(g\) 的傅里叶变换(TF)衰减缓慢相关,我们在上一章提到过这个问题。

在这一张中,我们关注的是满足于如下条件的族,称此条件为时间和频率局部化特定。

\[ \begin{aligned}& \int_{\mathbb{R}} t^2|g(t)|^2 d t<\infty \\& \int_{\mathbb{R}} f^2|\hat{g}(f)|^2 d f<\infty\end{aligned} \]

但是,Balian-Low定理表明,不存在具有时间和频率局部化特性的正交基形如 \(g_{m n}(t)=e^{i 2 \pi m b t} g(t-a n)\) 的族。

换句话说,当我们要求局部化时,我们定义的分解族有两种可能:不是正交基或不是型如

\(g_{m n}(t)=e^{i 2 \pi m b t} g(t-a n)\) 的族。

这里我们不去具体证明这个定理,简单来说,这是可以被认为是由傅里叶分析的不确定原理导致的,时间和频率局部化无法同时非常集中。这在之前的时频图中也常常能够见到。

短时傅里叶变换


如上所属,我们必须选择一个条件放弃,在短时傅里叶变换中,我们保留形式

\(g_{m n}(t)=e^{i 2 \pi m b t} g(t-a n)\) ,但放宽正交性条件。

回顾Hilbert空间的正交基性质:

  • \(x_n=\left\langle x, g_n\right\rangle\),
  • \(x=\sum_{n \in \mathbb{Z}} x_n g_n\)
  • 分解是唯一的
  • \(\left\|\left(x_n\right)n\right\|_{\ell^2}^2=\|x\|_H^2\),即信号的总能量等于其系数序列的能量

我们将在优化最后一条后给予保留。

框架Frames的定义


框架 Frames

一个Hilbert空间的框架是满足以下条件的一个族\(g_n\)

\[ A\|x\|_H^2 \leq \sum_n\left|\left\langle x, g_n\right\rangle\right|^2 \leq B\|x\|_H^2 \]

其中\(A\)\(B\)被称为框架的界限。当框架是正交基时,\(A=B=1\)

我们定义如下算子:

  • 分析算子\(T\),计算信号于框架元素的内积

\[ T: H \rightarrow \ell^2, \quad T(x)=\left(\left\langle x, g_n\right\rangle\right)_n \]

  • 合成算子\(T^*\),根据系数重构信号

\[ T^*: \ell^2 \rightarrow H, \quad T^*\left(\left(c_n\right)_n\right)=\sum_n c_n g_n \]

  • 框架算子\(S = T^*T\)

\[ S x=\sum_{n \in \mathbb{Z}}\left\langle x, g_n\right\rangle g_n . \]

在有限维下,\(A\)\(B\)分别为最小和最大的特征值。


双框架 Dual Frames

一个双框架是可以完成信号重构的与框架\(g_n\)组合的框架\(h_n\)

\[ x=\sum_{n \in \mathbb{Z}}\left\langle x, g_n\right\rangle h_n \]

定义规范双框架

\[ \tilde{g}_n=S^{-1} g_n \]

规范双框架是与原框架相关最为自然的双框架。

定义紧框架

\[ A = B, \ \sum_n\left|\left\langle x, g_n\right\rangle\right|^2=A\|x\|_H^2 \]

此时有:

\[ S=A I_d, \quad \tilde{g}_n=\frac{1}{A} g_n, \quad x=\frac{1}{A} \sum_n\left\langle x, g_n\right\rangle g_n \]

时间频率框架


给定一个窗口函数\(g(t)\),一个时间步长\(a\),一个空间步长\(b\),按照前述格式定义框架:

\[ g_{n m}(t)=g(t-a n) e^{i 2 \pi m b t} \]

假设\(g(t)\)的支集support包含在\([-1 / b, 1 / b]\)

\(\operatorname{supp}(f)=\overline{\{x \in X \mid f(x) \neq 0\}}\)

计算框架因子:

\[ S f(t)=\sum_{n \in \mathbb{Z}}\left\langle f(t), g_n\right\rangle g_n =\frac{1}{b} \sum_{n \in \mathbb{Z}}|g(t-n a)|^2f(t) \]

框架的上下界可以通过:

\[ A=\inf _{t \in \mathbb{R}} s(t), \quad B=\sup _{t \in \mathbb{R}} s(t) \]

得到。同时定义规范双框架:

\[ \tilde{g}(t)=g(t) / s(t) \]

这种分解被称为短时傅里叶变换(TFCT, STFT)。

修正离散余弦变换 MDCT Modified Discrete Cosine Transform


另一种可行的方式是放弃形式\(g_{n m}(t)=g(t-a n) e^{i 2 \pi m b t}\),例如MDCT。

假设给定一组实数序列\(\left\{a_k\right\}_{k \in \mathbb{Z}}\),使得:

\[ a_k<a_{k+1}, \quad \lim _{k \rightarrow \infty} a_k=\infty \]

定义序列\(\left\{\eta_k\right\}_{k \in \mathbb{Z}}\)满足以下条件:

\[ a_k+\eta_k<a_{k+1}-\eta_{k+1} \]

同时定义窗口函数\(w_k\),满足:

  • \(0 \leq w_k(t) \leq 1\),且\(w_k(t)=1\)在区间\(\left[a_k+\eta_k, a_{k+1}-\eta_{k+1}\right]\)
  • \(w_k(t)=0\)\(t \leq a_k-\eta_k \text { or } t \geq a_{k+1}+\eta_{k+1}\)
  • \(w_{k-1}\left(a_k+t\right)=w_k\left(a_k-t\right)\),且\(w_k\left(a_k+t\right)^2+w_{k-1}\left(a_k+t\right)^2=1, \quad \forall t \in\left[-\eta_k, \eta_k\right]\)

由此定义局部余弦原子的族\(\left\{u_{k n}\right\}_{k \in \mathbb{Z}, n \in \mathbb{Z}}\)

\[ u_{k n}(t)=\sqrt{\frac{2}{\ell_k}} w_k(t) \cos \left(\frac{\pi}{\ell_k}(n+1 / 2)\left(t-a_k\right)\right) \]

其中:

\[ \ell_k=a_{k+1}-a_k \]

这是一组\(L^2\)空间的正交基。这种变换基于 Neumann-Dirichlet 边界条件的局部余弦基。通过这种局部余弦基,信号被分解为偶数和奇数部分,每部分由左端和右端的余弦段来表示。

  • DCT 是分块操作,可能会在块边界引入伪影(artifacts),尤其在高频成分中更加显著。
  • MDCT 使用重叠窗口,减少了伪影的影响,同时更高效地表示信号的时频信息。