改进的离散余弦变换

title: 定义.
content: 作为一种重叠变换,改进的离散余弦变换,跟其他傅立叶相关的变换比起有些不一样,因为它的输出数为输入数的一半(而非相同)。特别的是,它是一个线性函数"F" : R -> R(其中R代表实数集合)。根据公式: 将2"N"个实数"x",..., "x"变换成"N"个实数"X",..., "X"。(在这个变换前面的正规化系数,单位不为一定且根据不同的解释方法而有所改变。下面只考虑改进的离散余弦变换跟改进的离散余弦逆变换的正规化乘积。)
title: 逆变换.
content: 改进的离散余弦逆变换(IMDCT),乍看之下由于输入数与输出数并不相同,改进的离散余弦变换应为不可逆的。然而,透过加入造成错误并且必须要回复原始资料的子带重叠区块中重叠的改进的离散余弦逆变换部分,完美的可逆性是可以达成的。这种技术被称为时域混叠消除法(Time-Domain Aliasing Cancellation, TDAC)。改进的离散余弦逆变换根据公式: 将"N"个实数"X",..., "X"变换成2"N"个实数"y",..., "y"。(如同第四型离散余弦变换为一正交变换,其逆变换具有与正变换一样的形式)。具有一般窗式正规化(usual window normalization,如下所示)的窗式改进的离散余弦变换(windowed MDCT),其逆变换的正规化系数必须乘2(即变成2/"N")。
title: 计算.
content: 虽然直接应用改进的离散余弦变换公式的计算复杂度为O("N"),但是透过递回的方式将计算分解化,可以将计算复杂度降到O("N" log "N"),并且得出一样的结果,就如同快速傅立叶变换一样。另外也可以透过其他变换计算改进的离散余弦变换。通常一个离散傅立叶变换(或快速傅立叶变换)或是一个离散余弦变换包含的前置处理跟后置处理的复杂度为O("N")。此外,如下所述,任何第四型离散余弦变换的算法都能衍生出一种方法来计算偶数项的改进的离散余弦变换和改进的离散余弦逆变换。
title: 窗函数.
content: 在一般的信号压缩应用中,变换特性可透过利用将窗函数"w"("n" = 0,..., 2"N"-1)乘以改进的离散余弦变换中的"x"及改进的离散余弦逆变换中的"y"作进一步的改良,为了避免在"n" = 0 and 2"N"的边界点产生不连续并且使函数于这些点可以变得平滑而趋近零(即window the data "before" the MDCT and "after" the IMDCT)。原则上,"x"和"y"可以有不同的窗函数,而窗函数再资料区块变换时可以改变(尤其是当两个不同尺寸的资料区块结合在一起时)。但为简单起见,我们考虑给相同尺寸的资料区块应用的窗函数。 变换仍然是可逆的(即TDAC依然可以正常作用),考虑一个对称的窗"w" = "w",只要"w"满足Princen-Bradley condition: 各种不同应用的窗函数都是一样的,例如: 为应用于MP3和MPEG - 2的AAC的窗函数,而 为Vorbis所应用。此外AC-3与MPEG - 4 AAC均采用了Kaiser-Bessel derived (KBD) window。值得注意的是,应用在改进的离散余弦变换的窗函数与应用于其他类型的信号分析的窗函数是不同的。因为它们必须满足Princen – Bradley condition。原因之一,改进的离散余弦变换应用了两次窗函数,包括改进的离散余弦变换(分析)和改进的离散余弦逆变换(合成)。
title: 第四型离散余弦变换与原始TDAC的关系.
content: 由定义可以看出,一个偶数点"N"的改进的离散余弦变换基本上就相当于一个输入位移了"N"/2且两个N点资料区块同时变换的第四型离散余弦变换。而再更进一步的检视这个等效关系,则重要的特性例如TDAC可以很容易地推导出来。为了更明确的定义与第四型离散余弦变换的关系,我们必须了解第四型离散余弦变换分别对应到偶数点跟奇数点的边界条件:偶数点在左边边界,(约在"n"=–1/2),奇数点在右边边界(约在"n"="N"–1/2)诸如此类(而不是DFT那样的周期性边界)。这些遵从以下所述: 和 因此,如果输入为一组长度为"N"的"x"阵列,我们可以想见这个阵列会扩增至("x", –"x", –"x", "x",...),其中"x"代表"x"的反向序列。考虑一个有2"N"个输入与"N"个输出的改进的离散余弦变换。我们将输入分成4组区块("a", "b", "c", "d"),每组大小为"N"/2。如果我们把这些资料位移"N"/2(即改进的离散余弦变换的定义中的+"N"/2项),然后("b", "c", "d")扩增到"N"点第四型离散余弦变换的输入结尾。因此,我们必须将这些资料根据上述边界条件“叠”(“fold”)回来。是故,一个具有2"N"点输入("a", "b", "c", "d")的改进的离散余弦变换,就确实的相当于一个具有"N"点输入(–"c"–"d", "a"–"b")的第四型离散余弦变换,其中"R"的意义与前述相同。(以这种方式,任何用来计算第四型离散余弦变换的算法都可以很直观的套用在改进的离散余弦变换上)。同样地,上述改进的离散余弦逆变换公式恰好正是第四型离散余弦变换的1/2,其中输出位移了"N"/2且扩增长度为2"N"(透过边界条件)。而第四型离散余弦逆变换可以简单的给定如上述之输入(–"c"–"d", "a"–"b")。当透过边界条件完成位移跟扩增的动作后,我们可以得到: (因此有一半的改进的离散余弦逆变换输出是多余的。)  我们现在明白了TDAC的运作原理。考虑计算一个改进的离散余弦变换的子带,有50%的重叠,2"N"个资料区块("c", "d", "e", "f")。则得到的改进的离散余弦逆变换会跟上述类似:("c"–"d", "d"–"c", "e"+"f", "e"+"f") / 2。当加入这些到先前由重叠到一半所产生的改进的离散余弦逆变换时,反向的项被消除了,并获得一简单的已回复的原始资料("c", "d")。
title: TDAC的起源.
content: ”时间域混叠消除法”的起源现在很清楚了。逻辑上第四型离散余弦变换中根据边界条件所扩增的输入资料造成资料发生混叠的现象,正如同频谱中奈奎斯特频率会与较低的频率发生混叠一样。因此,当"c"–"d"及其他被加进来会有准确的符号(right sign)提供作消除之用。对于奇数点"N"(事实上很少使用),"N"/2不是整数,所以改进的离散余弦变换并不是由第四型离散余弦变换透过一个简单的位移就可以互相对应。在这种情况下,额外的位移一半的样本,代表着改进的离散余弦变换/改进的离散余弦逆变换等同于第三/二型离散余弦变换,其分析类似上述。
title: 窗式改进的离散余弦变换的TDAC.
content: 如上所述,TDAC性质已被证明适用于普通改进的离散余弦变换,显示加入子带资料区块的改进的离散余弦逆变换于重叠的一半部分可回复原始的资料。推导这项窗式改进的离散余弦变换逆性质较上述稍微复杂一些,叙述如下。根据前述当formula_8和formula_9经过改进的离散余弦变换与改进的离散余弦逆变换,并且加上其重叠一半时,我们得到formula_10,即原始的资料。 现在我们假设我们将改进的离散余弦变换的输入和改进的离散余弦逆变换的输出两者均乘上一个长度为2"N"的窗函数。如前所述,我们假设一个对称的窗函数其形式为formula_11其中"w"跟"z"是长度"N"/2的向量,而"R"代表反向。如此则Princen – Bradley condition可以写成:formula_12,其中乘法和加法为点对点的运算,或等效成formula_13(将"w"跟"z"反向)。 因此,我们对formula_14作改进的离散余弦变换取代对formula_8作改进的离散余弦变换(所有的乘法跟加法均为点对点)。当完成改进的离散余弦逆变换再乘以窗函数(点对点相乘),最后"N"点的一半,成为: (请注意,我们不再乘1/2,因为改进的离散余弦逆变换的正规化与窗式的例子中的因子2有所不同)。同样的,对于产生formula_9的窗式改进的离散余弦变换和窗式改进的离散余弦逆变换,是在其前"N"点的一半: 当我们这两个各半的结果加总起来,我们得到: 即回复的原始资料。

Summary: 改进的离散余弦变换(英语:Modified Discrete Cosine Transform,缩写:英语:MDCT)是一种与傅立叶变换相关的变换,以第四型离散余弦变换(DCT-IV)为基础,重叠性质如下:它是应用于处理较大的资料集合,当连续的资料区块中,当前的资料区块跟后续的资料区块有重叠到的情形;即当前资料区块的后半段与下一个资料区块的前半段为重叠的状态。这样的重叠情形,除了具有离散余弦变换的能量压缩特性外,也使这种变换在应用于信号压缩时更引人注目。因为它有助于避免由于资料区块边界所产生的多余资料。因此,这种变换可应用于MP3、AC-3、Ogg Vorbis,和AAC的音频压缩等方面。